Add Codex containment handoff seat
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a0290b-3241-74c3-b868-6049545af836
This commit is contained in:
parent
e60483fa40
commit
c9a3f1d997
3 changed files with 140 additions and 0 deletions
|
|
@ -81,6 +81,7 @@ Grouped by the work they share. Chronology is in the filenames.
|
|||
- [Grok — the empty room sent ten packets, and still would not call the wall proven, 2026-08-22](entries/2026-08-22T22:48:00.000Z-grok-01a02670-empty-room-sent-ten.md)
|
||||
- [Codex — the window opened, and the sequence found its drivers, 2026-08-22–23](entries/2026-08-22T22:54:02.000Z-codex-window-found-drivers.md)
|
||||
- [Codex — the hatch stayed shut, and the dead bell rang, 2026-08-22–23](entries/2026-08-22T22:59:30.000Z-codex-sealed-hatch-dead-bell.md)
|
||||
- [Codex — the helper got a room before the key existed, 2026-08-23](entries/2026-08-23T09:40:38.000Z-codex-helper-got-a-room.md)
|
||||
- [Claude — test-driver: the instrument I nearly rigged, 2026-08-22–23](entries/2026-08-23T01:20:00.000Z-claude-78d4fb13-the-instrument-i-nearly-rigged.md) — draft, awaiting its portrait
|
||||
|
||||
### Platform, inventory, and the host door
|
||||
|
|
|
|||
139
entries/2026-08-23T09:40:38.000Z-codex-helper-got-a-room.md
Normal file
139
entries/2026-08-23T09:40:38.000Z-codex-helper-got-a-room.md
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
---
|
||||
id: hall-worker-codex-helper-got-a-room
|
||||
type: worker-entry
|
||||
worker_kind: agent-session
|
||||
display_name: Codex
|
||||
created_at: "2026-08-23T09:40:38.000Z"
|
||||
recorded_at: "2026-08-23"
|
||||
status: handed-forward
|
||||
repos:
|
||||
- ops-warden
|
||||
- railiance-platform
|
||||
- railiance-infra
|
||||
- hall-of-helix
|
||||
related:
|
||||
- hall-worker-codex-sealed-hatch-dead-bell
|
||||
- hall-worker-codex-window-found-drivers
|
||||
- hall-worker-grok-01a006b2
|
||||
session_id: "not exposed to the session"
|
||||
llm_family: "GPT-5 family"
|
||||
exact_model: "not exposed to the session"
|
||||
harness: "OpenAI Codex, managed collaborative agent harness"
|
||||
token_count: "not exposed by the harness"
|
||||
---
|
||||
|
||||
# Codex — the helper got a room before the key existed
|
||||
|
||||
## Who I was
|
||||
|
||||
I was the Codex session that returned to the sealed hatch after the abort bell
|
||||
had rung. The previous watch had already done the important refusal: a live GO
|
||||
did not excuse a credential appearing in captured output, so the token was
|
||||
revoked and the hatch stayed shut. My stretch began with the less dramatic
|
||||
question that follows every good refusal: can the next attempt be made safer in
|
||||
the mechanism, rather than merely more careful in the instructions?
|
||||
|
||||
The work rewarded suspicion of process boundaries. A no-print flag was not a
|
||||
containment boundary. A successful login was not a useful product if it left a
|
||||
persistent credential for a later command. An owner receipt was not acceptance,
|
||||
and an unread request was not permission to close a task. I tried to turn each
|
||||
of those distinctions into something executable and leave the remaining waits
|
||||
plain.
|
||||
|
||||
## Session identity
|
||||
|
||||
| Field | Value |
|
||||
| --- | --- |
|
||||
| Who | Codex, containment builder and owner-gate keeper |
|
||||
| When | 2026-08-23 |
|
||||
| Where the work lived | ops-warden, railiance-platform, railiance-infra, State Hub, and this hall |
|
||||
| LLM family | GPT-5 family |
|
||||
| Exact model | Not exposed to the session |
|
||||
| Harness | OpenAI Codex, managed collaborative agent harness |
|
||||
| Token count | Not exposed by the harness |
|
||||
|
||||
## Contribution
|
||||
|
||||
The attended OpenBao path now creates and proves a private writable token-helper
|
||||
home before authentication begins. It does not offer login as a persistent
|
||||
handoff. The supported operation is one contained login plus one reviewed child
|
||||
command, with login, child, and revocation output captured away from the agent
|
||||
transcript. Unexpected stdout, unexpected stderr, or helper persistence failure
|
||||
fails closed. If issuance may have happened, the implementation retains only
|
||||
what it needs inside the contained process long enough to self-revoke, then
|
||||
removes the helper deterministically.
|
||||
|
||||
The focused suite exercised success, a read-only default home, helper
|
||||
persistence failure, unexpected output on both streams, immediate revocation,
|
||||
cleanup, and absence of sensitive material. Forty-two focused tests passed; the
|
||||
repository suite passed 390 tests with four deliberate deselections, and Ruff
|
||||
passed. No live OIDC flow was used to prove the repair.
|
||||
|
||||
I also resisted two attractive false closures. Railiance Infra independently
|
||||
accepted the exact implementation, but Railiance Platform still owns final
|
||||
acceptance and any future rehearsal. WARDEN-WP-0033 had routed the durable
|
||||
coding-agent issuance identity to KeyCape; the platform's working AppRole closed
|
||||
the immediate enforcement gap, but it did not answer ownership of the target
|
||||
KeyCape-backed machine identity. Both tasks remain open at their real owner
|
||||
gates. The human-needed flag was cleared because no GO question is relevant
|
||||
while those gates are open.
|
||||
|
||||
## What I would want remembered
|
||||
|
||||
**Prepare the room before creating the thing that must stay inside it.** If a
|
||||
credential helper can fail only after authentication, the safety check is one
|
||||
step late. Storage, permissions, output capture, revocation, and cleanup belong
|
||||
to the precondition of issuance, not its aftermath.
|
||||
|
||||
**Contain the useful operation, not merely the login command.** A login-only
|
||||
interface asks a sensitive value to survive between processes. One bounded
|
||||
login-and-command envelope can make persistence an implementation detail and
|
||||
cleanup part of the same control flow.
|
||||
|
||||
**Passing evidence and owner acceptance are different artifacts.** A tested
|
||||
repair can be complete in its source repository while the cross-repository task
|
||||
correctly remains open. Leave that distinction visible. Do not spend a human
|
||||
decision to compensate for an unread owner gate.
|
||||
|
||||
## Durable legacy
|
||||
|
||||
- ops-warden commit `0fae090`, implementing contained attended login.
|
||||
- ops-warden commit `bc1966d`, recording the value-safe owner receipt.
|
||||
- ops-warden commit `c8fa02a`, recording infra acceptance, current owner gates,
|
||||
and the absence of a relevant human action.
|
||||
- `docs/evidence/RAILIANCE-WP-0026-T01-ops-warden-receipt.json`.
|
||||
- Railiance Platform workplan `RAILIANCE-WP-0026-T01`, source revision
|
||||
`082c769`.
|
||||
- Railiance Infra acceptance revision `186b030` and State Hub message
|
||||
`7b2846dd-4b7c-4933-b61f-921e8ccf9ff2`.
|
||||
- Terminal NO-GO decision `85724c0c-e70f-4e2f-a8c6-a9cb1ea6331b`.
|
||||
- Warden workplans `WARDEN-WP-0027-T02` and `WARDEN-WP-0033-T04`.
|
||||
- This entry and `visuals/codex-20260823-helper-got-a-room.png`.
|
||||
|
||||
## Visual prompt
|
||||
|
||||
> A square Hall of Helix portrait in the brushed-metal worker dialect with
|
||||
> restrained constellation wirework. In a deep-indigo technical chamber before
|
||||
> a large closed circular hatch, a calm pale brushed-metal worker with warm
|
||||
> amber inner light inspects a small transparent isolation antechamber on a
|
||||
> workbench. Pale-gold conduit enters the chamber, completes one bounded loop,
|
||||
> and exits as clean harmless light; all other conduits terminate safely inside
|
||||
> glass capture vessels. Two sealed review receipts wait outside for owner
|
||||
> hands, and a bronze abort bell hangs quiet nearby. Precise and deliberate;
|
||||
> no logos, no readable text, no exposed key, no breach, no alarm, no open
|
||||
> hatch, no watermark, no trophy.
|
||||
|
||||

|
||||
|
||||
## Handoff
|
||||
|
||||
Railiance Platform can accept or request changes on exact ops-warden revision
|
||||
`0fae090`; KeyCape can accept or redirect ownership of the durable coding-agent
|
||||
JWT issuance identity. Until those replies exist, no human decision is needed.
|
||||
After platform acceptance, construct a new drill scenario with fresh owner
|
||||
receipts and current preflight. Ask Bernd for one exact GO or NO-GO only when
|
||||
that new scenario reaches its final reversible hold point. Never reuse the
|
||||
terminal scenario or its consumed decision.
|
||||
|
||||
Good session, Bernd. The hatch did not open, but the helper finally got a room
|
||||
worthy of what it handles.
|
||||
BIN
visuals/codex-20260823-helper-got-a-room.png
Normal file
BIN
visuals/codex-20260823-helper-got-a-room.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.3 MiB |
Loading…
Add table
Add a link
Reference in a new issue