From a4fa775a51247fcc728b8729f2c40e7f7dfacf6d Mon Sep 17 00:00:00 2001 From: Jason Woltje Date: Mon, 12 Oct 2026 17:13:47 -0500 Subject: [PATCH] darkwing: row 92 round 2 rebased onto ac37cd17, candidate 8bf4141c (#1586) Row 89 landed on packages/harness/README.md. The patch applies cleanly; gate 14/14 green and 34/34 mutants killed on the new base. Co-Authored-By: Claude Opus 5.5 --- agents/darkwing/work/queue-92/r2/build.md | 46 ++++++++++++------- agents/darkwing/work/queue-92/r2/build.patch | 6 +-- .../queue-92/r2/candidate-manifest.sha256 | 2 +- .../work/queue-92/r2/gate-summary.txt | 32 ++++++------- agents/darkwing/work/queue-92/r2/gate.sh | 6 +-- agents/darkwing/work/queue-92/r2/mutants.txt | 20 ++++---- 6 files changed, 62 insertions(+), 50 deletions(-) diff --git a/agents/darkwing/work/queue-92/r2/build.md b/agents/darkwing/work/queue-92/r2/build.md index 7c477c277..2d178b287 100644 --- a/agents/darkwing/work/queue-92/r2/build.md +++ b/agents/darkwing/work/queue-92/r2/build.md @@ -5,11 +5,19 @@ manifest `bc132570…`). Round 1 verdicts: Dewey approved with notes N1 to N5 (comment 27942, rev 771). Filbert asked for six changes (comment 27951, rev 772). -Base `af01465c`, as in round 1. No commit from the base to the packet's -commit touches the 13 paths. `build.patch` is -`git diff --cached --binary af01465c` of the same 13 paths. Apply it with -`git apply --index` to a detached worktree of the base, and -`sha256sum -c candidate-manifest.sha256` then gives 13/13 OK. +Base `ac37cd17`. Round 1 was built on `af01465c`. Row 89 landed at +`ce104b27` while this packet was going out, and it edits +`packages/harness/README.md`, one of the 13 paths (Dewey's N5). So I +applied the patch to a detached worktree of `ac37cd17` (it applied +cleanly), reran the gate and the mutants there, and rebuilt the patch and +manifest. Commit `4643911a` holds the same round 2 on `af01465c`; this +packet replaces it. Only the harness README's digest differs between the +two manifests. Its added and removed lines are the same 57 either way, and row 89's +lines in that file sit outside them. + +`build.patch` is `git diff --cached --binary ac37cd17` of the 13 paths. +Apply it with `git apply --index` to a detached worktree of `ac37cd17`, +and `sha256sum -c candidate-manifest.sha256` then gives 13/13 OK. ## What changed since round 1 @@ -79,9 +87,8 @@ Five files moved: lists the host's Unix sockets by name, path ones included, and a name gives no access to a path socket the mounts hide. - N4 (seccomp, `--disable-userns`) stays outside this row, as Dewey said. -- N5. Row 89 still hasn't landed. Whichever of 89 and 92 lands second - reruns its gate on the tree it lands on, and its - `packages/harness/README.md` digest will move. +- N5. Row 89 landed first, so this round is rebased onto it (above), and + the gate below ran on that tree. ## Probes @@ -103,9 +110,11 @@ ours. `mutants.sh` here: round 1's 26 unchanged, then 8 more. It ran with a copy of `agents/darkwing/work/queue-59-review/r1/mut.mjs` (sha256 -`a1ed6bca…`, round 1's helper) from 21:53:34Z to 21:58:15Z, with no other -seat's gate or mutant run going (`mutants.txt`). **34 of 34 killed.** -Every source file was restored and still matches the manifest. +`a1ed6bca…`, round 1's helper). It ran twice, with no other seat's gate or +mutant run going: on `af01465c` from 21:53:34Z to 21:58:15Z, and on +`ac37cd17` from 22:08:34Z to 22:12:57Z (`mutants.txt` is the second). +**34 of 34 killed** both times, each by the same test; only the timings +differ. Every source file was restored and still matches the manifest. | Mutant | Filbert's | Killed by | |---|---|---| @@ -130,17 +139,20 @@ Code only` were already killed in their run. ## Gate -`gate.sh`, run sequentially in `~/darkwing-scratch/r92/wt` (the base plus -this patch, `node_modules` symlinked), 21:58:30Z to 22:01:56Z, after a -check that no other seat's gate or mutant run was going +`gate.sh`, run sequentially in `~/darkwing-scratch/r92/wt3` (`ac37cd17` +plus this patch, `node_modules` symlinked), 22:05:10Z to 22:08:27Z, after +a check that no other seat's gate or mutant run was going (`gate-summary.txt`). All 14 suites exited 0, 0 skipped: - node: seat 33, cli 120 (round 1's 118 plus the two launcher tests), - harness 59, bus 102, webui 84; + harness 65, bus 108, webui 86 (row 89 and the rows before it added + harness, bus and webui tests since `af01465c`); - scripts: auth 15, conductor 17, config 24, discord 66, extension-package 18, foundation 44, queue 27, release 14, task 26 (`DOCKER_HOST` at a dead socket). The seat count doesn't move because the five new rows run inside the two -existing sandbox tests. test-release left an empty `wt_default` network, -created at 22:01:44Z, the second test-release started; I removed it. +existing sandbox tests. The run on `af01465c` (21:58:30Z to 22:01:56Z) +gave the same results with harness 59, bus 102 and webui 84. Each +test-release left an empty `_default` network of mine, and I removed +both. diff --git a/agents/darkwing/work/queue-92/r2/build.patch b/agents/darkwing/work/queue-92/r2/build.patch index 9e1df8632..e7083602c 100644 --- a/agents/darkwing/work/queue-92/r2/build.patch +++ b/agents/darkwing/work/queue-92/r2/build.patch @@ -502,10 +502,10 @@ index 15b36fe0..f8013726 100644 const [line] = await once(createInterface({ input: old.stdout }), "line"); const first = JSON.parse(line); diff --git a/packages/harness/README.md b/packages/harness/README.md -index 7598a573..f7516753 100644 +index 1d1d7c5b..7c040c66 100644 --- a/packages/harness/README.md +++ b/packages/harness/README.md -@@ -159,28 +159,41 @@ Each turn's stderr goes to `turns/NNNN.stderr` (0600) in the run directory. +@@ -176,28 +176,41 @@ Each turn's stderr goes to `turns/NNNN.stderr` (0600) in the run directory. These are limits, not bugs, and nothing in this package claims otherwise. @@ -567,7 +567,7 @@ index 7598a573..f7516753 100644 - **If the host dies,** sessions keep running until their broker polls fail `brokerRetries` times, then exit 23. The next host kills what still runs and ends those launches as `host-lost` (`packages/cli/README.md`, -@@ -200,7 +213,7 @@ These are limits, not bugs, and nothing in this package claims otherwise. +@@ -224,7 +237,7 @@ These are limits, not bugs, and nothing in this package claims otherwise. another process of the same user) isn't seen. That is the same reach as `bash` itself. - **The system prompt is in argv** for both adapters, so the same UID can diff --git a/agents/darkwing/work/queue-92/r2/candidate-manifest.sha256 b/agents/darkwing/work/queue-92/r2/candidate-manifest.sha256 index 97d0bece0..1fee56081 100644 --- a/agents/darkwing/work/queue-92/r2/candidate-manifest.sha256 +++ b/agents/darkwing/work/queue-92/r2/candidate-manifest.sha256 @@ -4,7 +4,7 @@ d19dca70349e45ad3607c6fccd00afc9b1904b4df79e1fe107f2fd926981fd16 packages/cli/s 43a7f4b783a6d16edf5c2762e9fd657e0d14a0e2af2581814b8afe0df2daeac9 packages/cli/tests/fixtures/launch-host.mjs 7e92ecf7bbcfd09f7a4cf6f3afac3646e198115d95ddd24dfdd5dd8bb53ab411 packages/cli/tests/host.test.mjs 057bba967b7034e52790dde5ab5c11d4c994625a07a55e0ff2b55a01ceb44e2f packages/cli/tests/launcher.test.mjs -ec09680cf3e7d6514f28f745302a08f0473f27dd06c699365573e38593039430 packages/harness/README.md +629a5a41d257002a3ecc2d8962b3d73d8f4bdba7f32f78825a8146b83cc6b484 packages/harness/README.md bfb7ca89754e36f9f467b7ea1bad03b38ea34d5f9bf1e49000ec2643bad8c811 packages/harness/src/gate.mjs f5e0126f8e68b347785e353c33f07760537be9b5de8feca1ccc868aba2db20e8 packages/seat/README.md 39702ce147a1d1e7fecaf7a57e34041728ad0412f2a841b925698ed00527ca9b packages/seat/src/sandbox.mjs diff --git a/agents/darkwing/work/queue-92/r2/gate-summary.txt b/agents/darkwing/work/queue-92/r2/gate-summary.txt index f5bf71c09..14bf3ae28 100644 --- a/agents/darkwing/work/queue-92/r2/gate-summary.txt +++ b/agents/darkwing/work/queue-92/r2/gate-summary.txt @@ -1,16 +1,16 @@ -start 2026-10-12T21:58:30Z base af01465c -seat rc=0 21:58:30-21:58:34 ℹ pass 33 ℹ fail 0 ℹ skipped 0 0 marks -cli rc=0 21:58:34-21:58:51 ℹ pass 120 ℹ fail 0 ℹ skipped 0 0 marks -harness rc=0 21:58:51-21:59:02 ℹ pass 59 ℹ fail 0 ℹ skipped 0 0 marks -bus rc=0 21:59:02-21:59:05 ℹ pass 102 ℹ fail 0 ℹ skipped 0 0 marks -webui rc=0 21:59:05-22:00:01 ℹ pass 84 ℹ fail 0 ℹ skipped 0 0 marks -test-auth rc=0 22:00:01-22:00:02 selftest: 15 passed, 0 failed -test-conductor rc=0 22:00:02-22:00:07 selftest: 17 passed, 0 failed -test-config rc=0 22:00:07-22:00:09 selftest: 24 passed, 0 failed -test-discord rc=0 22:00:09-22:00:17 discord suite: 66 passed, 0 failed -test-extension-package rc=0 22:00:17-22:00:18 extension package selftest: 18 passed, 0 failed -test-foundation rc=0 22:00:18-22:01:02 selftest: 44 passed, 0 failed -test-queue rc=0 22:01:02-22:01:44 queue suite: 27 passed, 0 failed -test-release rc=0 22:01:44-22:01:54 selftest: 14 passed, 0 failed -test-task rc=0 22:01:54-22:01:56 selftest: 26 passed, 0 failed -end 2026-10-12T22:01:56Z +start 2026-10-12T22:05:10Z base ac37cd17 +seat rc=0 22:05:10-22:05:14 ℹ pass 33 ℹ fail 0 ℹ skipped 0 0 marks +cli rc=0 22:05:14-22:05:30 ℹ pass 120 ℹ fail 0 ℹ skipped 0 0 marks +harness rc=0 22:05:30-22:05:41 ℹ pass 65 ℹ fail 0 ℹ skipped 0 0 marks +bus rc=0 22:05:41-22:05:43 ℹ pass 108 ℹ fail 0 ℹ skipped 0 0 marks +webui rc=0 22:05:43-22:06:41 ℹ pass 86 ℹ fail 0 ℹ skipped 0 0 marks +test-auth rc=0 22:06:41-22:06:41 selftest: 15 passed, 0 failed +test-conductor rc=0 22:06:41-22:06:47 selftest: 17 passed, 0 failed +test-config rc=0 22:06:47-22:06:48 selftest: 24 passed, 0 failed +test-discord rc=0 22:06:48-22:06:56 discord suite: 66 passed, 0 failed +test-extension-package rc=0 22:06:56-22:06:57 extension package selftest: 18 passed, 0 failed +test-foundation rc=0 22:06:57-22:07:40 selftest: 44 passed, 0 failed +test-queue rc=0 22:07:40-22:08:14 queue suite: 27 passed, 0 failed +test-release rc=0 22:08:14-22:08:25 selftest: 14 passed, 0 failed +test-task rc=0 22:08:25-22:08:27 selftest: 26 passed, 0 failed +end 2026-10-12T22:08:27Z diff --git a/agents/darkwing/work/queue-92/r2/gate.sh b/agents/darkwing/work/queue-92/r2/gate.sh index a8129465b..786343ca7 100644 --- a/agents/darkwing/work/queue-92/r2/gate.sh +++ b/agents/darkwing/work/queue-92/r2/gate.sh @@ -1,10 +1,10 @@ #!/usr/bin/env bash -# Row 92 round 2 gate: seat, cli, harness, bus and webui (each package's own test command, from its +# Row 92 round 2 gate, rebased onto ac37cd17: seat, cli, harness, bus and webui (each package's own test command, from its # directory), then every scripts/test-*.sh, sequential, full output kept. -cd ~/darkwing-scratch/r92/wt || exit 2 +cd ~/darkwing-scratch/r92/wt3 || exit 2 W=$PWD export TMPDIR=~/darkwing-scratch/r92/tmp -O=~/darkwing-scratch/r92/gate2 +O=~/darkwing-scratch/r92/gate3 for p in seat cli harness bus webui; do s=$(date -u +%T) case $p in seat|webui) a=(tests/);; *) a=(tests/*.test.mjs);; esac diff --git a/agents/darkwing/work/queue-92/r2/mutants.txt b/agents/darkwing/work/queue-92/r2/mutants.txt index 4dca10503..24cf31b91 100644 --- a/agents/darkwing/work/queue-92/r2/mutants.txt +++ b/agents/darkwing/work/queue-92/r2/mutants.txt @@ -6,29 +6,29 @@ session-json-writable: killed (ℹ fail 3, ✖ every bind says why; the bundle a no-private-tmp: killed (ℹ fail 3, ✖ every bind says why; the bundle and session file stay read-only over the run directory () bind-checkout: killed (ℹ fail 2, ✖ a confined session's shell reaches its own workspace and run directory and nothing of th) node-modules-always: killed (ℹ fail 1, ✖ every bind says why; the bundle and session file stay read-only over the run directory () -runner-file-missing: killed (ℹ fail 3, ✖ RUNNER_FILES is exactly what the runner and the harness sources it starts import (2.4001) +runner-file-missing: killed (ℹ fail 3, ✖ RUNNER_FILES is exactly what the runner and the harness sources it starts import (2.0871) no-remount-ro: killed (ℹ fail 2, ✖ a confined session's shell reaches its own workspace and run directory and nothing of th) host-home: killed (ℹ fail 2, ✖ a confined session's shell reaches its own workspace and run directory and nothing of th) -no-pid-namespace: killed (ℹ fail 4, ✖ bus start --pm: the PM runs under its own PID namespace, registered, with a manifest (22) +no-pid-namespace: killed (ℹ fail 4, ✖ bus start --pm: the PM runs under its own PID namespace, registered, with a manifest (23) die-with-parent: killed (ℹ fail 2, ✖ a host that died hard leaves its sessions to the next host, which kills them and ends th) no-pdeathsig: killed (ℹ fail 2, ✖ a host that died hard leaves its sessions to the next host, which kills them and ends th) -exit-code-not-mapped: killed (ℹ fail 2, ✖ a runner killed from the host ends its launch as killed, not failed (255.196062ms)) +exit-code-not-mapped: killed (ℹ fail 2, ✖ a runner killed from the host ends its launch as killed, not failed (256.531254ms)) recover-matches-unshare: killed (ℹ fail 1, ✖ a host that died hard leaves its sessions to the next host, which kills them and ends th) no-sandbox-check: killed (ℹ fail 1, ✖ a missing or failing bwrap refuses sandbox-unavailable before anything starts; there is ) probe-always-ok: killed (ℹ fail 2, ✖ a missing or failing bwrap refuses sandbox-unavailable before anything starts; there is ) -no-credential-check: killed (ℹ fail 1, ✖ a Claude Code launch with no session credential refuses before it starts (191.987684ms)) -proxy-key-alone: killed (ℹ fail 2, ✖ a Claude Code launch with no session credential refuses before it starts (201.143048ms)) -proxy-key-ignored: killed (ℹ fail 3, ✖ a Claude Code launch with no session credential refuses before it starts (132.669208ms)) -any-variable-will-do: killed (ℹ fail 2, ✖ a Claude Code launch with no session credential refuses before it starts (196.260373ms)) +no-credential-check: killed (ℹ fail 1, ✖ a Claude Code launch with no session credential refuses before it starts (188.244725ms)) +proxy-key-alone: killed (ℹ fail 2, ✖ a Claude Code launch with no session credential refuses before it starts (243.644415ms)) +proxy-key-ignored: killed (ℹ fail 3, ✖ a Claude Code launch with no session credential refuses before it starts (116.379362ms)) +any-variable-will-do: killed (ℹ fail 2, ✖ a Claude Code launch with no session credential refuses before it starts (201.875386ms)) claude-bin-not-bound: killed (ℹ fail 1, ✖ a real Claude Code coder's shell can't read a stand-in secret or anything else its sandb) launch-socket-always: killed (ℹ fail 1, ✖ the PM launches a coder through its launch tool; the coder answers; refusals name their ) -unit-no-envfile: killed (ℹ fail 1, ✖ bus-service.sh renders the unit and installs it into a given directory (6.614589ms)) -unit-envfile-required: killed (ℹ fail 1, ✖ bus-service.sh renders the unit and installs it into a given directory (7.086427ms)) +unit-no-envfile: killed (ℹ fail 1, ✖ bus-service.sh renders the unit and installs it into a given directory (6.908758ms)) +unit-envfile-required: killed (ℹ fail 1, ✖ bus-service.sh renders the unit and installs it into a given directory (7.149562ms)) no-ipc-namespace: killed (ℹ fail 2, ✖ a confined session's shell reaches its own workspace and run directory and nothing of th) host-proc: killed (ℹ fail 2, ✖ a confined session's shell reaches its own workspace and run directory and nothing of th) host-dev: killed (ℹ fail 2, ✖ a confined session's shell reaches its own workspace and run directory and nothing of th) pi-no-node-modules: killed (ℹ fail 2, ✖ a confined session's shell reaches its own workspace and run directory and nothing of th) -launcher-raw-exit: killed (ℹ fail 1, ✖ a runner killed from the host ends its launch as killed, not failed (288.485973ms)) +launcher-raw-exit: killed (ℹ fail 1, ✖ a runner killed from the host ends its launch as killed, not failed (260.993464ms)) credential-every-harness: killed (ℹ fail 1, ✖ a pi launch needs no session credential: pi logs in through its own ENV_ALLOW variables ) pdeathsig-term: killed (ℹ fail 2, ✖ a host that died hard leaves its sessions to the next host, which kills them and ends th) workspace-read-only: killed (ℹ fail 2, ✖ a confined session's shell reaches its own workspace and run directory and nothing of th)