Brand board revisions, the five dashboard mockups with their verify
script and evidence, the slice 1 S5 design note (SLICE1-VIEWS.md, rev 3
plus the S2c section 10 update), the Console mockup of inbox, tasks,
agents and trail (mockups/slice1/) and checks/slice1-verify.mjs (16
checks; check 16 pinned to bus at d27042fa). Also the CHAT-03 progress
log and the 2026-09-26 dirty-tree manifest. Design and evidence only;
no package code. Row 40 (#1522), committed on its own at Sage's
direction, 2026-10-09.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
19 lines
6.2 KiB
Markdown
19 lines
6.2 KiB
Markdown
# CHAT-03 I1 progress (Dewey, row 5)
|
||
|
||
Append-only. One line per working stop.
|
||
|
||
- 2026-10-04: resumed after Sage's REQUEST. Done and untracked: claim, cohort, shim, engine, events, framing, guard, pi-pin, records, text-policy, turns. Next: src/controller.mjs, then client, terminal, tests/fake-pi.mjs and the fixtures.
|
||
- 2026-10-04: src/controller.mjs written and import-checked (Interrupt dedup added). tests/fake-pi.mjs written (in-process FakePi + FakeLauncher, process form with control socket). Next: first end-to-end fixture, then client, terminal and the full fixture set.
|
||
- 2026-10-04: src/client.mjs, tests/harness.mjs, tests/ctrl-child.mjs and tests/claim.test.mjs (W1–W20, G1–G3, 21 tests) green. Controller fixes: written marked on the prompt response before the ack; launcher forceStop hook; kill handle on close; socket dir prepared only after classification (a refused contender no longer unlinks a live socket). Next: N1–N25, then H, K, E/S/P3, terminal, README, suites.
|
||
- 2026-10-04: tests/turns.test.mjs (N1–N25, 26 tests) green three runs in a row. fake-pi gained extension step scripts, triggerTurn queueing while streaming, an after-start point and a held get_state. No controller change was needed for N. Next: H, K, E/S/P3, terminal, README, suites.
|
||
- 2026-10-04: tests/races.test.mjs (H1–H4, H9–H23, 21 tests) green. Whole package 97/97. Three controller defects found and fixed in my files, to report to Sage: (1) `#evaluate` ran `res.outcome` on recover's Promise, so recover over the wire threw internal (W8 missed it because it resumes through a restart); (2) `#admission` skipped the binding push when only the state changed, so clients kept showing "stopping" after a failed force stop (also in `#uncertain`); (3) the client kept non-final receipts live across a new incarnation and now marks them outcome unknown. Fixture fix: fake-pi removes a stale control socket left behind by a SIGKILLed predecessor. Next: K1–K18, E/S/P3, terminal, README, suites.
|
||
- 2026-10-04: tests/cohort.test.mjs (K1–K18, 18 tests) green twice, no leaked scopes. Fixture changes: fake-pi tool children can ignore TERM and fork `sleep` in a loop; ctrl-child answers `proof`. K13 escapes are refused on this host (nsdelegate). K14 stops the scope with SIGKILL because the shim ignores TERM. Next: terminal, S1–S7, E1–E7, P3, README, suites.
|
||
- 2026-10-04: src/transcript.mjs and src/terminal.mjs written; tests/flows.test.mjs (S1–S7, P3, E1–E7, two terminal checks, schema check) green twice; package 134/134. Fixed in my source: the `unknown` push's `type` field overwrote the envelope's `type: "push"`, so clients dropped it (field renamed `nativeType`; `#push` now sets `type` last); a Transcript attached to a connected client now reads the page at once. Finding for Sage: pinned Pi appends `thinking_level_change` at startup when the branch lacks one, so K8 fails closed on such sessions. Next: smoke test, README, package.json, suites, mutants, packet.
|
||
- 2026-10-04: tests/smoke.test.mjs green (pinned Pi 0.85.1 sealed, no credentials, no prompt; also pins the bundled inline `/llama` command and the startup append). README and package.json done. All nine suites green; package tests conversation 137/137, webui 14/14, seat 19/19; chat-00, chat-01 and chat-01c checks pass. control-board failed 1 test: its refusal-status test scans every `new Refusal("…")` in conversation/src and found the controller's `configuration`, `channel` and `target`. Fixed in my files: control-layer refusals now throw `ControlRefusal` (subclass, safe-fs.mjs); README says why; control-board 124/124. Mutation pass running in /tmp scratch copies. Next: mutant results, manifest, packet, queue move.
|
||
2026-10-04 (later): mutation pass running; kill tests added for mutants 1 (A-B-A generation, H3), 3 (publish race, W1), 8 (single-use recover confirmation, K6), 12 (no revision name before sync, W1). Mutant 14 as first written was equivalent (unreachable line); guard.check restructured so the real-path check sits in one place, mutant retargeted. Next: re-run changed mutants in scratch, remaining survivors, manifest, packet, queue move.
|
||
- 2026-10-04: candidate frozen and in review. Manifest I1-manifest.sha256 (1404341e, 27 files), packet BUILD-I1.md. Suites green (conversation 141/141). All 41 mutants killed; kill tests added for 16 (link-level poison, H19) and 19 (clear_queue error response, N7; fake-pi failResponse). Row 5 in-review round 1, comment 26671 on #1507. Next: answer reviewer findings (two rounds at most).
|
||
- 2026-10-04 round 1 rework: Darkwing B1 (seal now an allow-list over extraArgs; non-list engine args refuse; command/preArgs documented as a test hook) and B2 (session key = Pi header ID; header change refuses target) fixed in the tree with N24 and three controller-level W4 tests; n1 and n2 in the README. Round-2 mutants r2-B1..B2b running in scratch. Waiting on Filbert's round-1 findings before freezing the round-2 manifest.
|
||
- 2026-10-04 round 2 requested: Darkwing B1-B2 and Filbert B1-B6 folded in; conversation 152/152, all other suites green; 60 of 61 mutants killed, r2-B5b (freeze not waited on) survives and is explained in BUILD-I1-r2.md; manifest I1-r2-manifest.sha256 (2b48e333); row 5 in-review round 2, comment 26689 on #1507 (revs 56-58). Next: round-2 verdicts. Sage commits after approval.
|
||
- 2026-10-04 round 2: Filbert approves (comment 26694 on #1507, rev 60). Follow-ups, none blocking: F1, correction to BUILD-I1-r2.md: only K12's cgroup.freeze read is timing-independent; the post-TERM pid-log check catches a missing freeze only when the fork loop forks between members and kill (Filbert's C4 and r2-B5b survive). A test-only hold after members would make C4 deterministic; r2-B5b still needs a FUSE or privileged fixture. F2: Ctrl-T, text and Enter in one chunk leaves the text in the composer (Enter checked before the queued takeover); fails safe. F3: default engine.command with caller preArgs reaches real Pi unsealed; documented test hook, no I1 production caller. Waiting on Darkwing's round-2 verdict.
|
||
- 2026-10-04: I1 committed by Sage as 243e153c and pushed after both reviewers approved round 2. Row 5 waiting-on-jason for Gate E (revs 61-62, 1595553a; summary comment 26697 on #1507). Reviewer follow-ups are in DEFERRED for the I3 brief. Nothing further on row 5 until Gate E.
|