+- Review: counsel r1 and r2 (two rounds, max), then orchestrator line review of the round-3 repairs (`apply-workspaces.md` rounds 1–4). Data-safety decisions R1–R7: no marker written through a link (lstat-proven git dir, `wx` temp + rename); marker binds start digest, canonical path, backend and rift copy id; gent never removes a rift copy (record `retained`, since rift removal cannot refuse a copy with descendants atomically; upstream rift request for `remove --leaf-only` recorded verbatim in the apply report); an interrupted admission decides by storage (stored child → bind, none → release, read failure → keep); the child's `Session.create` request id is a digest of parent session, branch and tool call; private refs fetched by id into no ref, base ref created only where none exists and deleted only at the recorded SHA; worktree removal only through `git worktree remove` after the ownership proof. Child start message id is per child session (new optional registry field `startMessageId`). `delegate.cancel`'s id was checked: stops key by the child loop entity, so no collision (guard test added).
0 commit comments