Five reviews of 226285a1f (Fable triad, grok-4.7 triad and scope, gpt-6-astra
triad and scope; dispositions in the sprint ledger) converged on these fixes:
- untracked_binary_verdicts: a path the first diff omits is identical to the
staged empty blob, i.e. an empty file, which git still classifies by
attribute; those paths get a second batch staged as a one-byte blob, so an
empty `-diff` / `binary` / driver-binary file is binary exactly as the
per-file verdict said. Only the two staging blobs enter the target's object
database. Scratch-index allocation is inside the guarded lifecycle, so an
unavailable temp dir also falls back to the per-file verdict with a warning.
- binary_verdict_candidates: the dotenv policy, the name rules, the PEM head
(restricted modes) and the size cap decide BEFORE the batch, so a vetoed or
over-cap file is never handed to git and never reaches a clean filter or an
encoding conversion; both callers batch only candidates.
- provision_execution_snapshot: the provisional row carries no per-file maps;
the first lock section is inside the cleanup scope, so a failed update-ref or
worktree add after the row discards row, pin and admin dir; a discard after a
busy lock waits 5 s, not the full timeout.
- provision_worktree / remove_worktree follow the same split: admin dir and
branch under the lock, the checkout populated (`reset --hard --quiet
--no-recurse-submodules`) and deleted outside it.
- A refused snapshot provision keeps its facts on the configured-child path:
cause, holder, waited seconds and the producer's detail ride
`subagent_availability`, the $0 terminal text, the START_FAILED row and the
acceptance evidence.
- Tests: platform guard on the newline-named fixture entry; non-UTF-8 name
only where the filesystem accepts it; hook positive control; `_git_env`
spy; acting-lane split; empty-file classes; filter-tee guard; refusal facts
on the bootstrap path; the receipt's timing facts join the per-case identity
set of the directory-geometry payload comparison.
- Docs: the delegated-lane sentences name the acting checkout/delete, the
registry read-modify-write residual and the target object-database growth
(owner decision: disclose only); data-layout inventory regenerated.
Co-authored-by: Ouroboros <311266734+ouroboros-agent@users.noreply.github.com>