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 <[email protected]>
This commit is contained in:
2026-10-12 17:13:47 -05:00
co-authored by Claude Opus 5.5
parent e4ef608f7d
commit a4fa775a51
6 changed files with 62 additions and 50 deletions
+29 -17
View File
@@ -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 `<dir>_default` network of mine, and I removed
both.
+3 -3
View File
@@ -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
@@ -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
@@ -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
+3 -3
View File
@@ -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
+10 -10
View File
@@ -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)