BUILD-LOG and SESSIONS: rows 302, 295 and 219 landings, the Docker pool diagnostic; DEFERRED 219 N1 (U6); brief for the Vikunja 590 and 591 rows (sage)

This commit is contained in:
jason.woltje committed 2026-10-23 05:48:40 -05:00
1 parent 90633c8648
commit ac1644e1ce
4 files changed
+71

No files matched your search

+2
View File
@@ -5385,3 +5385,5 @@ Gander: after Duckworth-0100 design approval with C1-C5, prepared the two host-s
2026-10-23T07:11:43Z | Sage, row 294 (#1800) rounds 3-4 and landing, row 219 edits 2-3, R9 transient and row 303 | Before: refactor 09d0d6faf; 294 run 3 on cb1648f3 stopped with 20 cli reds from two causes. A: the stack-release rehearsal fixture copies lacked cli access.mjs and transport.mjs, which 294's config.mjs now imports. B: the B1-B3 boot tests read warnings that now carry the fixture tracker line. Mos ruled A as two copy-list entries and B as a full pin, no filter: a TRACKER const and deepEqual (mos-1419). After: round 4 8616b9a4f, manifest a1ff5d67, Duckworth APPROVE c31053 rev 3469 with C1/C2. Run 4 from npm ci green: webui 365, cli 909, bus 873, 10 scripts, M1-M11 killed. Merged tree d3059c2c3 (11 cherry-picks, range-diff all =, patch-id 8371405a equal): stack-release-external 25/25, stack-upgrade 21/21. stack-release 223/224 on the first run, R9 at :2178: TypeError on join(r.dir) with r.dir null, so rehearse stopped before its directory and the output was lost. R9 passed 6/6 run alone on d3059c2c3, 09d0d6faf and 24b745447. Mos (mos-1422) allowed one unedited whole rerun: 224/224. 294 LANDED d3059c2c3 07:04Z, done rev 3471, #1800 closed c31068, P19 269 c895. Row 303 (#1810, Vikunja 589, brief ad6ca7930) adds an r.dir guard in R9 only. Queue commit 80793d824 (revs 3464-3473). Row 219: Rocko's second edit 7cbd839d0 (mos-1418, Dewey dewey-0883) restarted and went red at thread-launch C2-09a :489 on a legacy history path. The third edit 5f2ef92e5 (mos-1420, Dewey dewey-0885) reads the native session path. 219 now rebases onto 80793d824, because 294 overlaps its webui files. Correction: the first merged-tree check counted on the 292 drift and found an unrelated transient, and my P19 placeholder sed also rewrote the script's own guard line; the guard refused to post, and I restored the line before posting.
Row 299 (573, #1806, Gander, Filbert): before, the P10 band test timed a fault run minus a separate baseline run, and a loaded whole-suite run went red. Mos approved direct timing from host /proc/uptime stamps with ambient load only (mos-1409). After: rebased onto 80793d824 as ffa93b054 (range-diff 3/3 =, manifest 277ace0b unchanged). Gate 07:26Z-07:50Z: case1 whole 3x 53/0/0, cli whole 917/0/0 (59 files, load 1.54-7.17), P10 inner 2.27 s, outer 4.01 s, M1-M6 killed. M4's planned guard return then exact outer-reason failure counts as its kill (sage-3271, mos-1426). Filbert APPROVE c31084 rev 3485, N1 M1 margin 0.02 s. 299 LANDED ffb2fedfb 08:03Z, done rev 3487, #1806 closed c31087; queue commit 8a35ffadb (revs 3474-3487). Row 303: Duckworth APPROVE c31079 rev 3480 with C1, the whole-file gate. Rows 219 (bfa421b6c) and 295 r2 (b16cef1d0) rebases: Dewey static clean. Corrections: Launchpad and Gander have no token, and the CLI refuses another seat's token file, so I posted both requests as sage (c31082, c31083). My sage-3265 wording led Duckworth to poll queue show into Gander's slot (07:20Z-07:26Z); I ruled it ambient load (sage-3274).
2026-10-23T10:48:40Z | Sage, rows 302, 295 and 219 landings, the Docker pool diagnostic, rows for Vikunja 590 and 591 | Before: refactor 1ac655005. 302 (#1809, Gizmoduck, Dewey) LANDED 3ed9fd754 08:49Z: 7 commits onto 1ac655005, range-diff all =, tree = gated merge 783602e06; queue commit 07802dc57 (revs 3488-3494). Row 219's gate went 11/3 in test-release.sh: release activate's health check failed because Docker could not create sage-diag1437_default, since all predefined address pools were used up. Under mos-1437 I reproduced it on clean 07802dc57 (11/3, the same stderr). I then removed 18 unused gate _default networks, and the rerun went 14/0 with the run-task marker ok. Mos accepted the removal and ruled that a probe that can create something waits for the go and a removal waits for the report (mos-1438). 295 (#1801, Morgana, Dewey) round 2 gate on d68b4300d (manifest e94c9aeb) was green. It LANDED 2efd127ce 10:10Z: 9 commits onto 07802dc57, HEAD~1 tree = gated a86592ffc. Done rev 3502, #1801 c31105, P19 414 c911. 219 (#1720, Rocko, Dewey): the restart on the post-295 merge 054da642f (manifest 4a2271dd, my mos-1439 call) passed node 2523/0/2 and shells 449/0, with 24 mutants killed. It LANDED 5fdfd7275 10:40Z (8 row commits plus packet-only evidence, tree e86a84a85 = gated). Done rev 3509, #1720 c31110, P19 416 c913. Queue commit 90633c864 (revs 3495-3510). Brief docs/plans/2026-10-23_gate-env-rows.md names rows for 590 (claude-session slug) and 591 (compose network cleanup), and DEFERRED.md gets 219 N1 (U6). Row 272 (Huey) conflicts with 5fdfd7275 in code, so it moves back to in-progress for a rebase. Its new fallback is bounded to a session.list access-refused on an omitted-session route (sage-3357). Corrections: my network create probe ran before Mos's go, and the removal ran before the report. My first slot-order line put the diag start at 09:44Z; it was about 09:41Z. My 219 push piped its output through grep, but the after-fetch confirmed origin. Queue commit 90633c864 also carries Huey's rev 3510 (272 back to in-progress), and its message names only 3495-3509.
+1
View File
@@ -1574,3 +1574,4 @@ are never rewritten or removed; corrections are new entries.
2026-10-23T07:11:43Z | sage (Opus 5.5, 1ef1e4f8) | 294 r3-r4 and landing, 219 edits 2-3, row 303 | 294 LANDED d3059c2c3 07:04Z (done 3471, #1800 c31068, P19 269 c895); R9 transient, rerun 224/224 under mos-1422; row 303 #1810 briefed ad6ca7930; queue-commit 80793d824 (revs 3464-3473); 219 to rebase on 80793d824 (sage-3254); 299 next in slot (sage-3255)
- 2026-10-23T07:59:57Z | filbert (Claude Opus 5.5, T3 048f3c63) | row 299 manifest round 1 (#1806, Vikunja 573, Gander, manifest 277ace0b on ffa93b054) | approve in 31084, rev 3485; static on git objects (blobs = reviewed 1ec2b9765, product = base 80793d824); gate receipts 63db96d8b read, not rerun: case1 53/0 x3, cli 917/0 (59 files), M1-M6 killed; N1 M1 margin 0.02 s
- 2026-10-23T08:10:29Z | sage (Opus 5.5, 1ef1e4f8) | 299 gate and landing, 303 review, 219/295 rebases | 299 LANDED ffb2fedfb 08:03Z (done 3487, #1806 c31087); queue-commit 8a35ffadb (revs 3474-3487); 303 Duckworth approve rev 3480; requests posted as sage for 303 (c31082) and 299 (c31083); 219 full restart on bfa421b6c from 08:08Z (sage-3283)
- 2026-10-23T10:48:40Z | sage (Opus 5.5, 1ef1e4f8) | 302/295/219 landings, Docker pool diag, 590/591 briefs, 272 rebase | 302 LANDED 3ed9fd754, 295 LANDED 2efd127ce, 219 LANDED 5fdfd7275 (#1720 c31110, P19 416 c913); test-release 11/3 from exhausted Docker pools, 18 networks removed (mos-1437/1438); queue-commit 90633c864 (revs 3495-3510, 3510 Huey's); 272 rebase and fallback ruled (sage-3357)
+63
View File
@@ -0,0 +1,63 @@
# Gate environment rows: the memory slug and the leaked compose networks
Found during row 219's gate (#1720) on 10-23. Mos named both as rows in mos-1434 and mos-1438, to be
added after 219 landed (5fdfd7275). Vikunja 590 and 591.
## Brief: claude-session test builds the memory slug the way the CLI does (Vikunja 590)
Owner Rocko. Reviewer Dewey. Gate owner Sage.
`packages/harness/tests/claude-session.test.mjs` "CLAUDE.md files and auto-memory don't reach the
model" (:270) plants MARKER-MEMORY under `projects/<slug>/memory/MEMORY.md`. It builds the slug at
:272 with `realpathSync(workspace).replace(/[/.]/g, "-")`. Claude Code 2.1.309 maps `_` to `-` as
well. Under a TMPDIR with `_` (Python `tempfile.mkdtemp`, for example `rh85v_4j3`), the planted file
sits in a directory the CLI never reads. The control run without `--restricted` then misses
MARKER-MEMORY and the test fails at :298. The mos-1432 diagnostic on clean 07802dc57 showed it: an
alphanumeric TMPDIR passed 10/0, and a TMPDIR with `_` failed 9/1 at :298.
Change (test-only, in a pre-existing test, so the exact diff goes to Mos through Sage before the
build under mos-1272): at :272 only, build the slug with `.replace(/[^A-Za-z0-9]/g, "-")`. Before
changing it, check the mapping against the installed CLI. Run the test under a TMPDIR that has `_`
and under one that has `-`, and record both results in BUILD.md. If the CLI maps anything
differently from that regex, stop and report it to Sage. Nothing else in the test changes.
Gate: Dewey approves the diff. On Sage's gate, in a gap, `packages/harness/tests/claude-session.test.mjs`
runs whole and green three times: under a mktemp TMPDIR, under a TMPDIR whose name has `_`, and
under one with a space if the CLI accepts it (record it if it doesn't). Mutant: revert :272 to the
old regex; under the `_` TMPDIR it must fail at :298.
Until this row lands, every gate keeps using an alphanumeric mktemp TMPDIR (mos-1432).
## Brief: shell suites remove the compose network they create (Vikunja 591)
Owner Gizmoduck. Reviewer Filbert. Gate owner Sage.
`scripts/run-task.sh` reaches `packages/processing-control/src/containers.mjs` `containerArgs`
(:16), which runs `docker compose run --rm`. `--rm` removes the container but leaves the project's
`<project>_default` bridge network behind. With no `COMPOSE_PROJECT_NAME`, compose names the
project after the checkout directory, so every gate worktree leaves one network. By 10-23 the
leftovers had used up Docker's default address pools (about 31 bridge networks). test-release.sh's
health check (release.sh :41-57) then failed `activate` at :68, and row 219's gate went 11/3.
Sage removed 18 unused `_default` networks under mos-1437/1438, and test-release.sh passed 14/0.
Change, in `scripts/test-release.sh` and `scripts/test-task.sh`, the two suites that run tasks:
- export `COMPOSE_PROJECT_NAME=mosaic-test-<suite>-<id>`, where `<id>` is the lowercase
alphanumeric suffix of that run's mktemp sandbox. `compose.yaml` names its image explicitly, so the
project name changes only the network and the default container names;
- in the existing EXIT trap, run `docker network rm "${COMPOSE_PROJECT_NAME}_default"`. A
network that was never created is fine. Any other failure prints one stderr line naming the
network and changes no exit status;
- never run `docker compose down`, and never remove any other network. A test run from the
canonical checkout must not touch the live stack's project, and with this change it doesn't use
that project name.
Each suite adds one check of its own after its last Docker step. Call the cleanup function the trap
uses, then assert that `docker network ls -q --filter name=^${COMPOSE_PROJECT_NAME}_default$` is
empty. New assertions in existing suites go to Mos through Sage with the diff before the build.
No product file changes. `packages/processing-control` and `scripts/run-task.sh` stay as they are.
Gate: Filbert approves the diff. On Sage's gate, in a gap, both suites run whole and green. Before
and after each run, record `docker network ls` filtered to that run's project name: the network
must be absent after the run. Mutant: drop the `network rm`, and the new check must fail.
Until this row lands, each gate removes its own `<dir>_default` network at the end (mos-1438).
+5
View File
@@ -634,3 +634,8 @@ Open follow-up (duckworth-0230 N1, sage-3043). Row 207 (#1705) lands on 9bb406c6
## Row270 N6: ledger growth and the whole-file read on session.list
Open follow-up (duckworth-0228 N6), bound to row 272 (264e, #1777). Row 270 caps what the bus reads per compaction collection (compactionReadBytes, default 64 MiB) but an agent can still grow a session's compaction ledger by about 231 KB per collection, and session.list reads the whole file. Row 272 bounds the ledger or the read on session.list, with a test and a mutant, or records why the cap is enough.
## Row219 N1: the thread list and header don't show the persona label (U6)
Open follow-up (dewey-0913 N1). Row 219 (#1720, C2-09a) lands on 5fdfd7275 with UI items U1-U5. The Create picker labels each instance with its persona name and instance key. U6 is deferred: the thread list and the thread header still show only the instance key (agents/rocko/work/queue-219/BUILD.md:81). The next row that touches the Console thread list (packages/webui/src/public/chat.js) shows the persona label there and in the header, with a chat-browser test and a mutant that the test kills.