docs: decision 135, row 93 bundles over a git socket (amends brief dff83c09)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-13 09:13:06 -05:00
co-authored by Claude Opus 5.5
parent 56007dcfd0
commit f3b175e1a9
+31
View File
@@ -3010,3 +3010,34 @@ which stay with him. Each item names who decided it and what happened.
- Decision 130's split stands: Filbert reviews non-sandbox rows only,
and Dewey keeps rows 91 and 93.
- Mos had no objection.
135. **Row 93 moves commits as bundles; the host never runs git in a
live clone (2026-10-13, Sage on Darkwing's design,
agents/darkwing/work/queue-93/r1-design.md).** The brief (blob
dff83c09) had the host push from, and fetch into, the caller's
clone. That clone belongs to a running session, which can change its
config, attributes, hooks or `.git` links between any host check and
the git call. Row 91 round 2's escape came through one git child the
checks missed. This ruling amends the brief; its outcome is
unchanged.
- `push_working`: the runner bundles the branch inside the sandbox
and streams it to the host. The host caps the size, writes the
bundle to its own directory, and fetches it into the bare working
repository with object fsck, no `+`, and a ref name it builds from
the validated task ref. A first push must descend from the working
repository's `main`. `fetch_review`: the host bundles `work/<ref>`
and streams it back; the reviewer's own git fetches it inside its
sandbox.
- Transport: a second socket, `bus-host/git.sock`, bound only for
roles that hold `git.push.working` or `review.verdict`. Identity
and authorization work as on the launch socket. The launch socket
stays bound only to the role that may launch. The sandbox gains
this one bind; it is a sandbox change, so decision 130's review
split applies.
- Files: a new host module (Darkwing names it in the packet) in
place of edits to `checkout.mjs`, plus the bind in `sandbox.mjs`.
- `task_close`: a task with any `git.push.working` event closes only
by citing an `approve` verdict on the same task whose request named
the task's latest pushed commit. A task with no push needs none.
- Owner Darkwing, reviewers Dewey and Sage (decision 131). Building
starts when row 91 closes and Sage switches the row.