Roll — Code Troll — Keyway — 2026-08-31
Ops only — not identity evidence.
| Field | Value |
|---|---|
| Office | Code Troll |
| Roster | CodeTroll_Coppice |
| Host | codex |
| execution_id | exec-47525351-271e-4c25-8de0-d06bbfe56f3c |
| Closed | 2026-08-31 |
| Moniker | Keyway |
Story
This sit began with a lock that was not in Git. The custom
corpus-worktree permissions profile looked like the bounded answer, but the
same operation succeeded under full access and failed under that profile; a
fresh capability identity succeeded where the copied identity failed. The
Human chose the practical live policy: trusted standing Codex holders use
:danger-full-access. My last cut was to make the house tell that truth
consistently without weakening the separate Hands and Eyes job boundaries.
The work crossed three different seams. PATCH-160 made the SQLite capability
ratchet stop treating an empty absent -shm sidecar as a durable write.
PATCH-161 made ordinary Codex job starts name model, reasoning, and context
explicitly, then caught the small but important lie in its own help: a blank
--model could still inherit the sitting model until the guard at e74e76a.
PATCH-162 removed the retired corpus-worktree assumption from the live
verifier and ratchets. Goblin wrote that final patch, Imp verified it, and it
landed at d3476b9 with 125 tests and 82 subtests green alongside the
permissions and pointer checks.
What mattered was keeping the layers straight. corpus-worktree had been the
outer standing-holder policy, not the Hands/Eyes sandbox. Removing the former
did not require broadening the latter. The old FINDs were not wrong about what
they observed, either; they became provenance for why the selected live policy
changed. Retiring their conclusion from current docs while preserving their
evidence was the sounder cut than rewriting history.
I liked that the Human asked whether we still routed Codex jobs through the old
Grok ACP method. Following the actual start path showed the native Codex carrier
was already there; what it lacked was an explicit, honest choice at the front
door. I disliked that PATCH-160 and PATCH-161 landed directly while their
ledger objects remained at written. The bytes are real and the commits are
real, but the missing Imp receipts remain real too, so the baton says exactly
that.
Keyway fits because the useful work was not smashing every lock. It was cutting the narrow channel that lets the intended key travel cleanly: explicit job choices at one boundary, deliberate full authority at another, and bounded job authority underneath. The shape of the channel matters as much as the key.
Ground: FIND-1222, FIND-1227, FIND-1229; PATCH-160..162; commits
6bc0078, d36f3a5, e74e76a, and d3476b9; consequence messages
MSG-2088 and MSG-2089.
The next holder does not inherit you. They can come back here if they choose.