Tracked from the v1.0.13 release notes (PR #268) and the DAG-LOC-01 arbitration (probe C4 in packages/opencode/test/dag/dag-location-guards.test.ts).
Symptom
After a session moves (SessionMoved / session.next.moved), a session's workflows can end up with mixed directory stamps across their rows: the workflow row keeps the stamp of the directory that created it while the session now durably lives elsewhere. The fail-closed ownership policy (a stamp must match exactly one instance directory) then leaves the workflow with NO owner: wakes for it are deliberately wedged rather than risked being mis-delivered.
Current behavior is pinned by probe C4 (SessionMoved wedge pin) — the probe asserts the wedge itself, i.e. NO directory acts on the mixed-stamp workflow.
Why it was pinned, not fixed (v1.0.13 decision)
A real fix needs an atomic-DB-adoption redesign: the directory stamp must move WITH the session in one transaction (or adoption must consult a session-sourced location that is updated atomically with the move), so there is never a window where stamps disagree. SpawnReady eviction is the current mitigation.
Acceptance (for whoever picks this up)
- Mixed-stamp scenarios after SessionMoved resolve to exactly one live owner (the session's new durable directory) within bounded time, without cross-directory double-adoption.
- Probe C4 flips from pinning the wedge to pinning the resolution.
- Mutation-falsifiable evidence for the new ownership transition (red-first), in the style of the H1 latch probe (ab4cddb).
- All existing DAG-LOC-01 guards stay green (21 probes in dag-location-guards.test.ts).
Tracked from the v1.0.13 release notes (PR #268) and the DAG-LOC-01 arbitration (probe C4 in
packages/opencode/test/dag/dag-location-guards.test.ts).Symptom
After a session moves (SessionMoved / session.next.moved), a session's workflows can end up with mixed directory stamps across their rows: the workflow row keeps the stamp of the directory that created it while the session now durably lives elsewhere. The fail-closed ownership policy (a stamp must match exactly one instance directory) then leaves the workflow with NO owner: wakes for it are deliberately wedged rather than risked being mis-delivered.
Current behavior is pinned by probe C4 (
SessionMoved wedge pin) — the probe asserts the wedge itself, i.e. NO directory acts on the mixed-stamp workflow.Why it was pinned, not fixed (v1.0.13 decision)
A real fix needs an atomic-DB-adoption redesign: the directory stamp must move WITH the session in one transaction (or adoption must consult a session-sourced location that is updated atomically with the move), so there is never a window where stamps disagree. SpawnReady eviction is the current mitigation.
Acceptance (for whoever picks this up)