Files
stack/agents/darkwing/work/queue-115/r1/gate/pkg-cli.log
T
jason.woltjeandClaude Opus 5.5 b3fca1f1a6 docs: row 115 round 1 packet, decision close message (#1609)
Candidate on base 94ece491f: 5 files, manifest f37bc933. Three mutants
killed; gate passed with no flakes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 11:44:46 -05:00

195 lines
19 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.
✔ every screen and overlay fits 120x36, 80x24 and the narrow layout, row for row (1286.893351ms)
✔ width counts terminal cells: wide CJK and emoji 2, U+FE0F after a one-cell base 1, marks 0 (74.357526ms)
✔ broker text is shown, never interpreted: no raw control character or bidi override reaches the terminal (181.929359ms)
✔ NO_COLOR: no escape codes, except reverse video on the selected row (274.131846ms)
✔ 1-9 shows the decide flow's own lines and question; only y resolves (155.230513ms)
✔ the app shows the same decide text as mosaic decide (118.386952ms)
✔ any key but y or Y at the question answers No; nothing is sent (2143.243036ms)
✔ below 40x10 the question is hidden, so every key answers it No, y included (Filbert R3) (499.485554ms)
✔ under 40 columns a tall terminal shows the too-small screen even where the decide box would fit; y sends nothing (Filbert N10) (1624.476498ms)
✔ a hidden decide box names the way out, and the status line under it does not promise y (Filbert N12) (115.007871ms)
✔ a throw while answering the question goes to crash, sends nothing and leaves no job pending (155.893642ms)
✔ type-ahead never answers the question: a paste, keys typed before it is drawn, keys inside askMs (967.285588ms)
✔ quitting at the question answers No and sends nothing, armed or not (208.900787ms)
✔ a timer tick reads nothing under an overlay, never answers the question, and keeps a resolved status (127.801759ms)
✔ a long question is cut inside the question; the action, target, choice and prompt stay (Dewey B1) (134.566796ms)
✔ a decide box too big for the terminal says so, and every key answers it No, y included (Dewey B1, round 3) (947.06211ms)
✔ at every size the decide box shows each line y depends on, or says it is hidden (9015.620261ms)
✔ outcome unknown: the CLI's sentence, no retry, then the trail or a re-read (154.34123ms)
✔ refused and failed reads keep the last list, marked stale; a refused decide says refused (111.768711ms)
✔ help or a detail box cut to fit keeps its last line, Esc included (Dewey) (54.694534ms)
✔ keys: views, moving, trail of a selection, the command line, help and quit (217.461926ms)
✔ one option: the status line says Press 1, not 1-1 (89.955321ms)
✔ no business: the app says so and :business picks one (46.307887ms)
✔ mosaic with no argument: exit 3 in an agent run, exit 4 with the usage off a terminal, the app on one (1.62498ms)
✔ scripts/mosaic with no argument reaches the app entry; the seat usage it printed before has not drifted (165.817915ms)
✔ strings to keep exactly live once, in the decide flow and the transport; the app does not restate them (0.43647ms)
✔ decide with --note still asks; a No sends nothing (58.068069ms)
✔ the app's business comes from a live bus host only (0.992027ms)
✔ runApp leaves the terminal as it found it on q, end of input, SIGTERM, SIGINT, SIGHUP and an error, the first frame's included (6.831994ms)
✔ draw is pure: same state, same frame (0.691882ms)
✔ inbox lists only decisions routed to the human, with what approving authorizes and how to decide (133.534056ms)
✔ decide resolves by id prefix with --yes, and the trail shows it in broker order with the task to follow (123.489239ms)
✔ decide refuses without a terminal or --yes, on an unknown option and on a short reference (105.809668ms)
✔ decide prints a declining choice as declining (147.473855ms)
✔ an unknown outcome is reported once and never resent (100.401901ms)
✔ a decision closed before the answer arrives exits 2 and points at its trail (104.039425ms)
✔ a prefix that matches two open decisions exits 2 and resolves neither (94.209338ms)
✔ without --business a command uses the live host's business, and a stale host.json is not a host (143.740235ms)
✔ every human command refuses inside an agent run before it touches the bus (88.015376ms)
✔ usage errors exit 4; no business and no host is a usage error (85.554546ms)
✔ agents and tasks print through the broker (96.566216ms)
✔ notify.json: missing, loose, malformed and extra keys refuse; a binding or null passes (1.227053ms)
✔ bootConfig builds the broker's boot message for one business, with no trackers key when no project names one (61.437437ms)
✔ trackers come from the tracker.* variables of the one project that names a tracker project (69.546508ms)
✔ with two projects, the one that sets tracker.project supplies the tracker and the other is no conflict (33.873942ms)
✔ two projects that each name a tracker project refuse, since the boot shape holds one (35.960405ms)
✔ a business without tracker.baseUrl gets no trackers entry (28.518301ms)
✔ an unknown business and a broken system config refuse with exit 3 (62.139223ms)
✔ follow prints an unsolicited message after plain talk returned (185.286233ms)
✔ talk --follow continues after reply and prints a later unsolicited message (164.24966ms)
✔ inbox lists all unread human messages under decisions, does not deliver or read them (2254.638122ms)
✔ follow refuses agent context and bad arguments (271.941331ms)
✔ follow Ctrl-C wakes the poll sleep and removes its handler; transport errors also clean up (358.278765ms)
✔ plain talk leaves the process SIGINT handlers unchanged (261.842976ms)
✔ empty views say so (1.09926ms)
✔ the trail keeps the broker's order and names a decision's task without its rows (1.422464ms)
✔ tasks print the tracker fields the snapshot carries (0.254821ms)
✔ the review loop: the coder pushes and asks, the reviewer fetches and approves, and the task's trail holds each step (679.283864ms)
✔ refusals: no action, non-fast-forward, an unknown commit or request, and a push for another task moves only that task's ref (620.826252ms)
✔ the size cap refuses a push before any byte (320.496159ms)
✔ a fetch over the cap refuses before any byte reaches the reviewer (595.32233ms)
✔ the socket refuses a request with no capability, an unknown one, and a bad request line (355.289821ms)
✔ a rigged clone runs nothing: hooks, fsmonitor, a filter, a gitlink and a symlinked .git/config leave no marker (1207.836778ms)
✔ an identity with no role, or of another business, refuses not-a-role and moves no ref (688.038058ms)
✔ a review of a project the business no longer has refuses unknown-project (372.71763ms)
✔ past maxActive connections the socket refuses git-busy, and a hung-up connection frees its slot (266.827825ms)
✔ close() answers host-closing to a connection still sending its request line (459.233783ms)
✔ a bundle that trickles in refuses body-timeout at its deadline and frees its slot (1026.704905ms)
✔ a reviewer gone before its bundle was sent is filed fetch-aborted, not as the host's fault (773.038369ms)
✔ a reviewer that hangs up the moment it has the whole bundle was served, not aborted (641.23788ms)
✔ send: a close after every byte left is served; one that fails a queued write is fetch-aborted (41.611192ms)
✔ a bundle with no bytes for bodyIdle refuses body-timeout long before its deadline (590.400906ms)
✔ send: a close once the loop is past its last chunk is served, and a failed write there is fetch-aborted (23.692917ms)
✔ letGo waits for an answer to leave for at most its cap, then destroys the socket (302.021176ms)
✔ a record that fails and can't be undone refuses rollback-failed, which the host logs (461.038324ms)
✔ the host boots the broker, binds a launch in process, and the notifier DMs a blocking decision exactly once (925.54778ms)
✔ a notifier that dies takes the host down with exit 1, so the unit restarts the pair (221.729226ms)
✔ a second host for the same data root refuses with exit 3 while the first runs (179.786804ms)
✔ two bus starts racing for one data root leave one host running; the other refuses that a host already runs (605.671661ms)
✔ a host takes over a host.lock its dead host left, and puts back a live claim that replaced it meanwhile (1.905146ms)
✔ a host.lock that goes between the check and the read is tried again; one that can't be parsed still refuses as unreadable (0.886482ms)
✔ a live host's lock stays, however old the file is (0.586098ms)
✔ a host.lock left by a host killed with SIGKILL doesn't stop the next bus start (813.177427ms)
✔ while a host boots, a reader sees no host: the human commands still ask for --business, stop and status find none (198.820475ms)
✔ a host started before host.lock existed, holding only host.json, still refuses a second start, which leaves no lock (74.833403ms)
✔ a broker fork that throws leaves no host.lock and no host.json (39.371477ms)
✔ a broker send that throws leaves no host.lock and no host.json (27.263857ms)
✔ a broker that misses its boot wait leaves no host.lock and no host.json (27.524905ms)
✔ a notifier fork that throws stops the broker and leaves no host.lock and no host.json (299.376018ms)
✔ a notifier send that throws stops the broker and leaves no host.lock and no host.json (167.539862ms)
✔ a boot reply with no reader for the business refuses with exit 3 naming it, before the notifier starts, and leaves no host.lock and no live broker (245.9145ms)
✔ a boot reply with no reader for the business refuses with exit 3 naming it, with no notifier, and leaves no host.lock and no live broker (388.184906ms)
✔ a host.json that can't be written stops both children and leaves no host.lock (318.493958ms)
✔ an error event on the broker before it replies fails the start at once, and leaves no host.lock and no live child (29.159394ms)
✔ an error event on the notifier before it replies fails the start at once, and leaves no host.lock and no live child (152.86279ms)
✔ an error event on the broker while the notifier starts fails the start once the notifier replies (257.236048ms)
✔ an error event on the broker once the host is up stops the host with exit 1, and leaves no host.lock and no host.json (276.251776ms)
✔ an error event on the notifier once the host is up stops the host with exit 1, and leaves no host.lock and no host.json (595.7873ms)
✔ a broker reply that misses the wait breaks the channel: the late reply answers nothing, later requests refuse, the host exits 1 (1196.773485ms)
✔ a broker reply with another request's id, or none, breaks the channel and the host exits 1 (309.557454ms)
✔ a broker reply with no request waiting breaks the channel and the host exits 1 (159.447266ms)
✔ a notifier that refuses stops the broker and the host refuses with exit 3 (192.510099ms)
✔ a notifier that refuses after the broker died still refuses with exit 3, without a send to the dead broker (191.42738ms)
✔ a notifier that dies before it replies, after the broker died, still refuses, without a send to the dead broker (141.224288ms)
✔ a close send that fails with EPIPE after the notifier refuses still gives the notifier's refusal, exit 3 (209.522825ms)
✔ a close send that fails with EPIPE after the notifier dies unanswered still gives the notifier's error (183.412525ms)
✔ close() whose stop and close sends fail with EPIPE still finishes, with exit 1 (193.297923ms)
✔ watchChildren reports a child that died before it was called, and one that dies later (23.678681ms)
✔ bus stop refuses to signal a live pid that is not a bus host (202.454899ms)
✔ bus start refuses with exit 3 and the code when the broker refuses to boot; bus status names the lock (236.319167ms)
✔ bus start refuses with exit 3 without a notifier config (103.946948ms)
✔ bus start runs until bus stop; status reports it while it runs (695.014594ms)
✔ bus-service.sh renders the unit and installs it into a given directory (51.719808ms)
✔ bus-service.sh pins the claude binary, refuses one the unit can't carry, and renders without one (66.596249ms)
✔ bus-service.sh refuses a directory pin and keeps a symlink default unresolved (13.816423ms)
✔ bus-service.sh refuses a default claude without the execute bit, or in a PATH dir with a space (8.385895ms)
✔ bus start --pm: the PM runs under its own PID namespace, registered, with a manifest (1335.519709ms)
✔ the PM launches a coder through its launch tool; the coder answers; refusals name their code (794.057516ms)
✔ each launch makes sure the workspace has a clone of the project: cloned, fast-forwarded, or kept and logged (3115.319433ms)
✔ a project clone that can't be made refuses checkout-failed, from --pm and from a session, with no run and no clone left (679.504516ms)
✔ a runner that stops at once ends its launch with the runner's reason (270.940481ms)
✔ a Claude Code launch with no session credential refuses before it starts (164.651735ms)
✔ a pi launch needs no session credential: pi logs in through its own ENV_ALLOW variables (278.968279ms)
✔ a runner killed from the host ends its launch as killed, not failed (453.674266ms)
✔ a missing or failing bwrap refuses sandbox-unavailable before anything starts; there is no unconfined fallback (198.999463ms)
✔ a real Claude Code coder's shell can't read a stand-in secret or anything else its sandbox doesn't hold (1409.956416ms)
✔ a host that died hard leaves its sessions to the next host, which kills them and ends their runs so the role can be launched again (719.254839ms)
✔ a host that died hard leaves its sessions to the next host, which finds one already exited (23) and ends their runs so the role can be launched again (3721.850107ms)
✔ a malformed sessions.json refuses the host start with exit 3 and stays as it was (167.172551ms)
✔ an over-long launch request is refused at once, not at the 10 s idle timeout (125.15881ms)
✔ a launch client that never closes its side doesn't hold the host's close (187.320398ms)
✔ a runner that ignores SIGTERM is killed when the host closes (1254.495387ms)
✔ claudeVersion asks MOSAIC_CLAUDE_BIN when set, else claude on PATH (4.813854ms)
✔ zoned uses the IANA zone across DST (25.414152ms)
✔ each open blocking decision is DM'd once, across polls and a restart; non-blocking ones are not (142.209922ms)
✔ two blocking decisions get two DMs with different nonces (116.15126ms)
✔ the digest nonce differs per business and per day and fits Discord's 25 characters (0.262367ms)
✔ a failed DM is journaled, backs off, and is retried until it lands (99.587157ms)
✔ five definite refusals stop a DM: one gave-up line, one log line, and a restart keeps the count (144.561234ms)
✔ 429s, 5xx-style unknowns and refusals without a status never count toward the limit (116.40618ms)
✔ a crash between the fifth refusal and its gave-up line: the next poll appends it and sends nothing (97.270773ms)
✔ polled every POLL_MS against a permanent 403, a DM is sent at 0, 30, 60, 90 and 120 min and gives up only then (160.857426ms)
✔ a restart after the second refusal does not send before that refusal's 30 min are up (161.224926ms)
✔ the digest goes at 08:00 Chicago once a day, with blocking ones marked as DM'd (100.066327ms)
✔ a late start with no digest for the day sends one at once; an empty inbox gets one line (98.386265ms)
✔ an inbox read failure is logged and the next poll retries (0.660762ms)
✔ no Discord id reaches the journal or the log (132.721236ms)
✔ the journal: a torn tail is copied out and truncated, so an append after it reopens cleanly (28.842413ms)
✔ the journal: a crash between the copy and the truncate leaves a tail the next open repairs (47.684892ms)
✔ the journal: a whole file that is one torn line truncates to empty (28.176091ms)
✔ the journal: a malformed complete line refuses and leaves the file and any torn tail alone (1.977091ms)
✔ the journal: a loose file mode, a loose directory or a symlinked journal refuses (0.758219ms)
✔ the journal: a line with a wrong type refuses with exit 3 and names the field (4.456991ms)
✔ the journal: a symlinked directory refuses and says it is a link (0.382223ms)
✔ the journal: a dangling directory link, a parent that is a file and a journal that is a directory each refuse with exit 3 (0.495006ms)
✔ the journal: an append after the file was swapped for a symlink refuses and writes nothing through it (0.368616ms)
✔ the journal: a directory it cannot write or create refuses with exit 3 and names the path (0.444647ms)
✔ digest content stays within Discord's 2000 characters (0.263471ms)
✔ runLoop never overlaps ticks and stops after the one in flight (110.118146ms)
✔ shared copy: npm ci, pushed reachability, readonly/existing copy, webui delegation (466.474335ms)
✔ wrapper preserves Q81 lease and marker, rejects foreign/symlink; check uses effective roots (402.907595ms)
✔ bus unit copy/pm pins, install refuses all busy states and failed reads, drop-in refusal (440.870029ms)
✔ missing package manifest refuses before npm; npm failure removes the unpublished temp copy (306.683877ms)
✔ real pinned install loads bus and Console; same-copy mosaic talk passes proof, other trees refuse (4285.751871ms)
✔ bus status reads effective copy/pm/drop-ins without writes; check refuses an overridden ExecStart (457.143478ms)
✔ drop-ins in either override field and malformed metadata refuse; uninstall also checks --no-reload (180.242817ms)
✔ install never shows a template name on systemd 261; template drop-ins still refuse (175.323758ms)
✔ unlisted instance drop-in is found in another unit lookup directory; path discovery errors refuse (181.600059ms)
✔ talk --tester sends a [mos test] message as tester from inside an agent and prints the role's reply (148.193797ms)
✔ talk --tester refuses text without the [mos test] prefix before any call (95.15893ms)
✔ the read verbs take --tester inside an agent, and the trail shows the tester as the sender (111.099483ms)
✔ decide, stop and launches take no --tester (132.172522ms)
✔ the tester transport runs tester-cli.mjs, and the tester's refusals exit 3 (0.340785ms)
✔ with no stand-in transport, --tester runs tester-cli.mjs on the data root's socket (0.524957ms)
task.close {} answered: invalid-request; fake saw 18 requests, first GET /info 200, GET /projects/1 200, GET /projects/1/views 200
task.close on a missing task answered: task-not-found; it made GET /tasks/999 404
✔ bootConfig trackers reach the S3 adapter in the real broker child, which goes ready against a fake Vikunja (385.901481ms)
✔ the transport writes {business, verb, args} to the child and reads its JSON (46.277482ms)
✔ a bus code on stderr becomes the exit code; garbage and timeouts are outcome problems (2168.916748ms)
✔ busExit and refuseInsideAgent (0.49853ms)
✔ talk sends a REQUEST, prints and reads everything that arrives, and stops at the reply (209.723902ms)
✔ talk --wait 0 only sends; no reply within --wait exits 1 and says where it will show (1118.929582ms)
✔ a late reply the Console has listed still reaches the next talk (2147.144156ms)
✔ talk, stop and launches off/on refuse inside an agent run; bad arguments are usage errors (241.155722ms)
✔ launches off and on go to the broker and change the business's launch state (133.15123ms)
✔ launches list reads sessions.json and marks a stale entry; stop reports it and refuses a non-runner (327.045198ms)
ℹ tests 184
ℹ suites 0
ℹ pass 184
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 19086.166336