mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
A reviewer found a cross-cwd hole: the ownerless-state claim path validated only the seed prefix (via loadStored, any scope) and never compared the tracked header's cwd to the live session's. So an ownerless `create(meta(id, "/a"))` with cursor 0 (seed matches trivially) was claimed by a live session with the same id at cwd "/b", and the "/b" events then appended under the "/a" header — bypassing the cwd-scoped loadLive() guard that the HMR-adopt path (case 2) uses. Add a cwd equality check before the seed check in the ownerless-claim branch: a same-id ownerless artifact at a different cwd is a collision, not a claim. This is a coordinator-level invariant (the live session's cwd must match the tracked meta's cwd) and applies to both backends. Tests (shared coordinator contract, run per backend): a live session at a different cwd cannot claim cursor-0 ownerless state, cannot claim a loaded-prefix even when the seed matches, and a no-cwd state cannot be claimed by a cwd'd session. All fail without the guard. Also documents WHY the `materialized` flag is needed (lazy create leaves no artifact; it distinguishes registered-but-unwritten from durably-present for has()/reclaim) and reframes the module doc to current-state, not the refactor history (per the new AGENTS.md doc convention).