What happened
b0 forks from main before w2 is inserted, b1 forks after and deletes w2. After main merges b0 and then b1, reading main still returns {"p.name":"w2"}; expected w2 gone, since b1 deleted it and main never touched it after b1 forked. Both merges report merged, no conflict. Found by the DST nightly (seed 242230, run of 2026-09-25); Steps is a minimal case of the same shape in the .gqt corpus format.
Steps to reproduce
--- schema
node Person {
name: String @key
}
--- seed
{"type":"Person","data":{"name":"alice"}}
--- mutate
branch create b0
--- expect ok
--- mutate
query insert_w2() {
insert Person { name: "w2" }
}
--- expect affected: nodes=1 edges=0
--- mutate
branch create b1
--- expect ok
--- mutate
query insert_x1() {
insert Person { name: "x1" }
}
--- expect affected: nodes=1 edges=0
--- mutate
query insert_x2() {
insert Person { name: "x2" }
}
--- expect affected: nodes=1 edges=0
--- mutate
query insert_x3() {
insert Person { name: "x3" }
}
--- expect affected: nodes=1 edges=0
--- mutate branch: b0
query insert_y() {
insert Person { name: "y" }
}
--- expect affected: nodes=1 edges=0
--- mutate
branch merge b0
--- expect outcome: merged
--- mutate branch: b1
query delete_w2() {
delete Person where name = "w2"
}
--- expect affected: nodes=1 edges=0
--- mutate
branch merge b1
--- expect outcome: merged
--- query
query names_on_main() {
match { $p: Person }
return { $p.name }
}
Version
omnigraph 0.11.0, main @ 80406fe, built from source (Lance 11.0.0)
Environment
macOS (Darwin 25.5) arm64, local filesystem store (the .gqt harness runs the embedded engine). The DST nightly hit the same shape on the in-memory object-store backend (ubuntu-latest).
Logs / output
{"p.name":"alice"}
{"p.name":"w2"}
{"p.name":"x1"}
{"p.name":"x2"}
{"p.name":"x3"}
{"p.name":"y"}
What happened
b0forks frommainbeforew2is inserted,b1forks after and deletesw2. Aftermainmergesb0and thenb1, readingmainstill returns{"p.name":"w2"}; expectedw2gone, sinceb1deleted it andmainnever touched it afterb1forked. Both merges reportmerged, no conflict. Found by the DST nightly (seed 242230, run of 2026-09-25); Steps is a minimal case of the same shape in the.gqtcorpus format.Steps to reproduce
Version
omnigraph 0.11.0, main @ 80406fe, built from source (Lance 11.0.0)
Environment
macOS (Darwin 25.5) arm64, local filesystem store (the .gqt harness runs the embedded engine). The DST nightly hit the same shape on the in-memory object-store backend (ubuntu-latest).
Logs / output
{"p.name":"alice"} {"p.name":"w2"} {"p.name":"x1"} {"p.name":"x2"} {"p.name":"x3"} {"p.name":"y"}