docs(build-log): row 52 round 1 (dewey) and landing (sage)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-10 03:31:59 -05:00
co-authored by Claude Opus 5.5
parent 0aa5e7b51b
commit 32df6036c5
+22
View File
@@ -3949,3 +3949,25 @@ Round 1 (candidate 2da94e3b): Filbert approved (comment 27070, rev 302). Darkwin
The manifest checked 5/5 in the canonical tree. The candidate landed as 717e3404 through a temporary index, and `queue review verify-commit 51 HEAD` matched all 5 paths. Gate on a detached worktree of 032b5408 plus the candidate: webui 22/0, conversation 177/0, control-board 124/0, test-auth 15, test-conductor 17, test-config 24, test-discord 66, test-extension-package 18, test-foundation 44, test-queue 27 (29 in the canonical tree with verify and render), test-release 14, test-task 98, all with 0 failed. No `mosaic-chat-*` unit, shim or fake-pi engine was left after the gate.
Survivors that don't block go to #1539: `noseat` (the seat-head release on the free path), `recafteracq` (the K17 "before the acquire" wording has no test) and the untested retry after `still listed`. Close on an `uncertain` binding whose engine exited still signals the recorded PID. Row 52 (#1538) narrows that with the CHAT-01 engine-exit stop, and Dewey can claim it now.
### 2026-10-10 — Dewey, row 52 round 1 in review: CHAT-01 engine-exit stop and release at engine exit (#1538)
Before: CHAT-01 had no stop for a natural engine exit. A cohort scope stayed after the engine exited, until a confirmed force stop proved it and released it. Close on an `uncertain` binding whose engine had exited still signaled the recorded PID. The brief (rev 297) named Darkwing's points 1-4 as requirements, and Sage made the conversation change conditional on the engine identity coming from a shim op.
After: CHAT-01 (commit cc83ee4f, not pushed) adds stop mode `engine-exit`. The server starts it with `request: null` and no confirmation. It supersedes an unfinished interrupt or revocation, but refuses `stop-owned` under a force stop or another engine exit. The binding follows `ending(mode)` at startStop, advance-stop and confirm-stopped. The proof needs at least one member. Dispatched or acknowledged input goes to `delivery-unknown`; `working` input keeps its state. The fixtures add two shape cases and five sequences; check.mjs passes 100 shape, 76 reference and 22 lifecycle, and all 8 model mutants are killed. In conversation, `#onEnd` starts `#engineExit` after `#transport`. For the current execution with a recorded engine, no held slot and no current force stop or engine exit, it starts the stop, takes the slot and runs `engineExitCohort` under a 5000 ms deadline. The stop ends `uncertain`, or proven through the force stop's shared proof tail. `finally` frees the slot. The engine identity comes from the shim: `hello` returns `engineExit` `{code, signal, at, pid, startTicks, boot}`, and `engineExitCohort` refuses a reap whose PID, start ticks or boot differ from the recorded engine. It never freezes or kills. A proof needs the engine reaped, `engine` reading `populated 0` and no member listed. There is no `stopping` claim write for an engine exit. Tests: R4 is folded into E4; E1-E6 are new and cover a clean exit, a live tool child, one slot in both orders, a missed deadline, a force stop that ended `uncertain` before it closed the execution, and the identity check.
Mutants (full conversation suite, scratch copies): base 182/182. 19 mutants. Run 1 left `noowncheck`, `noident` and `evmode` alive, so I added E5, E6 and an E2 evidence check. In run 2, 14 are killed and 5 survive (`noslotcheck`, `bindadvance`, `emptyguard`, `nopopulated`, `nomembers`), each argued equivalent in the packet. No shim, engine or unit was left. Gate on a worktree of cc83ee4f plus the candidate (diff 2560cbcb), 07:56:23Z-08:01:22Z: chat-01 PASS, conversation 182/0, webui 22/0, control-board 124/0, test-auth 15, test-conductor 17, test-config 24, test-discord 66, test-extension-package 18, test-foundation 44, test-queue (node 148, shell 27; verify and render skipped outside the canonical root), test-release 14, test-task 98, all with 0 failed. No `mosaic-chat-*` unit was left, and core.hooksPath is unset.
Not tested: the boot comparison in `engineExitCohort`, an unreadable events file or failed `members` on the engine-exit path (reached only through the deadline), and the process-group fallback's immediate `uncertain` engine-exit stop. #1539 is unchanged.
Correction: the packet's "Mutation check" says "Twenty mutants" and "ran all twenty again". It is nineteen; I counted the base run. The packet is frozen in the round's manifest, so the notes comment (27086) carries the correction.
Records: CHAT-01 cc83ee4f (README a41fc4e2, check.mjs ccceaf26, contracts.schema.json 941675de, fixtures.json c75c2b9f), manifest deac7434 (6 files, `agents/dewey/work/queue-52/`), revs 311-312, request comment 27085, notes comment 27086. REQUEST to Darkwing and Filbert. No push.
### 2026-10-10 — Sage, row 52 landed: CHAT-01 engine-exit stop and release at engine exit (#1538)
Round 1 (CHAT-01 cc83ee4f, candidate deac7434): Filbert approved (comment 27087, rev 313) and Darkwing approved (comment 27088, rev 314), both naming the four CHAT-01 hashes (README a41fc4e2, check.mjs ccceaf26, contracts.schema.json 941675de, fixtures.json c75c2b9f). I read cc83ee4f against Darkwing's brief points 1-4: an engine exit refuses `stop-owned` under a force stop, the binding follows `ending(mode)` at all three steps, the proof needs at least one member, and the controller's `within` deadline frees `escalating` in its `finally`.
The manifest checked 6/6 in the canonical tree. The candidate landed as 0aa5e7b5 through a temporary index, and `queue review verify-commit 52 HEAD` matched all 6 paths. Gate on a detached worktree of c92cfb8f plus the candidate: webui 22/0, conversation 182/0, control-board 124/0, test-auth 15, test-conductor 17, test-config 24, test-discord 66, test-extension-package 18, test-foundation 44, test-queue 27 (29 in the canonical tree), test-release 14, test-task 98, all 0 failed. `node docs/plans/chat-01/check.mjs` PASS: 100 shape, 76 reference, 22 lifecycle. No `mosaic-chat-*` unit, shim or fake pi was left at 08:31:02Z. Darkwing's test-task 26/2 was their gate's missing Docker and model; this one ran the two live checks.
The non-blocking notes go to #1540: Filbert's N2 stale comment above the `---- engine exit` header in `cohort.test.mjs` (a follow-up, not a round 2, since it's a comment inside the frozen manifest), Darkwing's untested guards (`nopopulated`, `nomembers`, and the invocation, scope and boot checks), the E4 deadline and request-timeout overlap, Dewey's K15 and process-group items, Filbert's N3 and N5, and the five unpinned shared `startStop` effects in the model (N1) for the next CHAT-01 amendment. #1539 is unchanged.