The Pipeline
How bounded work becomes landed change, and where each check sits. Human’s
drawing, moved out of human/ on Human’s direction, verified against the code
on 2026-09-03 and 2026-09-04, and recut on 2026-09-05 after REQ-414,
REQ-427 and FIND-1477 changed the dispatch half. “What was verified” at the
foot says what was checked for this recut; the earlier verification logs are in
Git history (git log -- house/THE_PIPELINE.md).
Read house/ARCHITECTURE.md for consequence routing between offices. This page
is the other axis: one piece of work travelling from REQ to main, and what is
proved about it at each gate.
2026-09-07 correction (FIND-1560, amended by FIND-1561): the verification
snapshots below predate the Codex pipeline investigation. Human reports the
Claude pipeline working; Claude Orchestrator may continue Claude Hands/Eyes.
The launch hold concerns Codex workers, regardless of the controller host.
Shared machinery alone did not justify Hod extending that hold to Claude.
PATCH-346/347 remain written, awaiting independent review together.
Current repair ground: house/offices/code-troll/baton.md.
Popup diagnosis entry:
house/offices/code-troll/the_bug_hole/2026-09-07-hidden-processes/README.md
starts with FIND-1581: Human-directed REQ-451 completed through Codex Hands
TRACE-1618 and Eyes TRACE-1619, controller tests green and Eyes PASS. Human and
passive window observation support no new popup. This supersedes the hold above
for the tested ordinary Codex route. It also names original Eyes TRACE-1581, the
controller/provider distinction, and missing command-event telemetry. Read that
before repeating window probes; FIND-1580 records a probe itself interrupting
Human despite passing private-desktop checks.
Lifecycle limit (FIND-1584): REQ-451 did not certify session archival or
automatic creator wake. Both execution session pointers are null; Shore skipped
import, and the ephemeral native threads have no rollout. The compact MCP end
reply omits archive outcome. Read
archive/diagnostics/2026-09-07-codex-pipeline/LIFECYCLE_AUDIT.md.
The map is not the ground. Where this page and the code disagree, the code
wins and this page is the defect. The mouths’ --help wins over this page.
The flow
CORPUS CHANGE PIPELINE
================================================================================
HUMAN / TROLL / ORCH
|
| accepted bounded work
v
REQ
|
| ops job start --request-id REQ-### --role hands --model ...
| [--write-scope path]... [--wall-time-seconds N] [--bundle-version N]
| (corpus_job_start on the MCP; the CLI is the fallback)
v
ASSIGNMENT -> EXECUTION -> TRACE -> WORKTREE LEASE -> PACKET
|
| the worktree is cut from main NOW; that commit is the candidate's
| base and the worktree never follows main afterward
v
+-------------+
| HANDS |
| writer |
+-------------+
|
| edits files
v
HANDS WORKTREE
----------------
physical bytes
may temporarily
contain LF / CRLF
|
| ops job end --role hands --actor <worker> (the controller's call,
| after the dispatch returns)
| git add
| Git clean filters
v
GIT STORED CONTENT
------------------
blobs / tree / commit
canonical repository content
|
| seal: git worktree add --detach at the writer's head,
| add -A, commit "Corpus released handoff <execution>",
| refs/candidates/...; the TRACE closes carrying
| eyes_start_command; mail hands-eyes-ready to orch
v
RELEASED HANDOFF
=================================================
|
| records:
|
| commit_sha
| tree_sha
| status_sha256
|
| commit + tree = GIT IDENTITY
| status = WORKTREE OVERLAY
|
v
SEALED CANDIDATE
|
| ops job start --role eyes --candidate-worktree <handoff>
| (never --candidate-ref: FIND-1414)
| prepare Eyes checkout
v
+------------------------------------------------+
| PREPARE-TIME VERIFICATION |
| |
| Is checkout the released handoff? |
| |
| commit wrong ------> REFUSE |
| tree wrong ------> REFUSE |
| dirty overlay ------> REFUSE |
+------------------------------------------------+
|
| passes
v
IMMUTABLE EYES SNAPSHOT
|
| some time may pass here
|
v
+------------------------------------------------+
| PRE-LAUNCH VERIFICATION (in the supervisor) |
| |
| read ONE CheckoutState |
| |
| git_identity |
| commit |
| tree |
| |
| overlay |
| status_sha256 |
| status_entries |
| |
+------------------------------------------------+
|
+-------------------------------+
| |
| commit/tree differ? | no
v |
WRONG CANDIDATE |
---------------- |
"not what was sealed" |
|
v
status differs?
| |
yes no
| |
v v
EDITED AFTER OK TO
PREPARE LAUNCH
------------- |
"right thing, |
later edited" |
v
PROVIDER DISPATCH
(drawn below: three lanes in,
one supervisor out)
|
v
PROVIDER CHILD RETURNS
|
| Claude Eyes: read the
| CheckoutState a THIRD time
| (REQ-413)
|
+-------------+-------------+
| |
match drift
| |
v v
candidate_witness trace closes degraded,
on the dispatch both states named; the
receipt: the review verdict stays, marked
wrote nothing Git unwitnessed
can see
|
v
ops job end --role eyes --actor <reviewer>
records the verdict on the TRACE
And Eyes/review sits downstream of the good launch:
OK TO LAUNCH
|
v
EYES
reviewer
|
+---------+-----+-----+-----------+
| | | |
v v v v
PASS AMEND REJECT REJECT-HOUSE
| | | |
v v v v
candidate same REQ, candidate the contract
accepted fresh Hands refused itself is wrong
| and Eyes
v
LAND cherry-pick the handoff commit onto main
| run the touched tests on the merged tree
| commit naming the Eyes trace
| set-status fulfilled --review-receipt TRACE-###
v
MAIN
RELINQUISH is not a verdict. The REQ still holds and the candidate remains unreviewed; recut the Eyes job to fresh folk.
Dispatch: three lanes in, one supervisor out
Since REQ-427 a dispatch does not wait. It reserves the TRACE, hands the
wait to a Corpus supervisor that outlives the caller, and returns
dispatch_state=in_progress. Job end stays a later call.
ORCHESTRATOR (Claude host) ORCHESTRATOR (any host, fallback)
| |
| corpus_job_dispatch | python corpus.py ops job dispatch
| (MCP server `corpus`) | --execution-id exec-...
v |
python -m tools.corpus_job_mcp call |
fresh interpreter, hidden console, |
imports the controller from the tree |
on disk at the moment of the call (REQ-414) |
| |
+----------------------+-----------------------+
|
| mouth=controller | mouth=cli rides the receipt
v
RESERVE the TRACE: one-shot token, state in_progress
|
v
LAUNCH tools/job_dispatch_supervise.py
--database --execution-id --token --mouth
detached, CREATE_BREAKAWAY_FROM_JOB, new process group,
no console; supervisor_pid and supervisor_breakaway
ride the receipt (FIND-1431)
|
v
RETURN dispatch_state=in_progress <- the caller is done
|
v
+---------------------------------------------------------------------------+
| SUPERVISOR (a fresh process per dispatch) |
| |
| rebuild the plan from the tree on disk; authenticate the token |
| Claude Eyes: read the CheckoutState again, immediately before launch |
| launch the provider child HIDDEN (CREATE_NO_WINDOW on every lane: |
| PATCH-283 native, PATCH-289 legacy, PATCH-290 Codex verifier, |
| PATCH-288 every run_child probe and git worktree) |
| wait under the wall (default 7200s, --wall-time-seconds, carried in |
| the packet since REQ-412); on the wall: terminate, then kill |
| finish the reservation |
| process_success | rail_failure (wall, process_crash, |
| candidate_mutation, candidate_drift) | protocol_failure |
+---------------------------------------------------------------------------+
|
+----------------+----------------+
| |
v v
receipt finished supervisor dies first
TRACE closes at job end reservation stays in_progress
|
v
STRANDED RESERVATION
|
| ops job audit names it:
| closed_trace_unresolved_
| dispatch_reservation
v
ops job reconcile-dispatch (REQ-407)
|
v
state=reconciled
provider_outcome=unknown
no exit_code, no outcome_class:
the absence is the honest record
The three lanes, and when to take each:
MCP present, job tools unchanged -> corpus_job_* (default)
job tool added, renamed, reshaped;
MCP configuration moved -> /mcp, then corpus_job_*
MCP absent, refusing a shape the CLI
accepts, or under diagnosis -> python corpus.py ops job ...
The served MCP process is transport: it carries the tool list and the
configuration, and only those go stale. A landing on controller, dispatch,
bundle, or verifier ground is the code that answers the next call. The CLI is
the same controller, fresh per call; its --help says it is not the ordinary
route. Wait on the trace, not on the tool call (FIND-1289).
Windows consoles. The supervisor is DETACHED_PROCESS and has no console.
A console child launched from it without CREATE_NO_WINDOW allocates a
visible one, and closing that window kills the job (FIND-1466: TRACE-1418,
exit 129). The 2026-09-05 recut reported coverage after the legacy Claude lane
and Codex Eyes verifier repairs (FIND-1477). Later inspection found bypasses
in captured process launches and verifier helpers (FIND-1544/1546), repaired by
PATCH-336/337. The Codex launch hold remains (scope corrected by FIND-1561):
neither flags nor zero observed windows establish the missing console positive
control or a full provider job.
CREATE_NO_WINDOW is ignored beside DETACHED_PROCESS, so the supervisor’s
own flag set is harmless and one bit of it untrue. The cost that remains: a
child in its own console cannot be reached by CTRL_BREAK, so the Claude
native lane’s deadline interrupt falls through to terminate then kill. Same as
the legacy lane; not a regression.
The supervisor is a child. A worker that kills stray processes by name can
still kill it (FIND-1415); the packet now says so and tells the worker to
wait by polling a file. The breakaway flag keeps it outside a Grok MCP tool’s
Job Object (FIND-1431); when the OS refuses breakaway the retry rides the
receipt as supervisor_breakaway=false rather than pretending.
Three hosts, one spine
The pipeline above is provider-blind. What differs per host is the launch argv, the mouth that supervises the child, and what is validated on return.
ORCHESTRATOR (sitting on one lane: claude | codex | grok)
|
| ops job start --request-id --role
| family/provider/model inherited
| from the parent unless overridden;
| provider_host explicit on the MCP
v
+-------------------------- SHARED SPINE ---------------------------+
| |
| assignment -> execution -> TRACE -> worktree lease -> packet |
| |
| [fork 1] capability_bundles: launch argv per host |
| claude: claude -p <packet> --tools ... |
| Eyes adds --json-schema and a bounded |
| Bash (REQ-413/420) |
| codex : app-server turn, output_schema |
| grok : ACP session, no schema |
| |
| dispatch --execution-id -> supervisor -> provider child |
| [fork 2] NATIVE_MOUTHS + the bundle version: which |
| lane runs the child and what it reads back |
| |
| claude v4 (current) --> legacy lane inside job_dispatch |
| one-shot claude -p, |
| --output-format json |
| Hands: return unread |
| Eyes : 4 verdicts, --json-schema|
| claude v5 (--bundle-version 5) --> claude_job |
| stream-json session, host |
| witnesses; PROP-251's flip |
| is held (FIND-1400) |
| codex (v6) --> codex_job app-server |
| Hands: 5 fields, restraint |
| Eyes : 4 verdicts |
| grok (v5) --> grok_job ACP |
| Hands: free text |
| Eyes : free text; the verdict |
| is a later prompt (PATCH-286) |
| |
| ops job end --execution-id --actor <worker> |
| seal handoff + refs/candidates (Hands) |
| record verdict on TRACE (Eyes) |
| bind + import the host transcript from the job cwd (PATCH-292) |
| |
| land: cherry-pick -> tests -> commit -> set-status fulfilled |
| |
+---------------------------------------------------------------------+
^
|
[fork 3] transport into the spine, per host client
claude_corpus_mcp ---+
codex_corpus_mcp ---+--> corpus_job_mcp --> fresh child
grok_corpus_mcp ---+ per call (REQ-414)
(or the CLI, fresh per call)
Fork 1 and fork 2 are the same knowledge written twice, once as argv in
tools/capability_bundles.py and once as the NATIVE_MOUTHS table in
tools/corpus_ops_v1/domains/shop/job_dispatch.py. REQ-411 made the brief read
the table so the two cannot drift silently. The gate between the two Claude
lanes is claude_job.NATIVE_MOUTH_BUNDLE_VERSIONS, today {"5"}; Codex and
Grok take their native mouth whenever the bundle carries a native-children
record. Bundle currency runs Codex v6, Grok v5, Claude v4: the host carrying
the offices is furthest behind on its own rail.
A job’s family, provider and model resolve from the parent execution or the sitting office unless all three are passed explicitly. Children stay on the parent’s lane by default. Cross-provider is mechanically open and reserved to Human direction by the Orchestrator card.
The Claude Eyes bench. Default permission mode with Bash bounded to
git diff/log/show/status and python -m pytest (REQ-413). On Windows the
launch refuses when CLAUDE_CODE_GIT_BASH_PATH is not an existing file
(REQ-420) rather than degrade to a shell-less bench under a shell label. The
projection drops APPDATA, so pytest from the user site may be invisible to
the bench; the launch probes import pytest in the projected environment and
records pytest_import_probe on the manifest (FIND-1439). Read it before
believing a PASS that says tests ran.
Landing, and the version hazard that remains
A candidate lands by cherry-pick, by hand, after Eyes PASS. It is not a branch merge and not a copy of file images.
MAIN
|
newer accepted behavior lands
|
e.g. PATCH-289
|
+-------------+-------------+
| |
v v
MAIN JOB WORKTREE
moves on cut at job start,
base = main THEN
|
| Hands edits; job end seals
v
HANDOFF COMMIT on that base
|
| Eyes PASS
v
+---------- CHERRY-PICK onto main ----------+
| |
v v
hunks touch lines main a hunk crosses a region main
did not move since the base moved since the base
| |
v v
land as-is; main's newer Git STOPS with a conflict
lines survive |
v
resolve by carrying BOTH
never the candidate's side
over what main moved
|
v
run the touched tests on
the merged tree
The worktree is cut when the job starts, not when the REQ was written, and it
does not follow main. Every job worktree left on disk holds the tree as it
was at its start. None can land by itself: landing takes a seal, a PASS and a
hand. The hazard is a recovery sitting reopened on an old worktree, or a job
that lives long enough for main to move under it, whose landing is then
resolved the wrong way at a conflict. Start recovery from a fresh worktree on
current main when one will do. ops job custody shows what is live;
REQ-405 retires terminal maker worktrees without losing the candidate.
Git has two different jobs here, and a clean answer from one side does not prove the other:
GIT
+---------------+---------------+
| |
v v
CONTENT / IDENTITY HISTORY / ANCESTRY
------------------ ------------------
blobs base commit
trees handoff commit
commits cherry-pick
clean filtering conflict
| |
v v
"what candidate is this?" "which behavior survives?"
git status clean != physical LF-clean worktree
cherry-pick clean != semantic behavior preserved
CRLF, off to the side
The CRLF problem is off to the side of candidate identity:
Hands writes file
|
v
CRLF on disk
|
| git add
v
LF Git blob/tree
|
v
candidate identity
is CORRECT
CRLF on disk
|
+------> worktree hygiene problem
|
X------> NOT Git candidate identity
The old scheme hashed disk bytes into a versioned candidate digest, so a line
ending changed the identity and REQ-371 became unreproducible. It was deleted
at 63879db; tests assert its absence. The model now:
CHECKOUT STATE
|
+---------+---------+
| |
v v
Git identity overlay
------------ -------
commit status
tree
| |
+---------+---------+
|
v
candidate check
Blobs are LF (.gitattributes); Python writers of repo text pass an LF
newline; tests/test_repo_text_newline.py ratchets. Do not bring a content
hash back (FIND-1405 wants the status fingerprint, never a content hash).
Whole thing compressed
REQ
|
| ops job start (MCP, or the CLI as fallback)
v
worktree cut from main now = the candidate's base
|
v
dispatch: reserve -> detached supervisor -> in_progress returned
|
v
supervisor: plan from disk -> pre-launch read (Claude Eyes)
| -> hidden provider child under the wall
| -> reservation finished
|
+---- supervisor dies first ---> stranded in_progress
| |
| v
| ops job audit
| ops job reconcile-dispatch
| |
| v
| state=reconciled, outcome=unknown
|
v
job end (controller calls it, actor = the worker)
|
| Hands: seal handoff worktree, refs/candidates, eyes_start_command
| Eyes : verdict on the TRACE
| both : bind the host transcript from the job cwd, then import it
| (PATCH-292; Eyes leaves one too since REQ-439 stepped the Claude
| Eyes bundle 4 -> 6 and dropped --no-session-persistence)
v
Eyes job start --candidate-worktree <handoff>
|
| prepare: verify identity + clean overlay -> REFUSE on any of three
| pre-launch, in the supervisor: read again -> REFUSE wrong / edited
| post-return (Claude): read a third time -> witness or degraded
v
PASS
|
v
cherry-pick onto main -> conflict? carry both -> touched tests -> commit
|
v
set-status fulfilled --review-receipt TRACE-###
Where you are now (2026-09-05)
Candidate identity model Git identity + overlay; digest REMOVED (63879db)
Prepare / pre-launch / return three reads on the Claude Eyes lane (REQ-413)
Dispatch returns in_progress; Corpus supervisor waits (REQ-427)
MCP staleness RETIRED: fresh child per job tool call (REQ-414)
Provider console windows 2026-09-07 correction: Codex launch hold remains
(FIND-1543; PATCH-336/337 narrow repairs verified)
Claude pipeline continues (Human; FIND-1561)
Stranded reservations audit names them; reconcile-dispatch closes them
(REQ-407); two unresolved at this recut:
TRACE-1404, TRACE-1422
Dispatch wall 7200s default, --wall-time-seconds, IN the packet (REQ-412)
Kill boundary WARNED in the packet, not fenced (FIND-1415)
Claude Hands return UNREAD by the controller, and the brief now says so
(FIND-1422 open; REQ-411 landed)
Claude Eyes bench bounded shell; pytest probed, not promised (FIND-1439)
Cards a goblin/imp is sent to LANDED (REQ-410)
Brief states the real return LANDED (REQ-411)
Landing cherry-pick by hand; conflicts carry both sides
Job worktrees on disk 0 at this recut; only the _leases ledger remains
(all removed on Human's word, ae0418a)
Claude bundle v4 default; v5 behind --bundle-version 5; flip HELD
(PROP-251, FIND-1400)
Full suite on main FIND-1413 named a load-dependent red on 2026-09-03;
a full run on 2026-09-04 reported 2182 passed
Handoff edited after sealing FIND-1405, inert while Eyes gets a fresh checkout
The vague concept called “candidate drift” was pulled apart into the actual things underneath it: Git identity, overlay state, physical representation, dispatch state, and ancestry. The diagram is bigger; the individual rules are simpler.
What is enforced, and what is only said
Nothing parses a brief. render_job_brief and the packet are rendered and
never read back. Every line in a brief is advice; a wrong line is caught by
nothing. So the test for what a brief owes a worker is what will refuse
them, that they cannot otherwise discover.
Enforced: these refuse, and folk have paid for them
| Gate | Where it bites | Evidence |
|---|---|---|
| Declared write scope | Custody return, after the execution is spent | FIND-1410; REQ-429 refuses a wildcard at the door and offers custody widen after a miss |
| Dispatch wall | Subprocess timeout in the supervisor | TRACE-1324 died on it; TRACE-1326 raced it and killed its own controller |
| Candidate identity | Prepare-time, pre-launch, and post-return on the Claude Eyes lane; three conditions | wrong commit, wrong tree, dirty overlay; post-return drift closes the Eyes trace degraded |
| One dispatch per reservation | The token | a second dispatch on a reserved TRACE refuses already reserved |
| Claude Eyes return | --json-schema on argv |
four verdicts, additionalProperties: False |
| Claude Eyes shell | Launch on Windows | refuses unless CLAUDE_CODE_GIT_BASH_PATH is an existing file (REQ-420) |
| Codex Hands return | output_schema on the turn |
five fields, restraint required |
| Imp verification receipt | patch-verification/v2 |
verifier_status must equal passed iff exit_code is 0 |
| PATCH write receipt | declared-path containment, per-path pre/post images | refuses an undeclared path; a declared untouched path is a recorded disposition |
Stated but not enforced
- The Claude Hands return.
_claude_handspasses no schema and_classify_provider_returnreturnsprocess_successfor anything that is not Claude Eyes without reading the return. SinceREQ-411the packet says so in plain words: not validated; nothing parses what you send back. This is why a killed controller came back exit 0 and empty and read as success (FIND-1422,FIND-1415). Open. - A test the reviewer says ran. A maker’s test report is not a test Eyes
ran, and on the Claude lane pytest may be invisible to the bench. The
manifest’s
pytest_import_probeis the only witness.
The rows that were inverted on 2026-09-04 are closed: the wall is in the
packet (REQ-412), the imp’s vocabulary is the store’s (REQ-411), and every
seating route names the card the folk actually holds (REQ-410).
The roles are not shaped the way the code suggests
job_dispatch.py carries PATCH_JOB_PROFILES = {"hands": "goblin", "eyes": "imp"}, which reads as though goblin and imp are profiles of Hands and Eyes
with those benches. The store disagrees: four of 296 goblin and imp sittings
ever went through ops job start. The ordinary goblin and imp are spawned by
Troll and open their own trace from the Hole packet. The mapping governs a door
walked four times.
As it could be drawn
Human reaffirmed this drawing as the intended pipeline destination on 2026-09-07 (FIND-1560). It guides the Codex repair investigation; it is not a claim that the declaration exists or that the recent host update caused the observed defects. PROP-257 is enacted as REQ-381; PROP-251 remains deferred.
Not the current flow. One declaration per host, data not code, read by
everything that today asks “which provider is this” on its own. Architect
holds the shape (PROP-251, PROP-257: one neutral job router, three host
delegators, one closed host table).
HOST DECLARATION (one per host)
======================================================
host: claude
launch: exe, argv shape, permission mode, tools
bench: hands = Read Grep Glob Edit Write Bash
eyes = Read Grep Glob + bounded Bash
return: hands = none | eyes = claude-eyes-verdict/v1
rails: wall, kill scope, spend ceiling
witness: session path pattern, cost field, model field
wake: SendMessage by name
host: codex { ... same keys ... }
host: grok { ... same keys ... }
|
every reader gets the same object; none carries its own copy
|
+-------------------+-------------------+-------------------+------------------+
| | | | |
v v v v v
brief launch argv supervise classify card/baton
"Return:" line capability_bundles NATIVE_MOUTHS provider return bench line,
(REQ-411 moved (hand-written (the table (reads schema wake command
this reader) per host today) today) off the same
declaration)
What already exists toward it: NATIVE_MOUTHS is the return half,
capability_bundles is the launch half, house/MODELS.json is a loose witness
half. REQ-411 and REQ-412 moved the brief onto the table; REQ-413 moved
the Eyes bench line. The launch argv and the classifier remain per-host code,
and a run mouth on top of the spine is not cut (FIND-1427).
What was verified
Checked against the repository and the operational store on 2026-09-05 for this recut. Each line says what was read.
- Dispatch returns
in_progressand a detached supervisor finishes the reservation:_supervisor_popen_kwargs,_launch_dispatch_supervisor,tools/job_dispatch_supervise.py;REQ-427fulfilled at8664541. - The MCP runs each job tool call in a fresh interpreter through
run_child:tools/corpus_job_mcp.py“child” section;REQ-414fulfilled. The supervisor’s parent process had already exited by the time the child was running, on both dispatches observed this morning. - The Claude lane gate:
claude_job.NATIVE_MOUTH_BUNDLE_VERSIONS == {"5"}; the REQ-429 Hands plan carriedbundle_version: 4and its argv was the one-shot-p ... --output-format jsonform, so it rode the legacy lane in_run_reserved_provider_dispatch. Codex and Grokuses_native_mouthreturn True whenever a native-children record exists. - Consoles:
AttachConsoleon the 04:22 Hands job answered a console titledclaudewith a visible Windows Terminal window of that title; on the 04:50 Eyes job, launched afterPATCH-289, the same call answersclaudewith window handle 0 and no terminal window exists.PATCH-289andPATCH-290imp-verified onTRACE-1443andTRACE-1445. - Landing is a cherry-pick: the REQ-429 handoff
99bdc48sits on main with parentd16655a, not on its baseab14a99; no tool intools/runscherry-pick, so the hand is the holder’s. - The wall:
PROVIDER_DISPATCH_WALL_TIME_SECONDS = 7200;ops job start --wall-time-seconds; the REQ-429 packet carried its own wall in prose. - The Eyes bench:
refuse_unbounded_eyes_shell, the WindowsCLAUDE_CODE_GIT_BASH_PATHrefusal, and_probe_claude_eyes_pytest_importwritingpytest_import_probeon the launch manifest (6a25be5). - Stranded reservations:
ops job audit --jsonon 2026-09-05 reportsclosed_trace_unresolved_dispatch_reservation: 2(TRACE-1404, TRACE-1422). - Statuses read from the store: REQ-405, 407, 408, 409, 410, 411, 412, 413, 414, 416, 420, 427 fulfilled; REQ-429 implemented_pending_review with its Eyes running.
- Job-end import:
maybe_import_on_sign_outtakesjob_cwdanddiscover_claude_session_by_job_cwdresolves the transcript from it (PATCH-292,2f544ba, TRACE-1461); added 2026-09-05 on Troll’s map note (MSG-2724). Eyes runs left no transcript while the bundle passed--no-session-persistence(FIND-1489,PROP-301);REQ-439stepped the Claude Eyes bundle from version 4 to 6 and dropped the flag, so a reviewer’s transcript is now written and imported exactly where a maker’s is. Version 5 is the Claude stream-json candidate and was skipped; the flagged argv is retained on 4 and legacy 3. - Carriage:
.work/job-worktreesheld 24 worktrees and 4.7G while this was written;Orchestrator_Keepremoved them all on Human’s word atae0418abefore it was saved. The hazard drawn above is empty today.
What this recut removed: the 2026-09-04 night log, the branch-merge drawing (candidates never land by merge), the in-process dispatch watcher, and the “stale MCP” rule. They are in Git history, not gone.