Files
stack/agents/darkwing/work/queue-115/r2/gate/pkg-harness.log
T
jason.woltjeandClaude Opus 5.5 40e5917f9b docs: row 115 round 2 packet, the seen-before-close request test (#1609)
Candidate on base 94ece491f: 5 files, manifest 1910eb5a; only
decision-close.test.mjs changed since round 1. Mutants m1-m4 killed
(m4 is Filbert's f4); gate passed with no flakes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 12:00:51 -05:00

90 lines
7.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
✔ sessionModel: agent vars win, then the system's execution settings (13.631434ms)
✔ a pi bundle: prompt, policy, tools and manifest, 0600 in a 0700 directory (5.334979ms)
✔ a claude-code bundle adds the wrapped gate hook and the MCP config (2.925694ms)
✔ the prompt's built-in tools line is the harness's own names, as the manifest lists them (11.350753ms)
✔ the prompt names the project clones in the workspace, and none when there are none (7.825398ms)
✔ the prompt explains the review loop to a role with push_working, and reviews to one with fetch_review (6.899916ms)
✔ a bundle is written once: an existing file refuses (1.921315ms)
✔ a path with a single quote can't go into the hook command (2.33337ms)
✔ allow exits 0, a deny exits 2 with the reason on stderr (126.30648ms)
✔ a missing or wrong policy, or a bad event, exits 2 (84.122122ms)
✔ the bundle's wrapped command: a missing gate or node still blocks (1092.925085ms)
✔ claude: typed tools through MCP, the hook blocks, builtins outside --tools don't exist (804.631426ms)
✔ claude: the hook alone blocks a path outside the workspace (471.284235ms)
✔ claude: a second turn resumes the first turn's session (794.447494ms)
✔ claude adapter: --restricted is always passed (5.276069ms)
✔ claude adapter: MOSAIC_CLAUDE_BIN wins over PATH and must be an absolute executable (16.051166ms)
✔ claude adapter: a directory pin exits 2 before it runs; a pin with a space runs (5.495306ms)
✔ claude: CLAUDE.md files and auto-memory don't reach the model; without --restricted they do (702.126561ms)
✔ claude: a missing hook or MCP file refuses before claude starts (6.875762ms)
✔ pi: policy tools and typed tools pass, anything else is blocked (3.151386ms)
✔ claude: builtins map from pi names, typed tools need the mcp prefix (0.81153ms)
✔ file tool paths must resolve inside the workspace (1.494932ms)
✔ pi's own path normalisation can't be used to step out (1.351351ms)
✔ a symlink inside the workspace that points out is outside (1.248688ms)
✔ a dangling symlink is refused at any depth, in both harnesses (4.728526ms)
✔ read is checked under every spelling pi's read would open, in both harnesses (22.086122ms)
✔ other spellings cover directories, dangling links and pi's cwd (1.970961ms)
✔ a relative path climbs from the workspace's real path, in both harnesses (6.817326ms)
✔ claude path fields per tool (0.802524ms)
✔ glob patterns stay inside the workspace (0.749681ms)
✔ a path that can't be checked is blocked (0.482911ms)
✔ fetch_review's have lists the working refs before origin's, and no more than HAVE_MAX (226.273786ms)
✔ fetch_review's have orders the working refs newest first within each clone, one clone after another (176.793169ms)
✔ a runner git past its time: SIGTERM reaches its process group, and SIGKILL follows after the grace period (1810.26278ms)
✔ once a signalled runner git has closed, its group gets SIGKILL, so a process that ignored SIGTERM dies too (304.098196ms)
✔ initialize, ping and tools/list (57.646317ms)
✔ tools/call goes through the tool socket; a refusal is an isError result (32.593553ms)
✔ replies are compact JSON; over the cap a tool error names the size and the cap (36.220775ms)
✔ unknown tools and methods are JSON-RPC errors and never reach the socket (33.349179ms)
✔ a missing argument is a usage error (28.165679ms)
✔ pi: typed tools reach the socket, the gate blocks, agent_end writes the marker (400.22475ms)
✔ pi: a reply over the cap is a tool error naming the size and the cap; list_tasks asks for open tasks (339.431181ms)
✔ pi: a write through a dangling symlink is blocked, and nothing appears outside (333.30204ms)
✔ pi: a read is refused when pi would open another spelling outside (345.905292ms)
✔ pi: a relative path climbs from the real path of a workspace behind a symlink (333.920638ms)
✔ pi: a relative path climbs from the real path of a dataRoot behind a symlink (329.325719ms)
✔ pi: a missing extension refuses before any model call (5.495423ms)
✔ pi: an extension without its configuration fails pi's start (250.090632ms)
✔ founderCheck: founder variables, then a needed service without a usable token (1.725096ms)
✔ turnRequest names the sender, class, reply and decision (0.333692ms)
✔ turnRequest says a tester's message is a test and never Jason's instruction (0.425202ms)
✔ turnRequest shows the message's own sent time, a day old as well as new (0.213431ms)
✔ stateBlock names the launch state with its time and event, and the open tasks with the cap (0.323995ms)
✔ a message becomes a turn, the answer goes back as a RESULT, SIGTERM releases and exits 0 (224.831261ms)
✔ launches revoked and then restored: the turn's block reads allowed and gives the restore time (242.009312ms)
✔ a task closed on the tracker is missing from the next turn's open list (217.669095ms)
✔ a message read a day after it was sent shows the time it was sent (178.086605ms)
✔ a decision the human resolves becomes a turn citing the decision and the answer (238.213198ms)
✔ a failed state read fails the turn: no adapter runs, the sender hears why, the message is read (144.959388ms)
✔ a SIGTERM before the claim stops the runner with exit 0 and no claim (104.934163ms)
✔ typed tools carry the runner's capability; launch goes to the host's launch socket (386.862169ms)
✔ a RESULT gets no automatic reply; failed turns reply with the reason (1301.9623ms)
✔ SIGTERM during a turn kills the turn's process group and still exits 0 (147.612273ms)
✔ founder credentials stop before the claim (20) (169.394611ms)
✔ a refused claim exits 21; an ended run's capability exits 22 (195.147258ms)
✔ the launch ending under a running session exits 22 (145.411067ms)
✔ a broker that stays unreachable exits 23 after brokerRetries polls (254.534966ms)
✔ a broker that is down at the claim exits 23, not 21 (100.963116ms)
✔ no capability, or a malformed one, on stdin exits 2 (201.219652ms)
✔ a missing or malformed policy exits 2 before the claim (131.618187ms)
✔ the PM gets launch, its task verbs and the reads (7.625345ms)
✔ list_requirements reads the requirement ids, for a task.create holder with a tracker (6.328199ms)
✔ a coder gets no launch, no resolve_decision, and no task tools without a tracker (2.049492ms)
✔ a coder with a tracker gets its own task tools and no task_reassign (1.61953ms)
✔ launch only when the business's launch block names the instance as launcher (2.775558ms)
✔ an action outside the instance's authority has no tool (1.338832ms)
✔ the review loop: push_working and request_review for the coder, fetch_review and review_verdict for the reviewer, none for the PM (4.850979ms)
✔ callTool: one JSON line out, the result back, a refusal rejects (11.041601ms)
✔ list_tasks takes the broker's filters and pages; get_task takes a task_ref (3.411336ms)
✔ callTool sends list_tasks done false unless the session names done; other tools as given (3.569702ms)
✔ replyText: compact JSON up to the cap, an error naming the size and the cap over it (1.129709ms)
ℹ tests 81
ℹ suites 0
ℹ pass 81
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 11322.551241