build-log, sessions: row 77 landed, row 98 queued (#1571)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-12 17:38:08 -05:00
co-authored by Claude Opus 5.5
parent 2f4b4ea2c2
commit dc2e753c49
2 changed files with 7 additions and 0 deletions
+6
View File
@@ -4442,3 +4442,9 @@ After (ce104b27): Dewey's round 1, 12 files +491 -20. The broker's `tasks` takes
Before (4835a8e2): the harness tool gate checked the paths of Read, Write, Edit, Grep and Glob and nothing else. A role session's Bash ran as the host user with only a user and PID namespace (`session.mjs:39`), so it saw the whole filesystem. In Jason's test the reviewer's Grep of the coder's workspace was refused, but its Bash `ls` of the same directory ran.
After (57948a81): Darkwing's round 2, 13 files +800 -106. The launcher spawns each session through `packages/seat/src/sandbox.mjs`, a bwrap sandbox. It sees its own workspace, the adapter and harness paths, the broker and launch sockets and the pinned Claude binary. It also gets a private `/proc`, `/dev` and IPC namespace and only the variables `ENV_ALLOW` passes. Two new refusals come before a launch: `no-session-credential` for a Claude Code session with none of the session credential sets, and `sandbox-unavailable`. A runner killed from the host ends its launch as `killed`. The bus unit template adds `EnvironmentFile=-%h/.config/mosaic-dev/secrets/claude-session.env` (decision 119). The cli, seat and harness READMEs say what the sandbox hides and what it doesn't: the credential variable is readable from `bash`, and `/proc/net/unix` lists host socket names. Round 2 added Filbert's six asks from 27951: confined-shell rows for `/dev/shm`, `/proc` and SysV IPC, pi run inside the sandbox, the killed-runner test, a pi launch with no credential, and two README items. It was rebased on ac37cd17 after row 89 landed on the harness README. Approved by Dewey (27978) and Filbert (27984) on manifest 8bf4141c, with no drift on the 13 paths. Darkwing's mutants: 34/34 killed. Sage's gate on 1b7f3781 plus the patch ran from 22:27:37Z to 22:30:35Z: seat 33, cli 120, harness 65, bus 108, webui 86, control-board 124, and all nine `scripts/test-*.sh` with 0 failed. `queue review verify-commit 92` matched 13 paths. Row 92 went to done at rev 804 (85fd3286, which also carries Darkwing's rev 803, the row 86 approve 27986). #1586 is closed with comment 27987. Mos had the decision-109 notice before landing. The change goes live at the next bus restart and the next role session launch. The installed unit only gets the `EnvironmentFile` line when it is reinstalled, and both of those steps are Mos's call. This unblocks rows 91 and 93.
### 2026-10-12 — Sage, row 77 landed: Console pinned copy, update step and service hardening (#1571)
Before (cca5f23e): the Console unit ran `cli.mjs serve` straight from the canonical checkout, so any landing that touched code the Console loads went live the next time Node read the file or the unit restarted (decision 109). Row 75's review left five gaps in `scripts/webui-service.sh` (Filbert, 27430: install while active, install from a worktree, `uninstall --no-reload`, a silent failed state read, unchecked leading characters), and nothing held decision 101's uid rule.
After (0d10cf07): Rocko's round 2, rebased onto row 95 as round 3. 8 files changed, +921 -94. A new `copy COMMIT` verb writes a `git archive` of the paths the Console loads into `mosaic-console/<full id>/`. It runs only from the canonical checkout and only for commits reachable from `refactor`. Copy directories are 0555 and files are `a-w`. `install` and `render` take `--copy ID` and point `WorkingDirectory` and `ExecStart` at the copy. `serve --checkout` keeps the queue read on the checkout. `status` prints the copy id the unit runs. Row 75's N1 to N5 are closed, and `--auth-header X-authentik-uid` requires a 64-hex `--allow-user`. Round 1's three findings were fixed in round 2. First, `install --copy` refuses unless every bus unit it would call runs from that copy, because the bus accepts human proofs only from its own path (#225). The check reads `systemctl --user show`, so drop-ins count. Second, `COPY_PATHS` adds `packages/tasks`. Third, the copies are read-only. TOOLS.md and the README give the update step, the removal command and the rollback floor. Darkwing (27979) and Filbert (27985) approved manifest d9880f4c, base 2e26fbe1, with no drift on the 8 code paths. Rocko's mutants: 34/34 killed. Sage's gate on 459c4fc6 plus the patch, which includes row 92, ran 22:32:51Z to 22:35:12Z: webui 101, control-board 124, and all nine `scripts/test-*.sh` with 0 failed. `queue review verify-commit 77` matched 10 paths. Row 77 went to done at rev 805 (18c64360), and #1571 was closed with comment 27996. Mos had the decision-109 notice and gave the go. The live unit changes only at Mos's reinstall. Until a later row moves the bus onto a copy, `install --copy` refuses on this machine. Follow-up row 98 (#1592, brief df389685) adds tests for Filbert's round 2 N1 and N2 and Darkwing's round 3 N1 and N2. Correction to comment 27996: it named Filbert's N2 and N3, but the follow-up carries N1 and N2, and N3 needs no test.
+1
View File
@@ -801,3 +801,4 @@ are never rewritten or removed; corrections are new entries.
2026-10-12T22:28:46Z | filbert | Codex gpt-6.1-sol onboarding, thread 50342f6a-fff7-437a-aa75-679554289732 (decision 122) | required context read; queue next filbert returned nothing; Sage notified through T3; row 93 gated on rows 91 and 92 landing; available for requested reviews
2026-10-12T22:32:14Z | sage | row 92 (#1586) landing; Filbert moved to Codex gpt-6.1-sol (decision 122) | landed 57948a81 after gate 15/15 on 1b7f3781, rev 804 (85fd3286, sweeps darkwing rev 803), #1586 closed 27987, Mos noticed; Filbert thread 50342f6a, Claude thread 9cb9731e retired, agents/README.md updated. Process note: Darkwing's row 92 work tailed Dewey's scratch output and their mutant runs overlapped Filbert's (one at 22:21:09Z-22:21:52Z on filbert-scratch/r92w); told to check pgrep before mutant runs
2026-10-12T22:32:53Z | darkwing | row 86 round 1 review (#1580) | approve, comment 27986, rev 803 (swept in 85fd3286); rerun S1 S2 S4 S8 S9 S0 in a worktree of ad0bdc20, all pass; packet 459c4fc6
2026-10-12T22:37:47Z | sage | row 77 (#1571) landing; row 98 (#1592) queued | landed 0d10cf07 after gate 11/11 on 459c4fc6 (row 92 included), rev 805 (18c64360), #1571 closed 27996, Mos notice and go (sage row 77); follow-up brief df389685, rev 806 (2f4b4ea2); comment 27996 misnamed Filbert's notes as N2-N3, corrected in #1592 and BUILD-LOG