mirror of
https://github.com/stablyai/orca.git
synced 2026-09-25 08:02:31 +00:00
The store's child marker was checked with a plain `has`, so a torn-down child id stayed refused only until compaction evicted the marker and then silently started re-admitting. The verdict depended on store volume, not on the work. The parent side already moved to a revision compare; this brings child, alias and fact onto the same rule. `agentStatusTombstoneFences` is now the only spelling of that rule, called by both admission and state validation for all four entities: a marker fences only writes at or below its own revision, so an absent marker and an older one answer the same and compaction can never change a verdict. What actually fences a delayed observation survives compaction on its own: the lock-step revision envelope refuses any out-of-order mutation, and the live-row lookup answers `unknown-child` for a removed id. The new test ablates the marker and shows both still hold. This also stops a marker latching a reusable provider name. A child work id is minted; a `task_id` is a name later work will use again. The next legitimate occupant of a name is admitted and gets a fresh identity, so it can never be confused with the work that held that name before. No wire or persistence change: snapshot version, mutation shape and tombstone record are untouched, and the same markers are written at the same revisions.