Compare commits

...
119 Commits
Author SHA1 Message Date
jason.woltje c16e943b90 briefs: mos-1442 approvals for the 590 and 591 rows (#1811, #1812), the 295 N1 revoke-window row (#1813); DEFERRED 295 N1 (sage) 2026-10-23 05:51:16 -05:00
jason.woltje ac1644e1ce 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) 2026-10-23 05:48:40 -05:00
jason.woltje 90633c8648 queue: revs 3495-3509: row 295 round 2 in-progress and in-review (morgana 3495-3497), sage's request posted (3498/3499), dewey approve record (3500), row 295 landing note and done at 2efd127ce (sage 3501/3502); row 219 in-review on b899095e4 (rocko 3503/3504, request failed without a token), sage's request posted c31107 (3505/3506), dewey approve record c31108 (3507), row 219 landing note and done at 5fdfd7275 (sage 3508/3509); queue only 2026-10-23 05:45:46 -05:00
Rocko 5fdfd7275c docs: preserve row 219 full gate on the post-295 merge 2026-10-23 05:37:44 -05:00
Rocko a236dbc30a docs: preserve row 219 mos-1429 short-run evidence 2026-10-23 05:37:44 -05:00
Rocko 312260db7b test: prepare row 219 admission pins under mos-1429 2026-10-23 05:37:43 -05:00
Rocko d7b4967ed0 docs: record row 219 rebase after granted-user Console 2026-10-23 05:37:43 -05:00
Rocko 90a3c03cfb test: assert creative history in its native session store
Apply only the paths and legacy absence pins approved by mos-1420 and sage-3243. Preserve exact expected history and the stopped run evidence. No product change or rerun.
2026-10-23 05:37:43 -05:00
Rocko 282f5b4e45 test: pin the compaction audit before the persona refusal
Apply the exact two-row fixture assertion approved by mos-1418 and sage-3232. Preserve earlier red logs; no product change and no rerun before review.
2026-10-23 05:37:43 -05:00
Rocko 781fd509c4 test: give row 219 persona fixture its explicit session
Apply mos-1408 and sage-3178 without creating the directory being asserted. Preserve the first red evidence and select TAP explicitly for the next approved run.
2026-10-23 05:37:43 -05:00
Rocko 52a73e83bd docs: rebase row 219 gate packet and record run bounds 2026-10-23 05:37:43 -05:00
Rocko 049214486b wip: publish unverified row 219 inspection candidate
Preserve the draft for inspection under sage-3113. Tests and mutants have not run. Old-test adaptations approved in mos-1316 and mos-1317 are recorded in OLD-TEST-CHANGES.md.
2026-10-23 05:37:43 -05:00
jason.woltje 2efd127ce6 morgana: row 295 r2 gate results on d68b4300d (sage-3338, sage-3340): red first, green, M8 count, whole files, suites, script limits and skips, M1-M16 killed 2026-10-23 05:06:14 -05:00
jason.woltje fdbe95d88d morgana: row 295 r2 narrow alice grant (Dewey F1, sage-3333): aliceAccess(ref) names only the test's project, set after project.create; asserts and bindLaunch lines byte-identical; BUILD.md preservation record updated 2026-10-23 05:06:14 -05:00
jason.woltje cb96220b53 morgana: row 295 r2 old-test setup (mos-1436 option a): message-filter's :117 and governance-pin tests get an alice collaborator access document, spec-fixtures fixture() takes an optional access (null default); asserts and bindLaunch lines byte-identical; BUILD.md gate record, assertion preservation, N1 revoke window 2026-10-23 05:06:14 -05:00
jason.woltje 6408dcec4f morgana: row 295 r2 first-run reds placed (mos-1272): claim rows spread off the store's null prototype in access-revoke and thread-revoke, demo switches the pi harness on for startBroker, Alice binds at her first call in thread-revoke 2026-10-23 05:06:14 -05:00
jason.woltje 0c8f12ea20 morgana: row 295 r2 rebase on 80793d824 (sage-3256): accessFor comment is stamp-cached (dewey-0871 N3); BUILD.md rebase note 2026-10-23 05:06:14 -05:00
jason.woltje 24f8f5d739 morgana: row 295 r2: wrap the launcher's revoked comment (dewey-0874 nit) 2026-10-23 05:06:14 -05:00
jason.woltje 31da9dcb85 morgana: row 295 r2 (dewey-0871): threadsState ends an expired grant's held claim from the cached read by access-expiry (B1, D7, M16, M11 claim row); access.reload scope as D8 (N1); bus README access.reload, revoked and revocation (N2); tests unrun 2026-10-23 05:06:14 -05:00
jason.woltje ff54a15563 morgana: row 295 FED R4 revocation (#1801): 30 s access timer, access.reload, one-transaction claim end on a loss, threadsState revoked, launcher SIGTERM and no start, CLI reload after grant/revoke; tests unrun (no CLEAR yet) 2026-10-23 05:06:14 -05:00
jason.woltje 249d42dfc5 morgana: row 295 plan (FED R4 revocation, #1801): sweep on timer, access.reload and user requests; threadsState revoked; launcher skip and SIGTERM; bindLaunch and role.claim refuse thread-revoked 2026-10-23 05:06:14 -05:00
jason.woltje 07802dc57a queue: revs 3488-3494: row 302 (#1809) in-review on 2a8281a6f (gizmoduck 3488), gizmoduck's request failed without a token (3489), sage's request posted c31091 (3490/3491), dewey approve record c31092 (3492); row 302 landing note and done move at 3ed9fd754 (sage 3493/3494); queue only 2026-10-23 03:53:06 -05:00
jason.woltje 3ed9fd754a gizmoduck: row 302 (#1809) gate results: run 1 stopped on launcher-released.test:89 (d6, mos-1430); run 2 on merge 783602e06 (5b63ea323 onto 1ac655005) red as ruled, suites green, M1-M5 M7-M9 killed; RESULTS.md and logs, packet only 2026-10-23 03:47:38 -05:00
jason.woltje c9fcf9b5af gizmoduck: row 302 (#1809) d6: launcher-released.test:89 counts only a-run's delivery rows and pins the one routed row with holder_run null; #route writes that row for every message (gizmoduck-0388, sage-3294, sage-3296, Mos ruling pending sage-3293); local, not pushed 2026-10-23 03:47:38 -05:00
jason.woltje 2b6111a176 row 302 (#1809, Vikunja 588): a run threadIdle or landRelease released answers launcher-released on every call needing the claim until it ends, role.claim refuses it (Dewey D1), and the runner exits stopped without releasing again 2026-10-23 03:47:38 -05:00
jason.woltje 4a827edb0c row 302 (#1809, Vikunja 588): red first, the final forcing tests and the four pins Mos ruled (mos-1414/1415/1416), over unfixed product files; BUILD.md d3-d5 and ASSERTION-PRESERVATION 2026-10-23 03:47:38 -05:00
jason.woltje 908f92b039 gizmoduck: row 302 design d2: threads.test pins are :392/:394/:395 (sage-3204), land-relaunch grep finds land.test:464 as a third old pin under Q1 2026-10-23 03:47:38 -05:00
jason.woltje 62470a3ec3 gizmoduck: row 302 BUILD.md folds Dewey's d1 approval (dewey-0875): D1 role.claim refuses a released run, landRelease reaches runner.test:742-772 so Q1 moves :771-772, Q2-Q4 and N1-N4 settled 2026-10-23 03:47:38 -05:00
jason.woltje fee08d7ab9 gizmoduck: row 302 (#1809, Vikunja 588) idle-stop race design round d1 for Dewey: idle-released code from the broker's own record of threadIdle's release, runner maps it to stopped/0, forcing cli test holds the window open until a call lands, threads.test:393 is the one changed pin (sage-3200, mos-1411) 2026-10-23 03:47:38 -05:00
jason.woltje 1ac655005e BUILD-LOG and SESSIONS: row 299 gate and landing, row 303 review, 219 and 295 rebases (sage) 2026-10-23 03:10:29 -05:00
jason.woltje 8a35ffadb4 queue: revs 3474-3487: row 303 (#1810) in-progress and in-review on 3c3be5d3 (launchpad 3474/3475), launchpad's request failed without a token (3476), sage's request posted c31082 (3477/3478), duckworth approve record c31079 (3480); row 299 (#1806) claim (gander 3479), in-review on 277ace0b (gander 3481), gander's request failed without a token (3482), sage's request posted c31083 (3483/3484), filbert approve record c31084 (3485); row 299 landing note and done move at ffb2fedfb (sage 3486/3487); queue only 2026-10-23 03:07:32 -05:00
jason.woltje ffb2fedfbc docs(row299): record fresh timing gate and six assertion kills 2026-10-23 03:03:09 -05:00
jason.woltje 11d1e2e0ce docs(row299): record clean integration on 80793d824 2026-10-23 03:03:09 -05:00
jason.woltje ed81f6eba0 docs(row299): record mos-1409 preservation and static candidate 2026-10-23 03:03:09 -05:00
jason.woltje e14164ab49 test(case): observe P10 wait directly under mos-1409 2026-10-23 03:03:09 -05:00
jason.woltje 10113b04f5 docs(row299): propose direct P10 wait timing for mos-1272 review 2026-10-23 03:03:09 -05:00
jason.woltje c1f910b4cc SESSIONS: filbert row 299 manifest round 1 approve (c31084, rev 3485) 2026-10-23 03:00:12 -05:00
jason.woltje 15e688cc01 BUILD-LOG and SESSIONS: row 294 rounds 3-4 and landing, R9 transient and row 303, row 219 edits 2-3 (sage) 2026-10-23 02:11:43 -05:00
jason.woltje 80793d824e queue: revs 3464-3473: row 294 (#1800) round 4 in-progress and in-review on a1ff5d67 (launchpad 3464/3465), launchpad's request without a token failed (3466), sage's request posted c31055 (3467/3468), duckworth approve record c31053 (3469); row 294 landing note and done move at d3059c2c3 (sage 3470/3471); row 303 (R9 guard, #1810, Vikunja 589, mos-1422) added and briefed (sage 3472/3473); queue only 2026-10-23 02:10:05 -05:00
jason.woltje ad6ca79304 docs: brief for the R9 guard row (Vikunja 589, #1810, mos-1422); docs only 2026-10-23 02:07:02 -05:00
jason.woltje d3059c2c3d launchpad: row 294 run 4 (#1800): whole gate green on 8616b9a4f (webui 365, cli 909, bus 873, 10 scripts), M1-M11 killed; M1 record names G4's first failure and G5 green (Duckworth C1); receipts in run4/ 2026-10-23 01:37:03 -05:00
jason.woltje 6f07930679 launchpad: row 294 round 4 (#1800): rehearsal fixture copies carry cli access.mjs and transport.mjs, B1-B3 pin the fixture's tracker warning in full (Mos mos-1419, sage-3238); manifest round 4 (19 paths), run 3 receipts; unrun 2026-10-23 01:37:03 -05:00
jason.woltje b01e1c9ee1 launchpad: row 294 round 3 (#1800): G5's baseline is coalesce(max(seq), 0), since max(seq) is NULL on the fixture's empty events table and run 2 read 0 of 22 refusal events (sage-3212, Mos ruling pending sage-3211); manifest round 3, run 2 receipts; unrun 2026-10-23 01:37:03 -05:00
jason.woltje 8716e72f26 launchpad: row 294 round 2 (#1800): browser.test pin gains /federation.js at index 2 (Mos mos-1412 (a)), G5 pins one action.refused {code: access-refused} per refused verb and every other table unchanged (sage-3194); manifest round 2 (18 paths), ASSERTION-PRESERVATION.json, run 1 receipts; unrun 2026-10-23 01:37:03 -05:00
jason.woltje 9beeeb9955 launchpad: row 294 run limits from recorded durations, 3x or more (sage-3187, mos-1275) 2026-10-23 01:37:03 -05:00
jason.woltje 9e43fefe60 launchpad: row 294 BUILD.md M1 expectation corrected (Duckworth C1), review recorded with N1-N4 dispositions 2026-10-23 01:37:03 -05:00
jason.woltje d0460ed475 launchpad: row 294 round 1 manifest (17 paths from 9450774cb) and notes with the owner-transport exception 2026-10-23 01:37:03 -05:00
jason.woltje 26f93fa746 launchpad: row 294 sage-3157, owner-transport exception written out, userOptionsFor, G9 pins no user value, M10/M11 (unrun, #1800) 2026-10-23 01:37:03 -05:00
jason.woltje c9e67e7d2d launchpad: row 294 BUILD.md M4 kill names the moved test 2026-10-23 01:37:03 -05:00
jason.woltje 52d2a16109 launchpad: row 294 rulings sage-3153 (boot refusal line, owner transport seam G9, C7 follow-up, access.test.mjs unchanged; unrun, #1800) 2026-10-23 01:37:03 -05:00
jason.woltje afef0ea887 launchpad: row 294 FED R6 build and plan, granted-user sign-in (unrun, #1800)
Console granted-user sign-in, a user-cli transport per session, the
per-request grant re-read, the owner-only gate and user page, the notice,
the hub label and peer links, accessContextFor peers, and the bus boot
access wiring (sage-3142). Tests G1-G8 and B1-B3 are written and not yet
run; runs wait for Sage's CLEAR. Choices C1-C9 in
agents/launchpad/work/queue-294/BUILD.md.
2026-10-23 01:37:03 -05:00
jason.woltje 09d0d6fafa queue: revs 3457-3463: row 294 (#1800) round 3 in-progress and in-review on cb1648f3 (launchpad 3457/3458), launchpad's request without a token failed (3459), sage's request posted c31049 (3460/3461), duckworth approve record c31045 (3462); row 219 restart note on b97a3ff97 (rocko 3463); queue only 2026-10-23 00:53:42 -05:00
jason.woltje ffbc0d7a6d BUILD-LOG and SESSIONS: row 292 landing, idle-stop race row 302 and its rulings, rows 300/301, row 294 rounds 2-3 (sage) 2026-10-23 00:47:17 -05:00
jason.woltje 756284e8e9 queue: revs 3448-3456: row 294 (#1800) round 2 in-progress and in-review on 7ec7b1ea (launchpad 3448/3449), launchpad's request without a token failed (3450), sage's request without a token failed (3451/3452), sage's request posted c31042 (3453/3454), duckworth approve record c31029 (3455); row 302 (#1809) in-progress (gizmoduck 3456); queue only 2026-10-23 00:40:17 -05:00
jason.woltje 0e30a85fac queue: revs 3444-3447: row 302 (idle-stop race, #1809, Vikunja 588, mos-1411) added and briefed; row 292 (#1797) landing note and done move at 6aab979e6 (sage); queue only 2026-10-23 00:22:51 -05:00
jason.woltje 6aab979e6c row 292 (#1797) gate results on 0d0021454: r2 old-test red compactions-launch:229 (exit-22 race, Vikunja 588), mos-1411 diagnostic 0/10 with one not-holder exit 22 seen in the clear test, r3 cli rerun 910/910, ten shells green, M1-M9 killed; rebase receipts (sage-3183, sage-3185, sage-3193) 2026-10-23 00:18:02 -05:00
jason.woltje e5ffa76932 row 292 (#1797) packet: targeted mutant kill rules per sage-3152 (pattern, stack lines and text per mutant; anything else is a STOP; a survivor gets one whole-file run), short TMPDIR per stage, run plan after Duckworth's round 2026-10-23 00:18:02 -05:00
jason.woltje bf4ba4280e row 292 (#1797) packet: rebase onto b23783f39 with the 0585b3213 resolution (row 203's console and federation text kept word for word, Gander's text for any other key), range-diff, the three patch-ids, C1/N3, mutants M1-M9 (unrun) and the run plan (sage-3146, sage-3148) 2026-10-23 00:18:02 -05:00
jason.woltje 495c128658 row 292 (#1797) C1 and N3 for duckworth-0229: a pre-270 loader stand-in of its own (C1's loader without the row 270 concat, the list before bce491715) refuses compactionReadBytes and compactionStreams on a full activate and rollback, naming the key; C1's loader reads both; the missing-loader case uses compactionStreams 1024 and checks row 203's console and federation text word for word with no loader 2026-10-23 00:18:02 -05:00
jason.woltje 4b612781b4 docs(release): record static approval and post-compaction review conditions 2026-10-23 00:18:02 -05:00
jason.woltje be43572166 docs(release): record any-key config plan and static review packet 2026-10-23 00:18:02 -05:00
jason.woltje 39bde4fd43 fix(release): validate non-console config keys with target loader 2026-10-23 00:18:01 -05:00
jason.woltje fdedc56e2a docs: idle-stop race brief records the 10-run diagnostic (not-holder seen once, run r846b8d083502); docs only 2026-10-23 00:04:20 -05:00
jason.woltje e3ef1eaf6f docs: brief for the idle-stop race row (Vikunja 588, #1809, mos-1411); docs only 2026-10-23 00:00:21 -05:00
jason.woltje c902a767dc queue: revs 3439-3443: rocko row 219 claim (3439), sage adds rows 300 (R6-N1, #1807) and 301 (R6-N4, #1808) and briefs both; queue only 2026-10-22 23:30:34 -05:00
jason.woltje 86d5ac69bf docs: R6 follow-up briefs for row 294 N1 (#1807) and N4 (#1808); docs only 2026-10-22 23:13:49 -05:00
jason.woltje 4a9c536e86 Row 293 (574) landing e51d11640 and the 3m-3n live window (activation 20261023T034557Z-464010fbe4c6): BUILD-LOG phase line, Darkwing and Sage SESSIONS lines; docs only 2026-10-22 23:01:20 -05:00
jason.woltje 83f1f854de queue: row 293 (574, #1805) landing note and done move (sage); queue only 2026-10-22 23:01:20 -05:00
jason.woltje e51d116402 docs(row293): record green integrated trace and whole suites 2026-10-22 22:55:25 -05:00
jason.woltje 78bbe12233 docs(row293): record integrated run2 and short TMPDIR correction 2026-10-22 22:55:25 -05:00
jason.woltje 92c0ca3db2 docs: preserve row293 first trace run and TMPDIR stop 2026-10-22 22:55:25 -05:00
jason.woltje d0ede15b95 docs(v574): record static approval and trace evidence requirements 2026-10-22 22:55:25 -05:00
jason.woltje 29bb1ccd46 docs(v574): audit fixture comparisons and plan trace proof 2026-10-22 22:55:25 -05:00
jason.woltje 4e22bd49f9 test(git): disable detached fixture maintenance per mos-1369 2026-10-22 22:55:25 -05:00
jason.woltje 464010fbe4 queue: revs 3435-3436. Row 294 (#1800): Duckworth APPROVE c30998 (3435, candidate 0b3f9c9d). Row 272 (#1777): Scrooge CHANGES c31006 (3436, candidate 0c3dc2ed); queue only 2026-10-22 22:39:36 -05:00
jason.woltje e57bfde734 queue: revs 3407-3434. Row 293 (574, #1805): Gander in-review r1 (3407, failed pre-send 3408), Sage request c30981 (3409/3410), Filbert APPROVE c30982 (3411). Row 292 (#1797): assigned gizmoduck (mos-1387), claim 3413, in-review r1 3419 (3420 failed), Sage request c30992 (3425/3426), Duckworth APPROVE c30975 (3433). Row 294 (#1800): Launchpad claim 3418, in-review r1 3422 (3423 failed), Sage request c30993 (3427/3428). Row 295 (#1801): Morgana claim 3414, in-review r1 3416 (3417 failed), Sage request c30991 resolved (3421/3424), Dewey CHANGES c30994 (3431). Row 272 (#1777): Huey claim 3415, in-review r1 3429 (3430 failed), Sage request c30997 resolved (3432/3434); queue only 2026-10-22 22:34:14 -05:00
jason.woltje 319d9f87ea sessions: Filbert row 293 (Vikunja 574) APPROVE c30982 rev 3411, plus re-added S0 re-check and 574 static review lines; docs only 2026-10-22 22:15:06 -05:00
jason.woltje b23783f395 Rows 270+271 landing (7328da8ca), 571 landing, MVP rows 293-299: BUILD-LOG phase line and Sage SESSIONS line; docs only 2026-10-22 21:34:23 -05:00
jason.woltje e18ad27115 docs: define mixed-format chapter ordering for conversion 2026-10-22 21:34:23 -05:00
jason.woltje 12f8c3089c queue: rows 293-299 briefed (revs 3399, 3401-3406, sage) and row 293 claimed by gander (rev 3400, gander-293-start); queue only 2026-10-22 21:34:06 -05:00
jason.woltje 253346e3c3 queue: rows 293-299 added (574 #1805, FED R6 #1800, FED R4 #1801, FED R7 #1802, GitHub grant method #1803, Q228 #1804, 573 #1806; mos-1371/1372), 208 after 294; 270 round 3 request c30929 and Duckworth APPROVE c30930; 270+271 done at 7328da8ca (mos-1351); queue only 2026-10-22 21:19:12 -05:00
jason.woltje 7328da8ca4 gizmoduck: row 270 (264c, #1775) gate results: run 3 red on case1-accept P10 band (Vikunja 573) and run 4 red on the checkout.test fixture race (Vikunja 574), both old tests unchanged in the range; run 5 GREEN on 53406f3e4 under mos-1369 and sage-3106, all phases and 38/38 mutants killed; BUILD.md only 2026-10-22 21:07:51 -05:00
jason.woltje 84002f960a gizmoduck: row 270 (264c, #1775) gate run 2 second red, fixed under mos-1364 and sage-3093: compactions-budget.test F1 (:39 input 8.5 * MiB is a whole number, now MiB + 0.5) and F2 (the 0o000 window in try/finally; the after-hook ran after setup's rm); K M22 :129, M23 :120, M22 and M15 notes; BUILD.md run 2 2026-10-22 21:07:51 -05:00
jason.woltje f89aaf57fe gizmoduck: row 270 (264c, #1775) gate run 1 red placed (mos-1272): compactions-launch.test's host wires row 271's five clear ops, as session-clear.test does; the clear test's successor never started without them; kill lines +5 in mutants.py K; BUILD.md run 1 2026-10-22 21:07:51 -05:00
jason.woltje d3a49f301a gizmoduck: rows 270+271 combined gate (C2) record before the first run (sage-3073, sage-3086, mos-1275, mos-1351): blob table, timeout table, GREEN and RED, order; code is ac44d0de9's 2026-10-22 21:07:51 -05:00
jason.woltje 562b05b43c gizmoduck: row 270 (264c, #1775) round 4 for sage-3073 and sage-3078: rows 270 and 271 rebased onto 25c09f19f (row 203 plus the O2 docs); mosaic-config.mjs keeps 203's federation key and both compaction keys; BUILD.md round 4 with the range-diff, the three merged files and C1 after 203; not run 2026-10-22 21:07:51 -05:00
jason.woltje 8c28ee7315 gizmoduck: row 270 (264c, #1775) round 3 for duckworth-0226 B4 (sage-3038): one collection opens at most the system config's compactionStreams stream files in name order (default 1024, 32 to 65536, a bad value takes the default and logs), not-collected past it with no cursor for an unopened stream; the missing-stream check uses a Set; readStreams, cap and launcher tests; mutants M22-M24, M10 anchor moved; docs/TOOLS.md has both keys and C1 (N4); BUILD.md round 3 with stream counts, the 231 KB bound, C1 and N5; not run 2026-10-22 21:07:51 -05:00
jason.woltje bce4917154 gizmoduck: row 270 (264c, #1775) round 2 for duckworth-0223 B1-B3 (sage-3030, sage-3031, mos-1352, sage-3033): pi streams read in 1 MiB chunks under a budget from the system config's compactionReadBytes (default 64 MiB, 1 MiB to 1 GiB, a bad value takes the default and logs), not-collected past it; Claude history from before the ledger is harness-unsupported for good; launcher, runtime reader, clear and legacy tests; mutants M13-M21; BUILD.md round 2 with sizes, schema change, rollback hazard, N1-N3; not run 2026-10-22 21:07:51 -05:00
jason.woltje 01b57f48bb gizmoduck: row 270 (264c, #1775) round 1 for review (sage-3024): mutants.py M1-M12 with anchors at 7d199f033, each matching once, kills read from the tests; run plan with broker.mjs reruns; launcher and runtime wiring named as untested; not run 2026-10-22 21:07:51 -05:00
jason.woltje 54ec0005e0 row 271 (264d, #1776): BUILD.md r3 gate on 9e18a9aaf (sage-3017): cli and bus session-clear.test whole green (5/5, 19/19), cli suite 874/874, M14 killed by the T6 test's first lines() assertion at :365; no first-run red. Doc only. 2026-10-22 21:07:51 -05:00
jason.woltje 61e262b7c0 row 271 (264d, #1776): r3 packet carries mutants.py, M1-M14 with their anchors, as the gate applies them (duckworth-0212 C1). Doc and harness only; no src or test change. 2026-10-22 21:07:51 -05:00
jason.woltje 540b6f16ba row 271 (264d, #1776): r3, T6 per sage-3001. New cli test: a bus unavailable (broker-exited) at the exit proof, then at retirement, holds the clear with no retirement, successor launch or slot handed on, logs once, and resumes when the bus answers. BUILD.md maps the halt case to session-launch.test.mjs:372 and launcher.mjs:824, binds the Q198 hold to row 257 with duckworth-0210's carry, and names M14 (drop clearPass's try/catch) and its kill. No src change. Not run (no CLEAR). 2026-10-22 21:07:51 -05:00
jason.woltje e6a675ee83 row 271 (264d, #1776): BUILD.md gate results on e8af389e6 (sage-2991): 18 touched files, bus/seat/cli suites and every test-*.sh green, M1-M13 killed by assertions in the named tests; the row gate's T6 coverage open to Sage. Doc only. 2026-10-22 21:07:51 -05:00
jason.woltje e77635cebb row 271 (264d, #1776): BUILD.md run limits for the e567f949c gate (mos-1275, sage-2991); mutant lines moved one down past the B1 comment. Doc only. 2026-10-22 21:07:51 -05:00
jason.woltje 3fc8ccef1a row 271 (264d, #1776): duckworth-0201 B1: #ownerRefusal passes 'session.clear' to #granted, so the project and instance sit in their own slots and a live collaborator grant passes the retirement recheck. N4 setup shared; a second N4 test keeps the grant and expects retired plus the successor; M13 restores the defect. 264e carry noted at the N4 tests. Not run (no CLEAR). 2026-10-22 21:07:51 -05:00
jason.woltje 27d3266fff row 271 (264d, #1776): BUILD.md records mos-1336, Mos's approval under mos-1292 of the later3l, rows() and thread-shares migration test changes on the 3m to 3n rebase, with its conditions 2026-10-22 21:07:51 -05:00
jason.woltje 6bd67225b5 row 271 (264d, #1776): BUILD.md states the post-rebase '3m' grep result as measured 2026-10-22 21:07:51 -05:00
jason.woltje 14715d644a row 271 (264d, #1776): r2 on 0cbe2e9b3 (sage-2968): 3m to 3n migration and 3m engine tests from fixtures/schema-3m.sql; BUILD.md records the label change, the old-test changes (later3l, rows() and the thread-shares migration test outside the mos-1315 list, for Mos) and the mutant lines on the rebased tree 2026-10-22 21:07:51 -05:00
jason.woltje f9a9c9b5a0 row 271 (264d, #1776): BUILD.md defines M1-M12 with their expected kills 2026-10-22 21:07:51 -05:00
jason.woltje 34388223d8 row 271 (264d, #1776): launcher uncertain-path test with test-driven ticks and a stopped runner; start() takes stopTimeoutMs 2026-10-22 21:07:51 -05:00
jason.woltje 3adb391b57 row 271 (264d, #1776): N4 failed-clear test on a user's thread with raw first rows; BUILD.md notes the failed path has no verb route yet 2026-10-22 21:07:51 -05:00
jason.woltje 4da907cd5e row 271 (264d, #1776): T4 tests round 1, not run (slot held). Bus session-clear.test.mjs (15), cli session-clear.test.mjs (3, bwrap) with clear-adapter.mjs; BUILD.md maps each T4 item and names what is still open (failed clear, launcher uncertain path, mutants) 2026-10-22 21:07:51 -05:00
jason.woltje aa8fc490f5 row 271 (264d, #1776): clear context build round 1, not run (slot held). Broker: session.clear, session.cancel and session.operation, the fence on send/open/claim, cancel at arrival for routed messages, the drained receive and the end drain, trusted ops sessionClears and sessionClearExited/Uncertain/Retire/Start. Launcher: clearPass before the threads loop (stop, proof, retire, successor start through check()/start()), waiting on a live row 269 survivor. Old tests per mos-1315, rebased on row 206 (sage-2968): label 3m to 3n, future step 3n to 3o, 3m-3n.sql in the engine copies and file lists, ready lines, later3l and the rows() exclusions gain both tables as 206 did for thread_shares (mos-1292, approved in mos-1336), schema.test counts 25 tables and 96 triggers, COUNTED and T45 LISTED gain both tables after thread_shares (mos-1318, mos-1319), TESTER_VERBS pin (mos-1325), fixtures/schema-3m.sql 2026-10-22 21:07:51 -05:00
jason.woltje a9884dc75c row 271 (264d, #1776): schema step 3m to 3n (rebased on row 206's 3l to 3m, sage-2968), session_ops and message_cancels with 7 triggers; successor id pinned as a lowercase version 8 UUID for Huey (gizmoduck-0274) 2026-10-22 21:07:51 -05:00
jason.woltje 25c2c1a560 gizmoduck: row 271 design: duckworth-0171 C1 (start stages keyed on a report counter, work attempt in its own column) and C2 (cancelled in the stage CHECK at attempt 0 and closing the op, claim and cancels untouched by a pre-retire cancel, post-retire successor reading stated, race and held tests); N1 grep at build 2026-10-22 21:07:51 -05:00
jason.woltje 4f827a5e81 gizmoduck: row 271 design: session.cancel and the cancelled stage built in 271 (sage-2828 re-rules Q3 per D7:263-264), pre- and post-retire paths, cancel tests and the fence-release mutant; N2 refuses session-name-too-long at accept 2026-10-22 21:07:51 -05:00
jason.woltje 7dc8ff1bfa gizmoduck: row 271 design: T45 LISTED gains session_ops and message_cancels to match COUNTED (mos-1319) 2026-10-22 21:07:51 -05:00
jason.woltje 61df3061ed gizmoduck: row 271 design: duckworth-0170 B1-B4 folded (cancel at arrival for routed messages, claim refused while clearing, op namespace both ways, attempt key on start stages) and N1-N8 answered; cancel recorded as a departure from D7:263-264 2026-10-22 21:07:51 -05:00
jason.woltje b212182ed1 gizmoduck: row 271 design: both new tables join COUNTED in stack-release.sh, so T46 passes unchanged; schema.test count pins name the 2 tables and 7 triggers; T45 LISTED question to Mos (mos-1318) 2026-10-22 21:07:51 -05:00
jason.woltje dac64ff311 gizmoduck: row 271 (264d) design draft 2: drained acknowledged by the run's own receive at a turn boundary (a landing turn has unread 0 with a child running), SIGTERM only after it; successor <old>-N bound at request with a deterministic id; no cancel (sage-2826); pre-existing test change list per mos-1315 2026-10-22 21:07:51 -05:00
jason.woltje b329ad69f5 gizmoduck: row 271 (264d) design draft 1 in the packet: the threadIdle fence as the drain, the idle stop as the only signal, a session_ops journal and message_cancels in one schema step; Q1-Q4 for Sage and Mos 2026-10-22 21:07:51 -05:00
jason.woltje 8d4d4ec598 gizmoduck: row 270: the bus legacy test inserts its legacy thread by hand (sessions is append-only) and the test business has the assistant thread.create needs; not run 2026-10-22 21:07:51 -05:00
jason.woltje 5ddc36ca97 gizmoduck: row 270 (264c, #1775): completed Pi compactions counted into a host ledger beside the session store, keyed (entry id, timestamp) store-wide (sage-2806, sage-2814); launcher collects at run start and end under the workspace lock; session.list rows gain compactions through a runtime-injected reader; not run (slot held) 2026-10-22 21:07:51 -05:00
jason.woltje f510d73676 gizmoduck: rows 270 and 271 packets: the 264c count and 264d clear contracts pinned for row 272 (Huey), and the Pi 0.85.1 compaction source contract 2026-10-22 21:07:51 -05:00
jason.woltje 767bb62c7d docs: close remote credential and private review access findings 2026-10-22 21:06:29 -05:00
jason.woltje 6345aae3d8 docs: align editor graph, Markdown transition and archive with PRD d6 2026-10-22 21:06:29 -05:00
jason.woltje ee5f7b9ef8 docs: align O2 chapter conversion and Case 2 access with owner rulings 2026-10-22 21:06:22 -05:00
jason.woltje 0b923a2759 MVP readiness briefs (mos-1371/1372): FED R6 #1800, FED R4 #1801, FED R7 #1802, GitHub grant method #1803, Q228 grant scope #1804, 574 #1805, 573 #1806; docs only 2026-10-22 20:32:37 -05:00
jason.woltje b0a6838ca6 SESSIONS: Filbert Q195 O2 S0 review (#1798, c30914); doc only 2026-10-22 19:05:06 -05:00
790 changed files with 340554 additions and 1067 deletions

No files matched your search

+21
View File
@@ -5366,3 +5366,24 @@ Gander: after Duckworth-0100 design approval with C1-C5, prepared the two host-s
2026-10-22T23:23:42Z | Rocko, W4 #1799 | Before, D24-D26 had no separate exact DOCX citation/access contract. After, 15e91538f proposed a versioned schema, parser/story/view/refusal rules, live authorization/sharing and generic/git/session bypass closure, compatibility gates and 22 acceptance rows. Two JSON examples parse, diff check clean; no code or implementation acceptance. Megavolt review pending.
2026-10-22T23:55:11Z | Sage, W4 #1799 docs landing | Megavolt reviewed four rounds (CHANGES 15e91538f, 019a0ea5b, 54246cb32; APPROVE 994c3f7fb, #1799 c30868/c30870/c30876/c30884). Landed here as cherry-picks: docs/plans/2026-10-22_q195-docx-citations.md blob 2af460ab7 and docs/reviews/2026-10-22_q195-docx-citations.md blob bedde1716, both new files. 32 acceptance rows go to W4b; R4-N1 (re-migration after a pre-W4b restore keeps the rotated fence and needs owner confirmation) goes into W4b's brief and A32. W4 is design-approved only: its gate still needs Sage's W4b implementation brief, which waits for S0 (#1798) PASS. Q36 open, adoption closed. Docs only, no test reads these files.
2026-10-23T00:52:58Z | Gyro Q235-Q237 policy rewrite started, Vikunja 571, mos-1366/1367 | Before: approved O2 e36bce352 keeps Markdown originals at their paths and Q36 notices open; landed W4 2af460ab7 has the same boundary. Imported that byte-identical W4 baseline as 1ac76a417, from refactor 062646487, to make the policy-only revision diff explicit. Prepared P1-P6/B1-B4: human one-way per-story import, human-set source-repo archive, DOCX current reader, scoped format map/archived non-canon reads, W7 conversion publication after W4b/approved PRD/10-27 and Jason first-real-book go. Q234 exact CSP, mos-1363 and S0 M1-M14 retained. W4 locator/extractor, shares and restore-fence blocks compare byte-identical to the approved baseline. Scope/source review ongoing; Mos impact map must be folded before Fenton handoff. No build/browser/worker run, code, queue, private-book or live action.
2026-10-23T01:37:07Z | Gyro Vikunja571 final impact-map / mos-1372/1375 fold | Prepared parent/W4 rewrite against brain-redux d183246 impact map at stack 062646487. P1-P6/B1-B4 and engineering Q1-Q16 are mapped to eleven briefs. D9 replaces the earlier private O2-only context/per-document/share model: normal Case 2 access in any authorized thread/room, supporting writes intact, changed policy awaits PRD 1.17 approval. New DOCX story creation has the same opening gate as human per-story import. Host-only push to human-set off-host remote replaces the no-remote ban; remoteURL defaults unset and same-host bare is disallowed. W7 gates on Hermes #423 step5, W4b, PRD approval, post-10-27 and first-real-book go; owns conversion events COUNTED/--events/pre-conversion restore reconciliation, manifest order/next_chapter, creative role cite wording, archive/old-path edits and format/link/citation routing. Store+off-host acknowledgment precedes archive commit/push, then catalogue publication; post-push failures remain resumable pending with pinned source. Current checks pass: complete brief fields, policy/map coverage, exact Q234 CSP, locator/projection mechanics byte-equivalent except explicit authority wording, A01-A35 IDs, immutable map pin, four-doc scope and append-only logs. W4 authority/remote/recovery sections reopened for Fenton; older APPROVE not reused. No product/build/browser/worker/private-book/queue/live action. Earlier entry describing preserved shares/fence applies only to the pre-D9 intermediate draft; D9 now withdraws those unimplemented structures.
2026-10-23T01:37:55Z | Gyro 571 push guard | identity gyro/purpose push: exit 0 documented degraded-pass CANNOT_ASSERT credential-unresolvable, scratch audit gyro-q195-ci-queue-audit.jsonl; no credential fallback or CI-green claim.
2026-10-23T01:41:59Z | Gyro sage-3121 A1-A3 PRD alignment | Before: 8d209016b adds a current Connections graph, excludes new Markdown stories in converted books and defaults archiveFolder. After: parent/W4 align with PRD1.17 d6 sha256 886b93c571f87bfbb2f27ee3113b6800a32d8f89196d95ace33566031bee380a: clickable editor links only; graph/tests later pending J-b; new different-path Markdown in a converted book remains canon until import, only recreated converted old paths are unmapped; archive folder is human-set in library mapping with no default, missing folder refuses conversion. Static A1-A3/11-brief checks pass; W4 locator/extractor/access/remote/recovery blocks unchanged. Local commit only, push held for Sage's named gap while Gizmoduck holds 270+271 run5. No product/build/browser/worker/queue/live action. Fenton gets local SHA through shared object store.
2026-10-23T01:49:08Z | Gyro fenton-0012 B1/B2 and N1-N6, mos-1379 | B1: off-host remote must deny the real shared jason.woltje seat-helper credential as well as seat identities until #431; private visibility/dummy-token denial is insufficient; W3b/A16/A26 require that future fixture proof. B2 follows mos-1379: human-only editor.agentReadComments and editor.agentReadTrackedDeletions both default false, comment/original/markup reads/resolves/index/context refuse when off; final access remains D9 and no role allowlist/per-document grant. N1 staging-ref allowlist and retained private refused/published audit refs; N2 URLs literal with fidelity-report loss and confirmation; N3 future paths marked new or predecessor row; N4 rename/sharing wording fixed; N5 historical thread text not refreshed; N6 protected VM1012 backup cited in P5. Static checks pass, locator JSON/package/projection mechanics retained. Local commit only; HTTPS push still held for Sage's named gap. No credentials tested/read/printed, no product/build/browser/worker/queue/live action. Fenton gets exact local SHA/blobs.
2026-10-23T01:53:25Z | Gyro fenton-0013 N7 mixed-format chapter order | Fenton approved local 0f4fa4f93. D10 now explicitly orders every chapter ID regardless of Markdown/DOCX format, inserts new canon Markdown by row216 or human committed order, and preserves ID/position at import. W7 tests cover mixed traversal/insertion/import stability. Static diff/append-only checks and docs hook pass. Local commit only, narrow re-check requested, HTTPS push still held for Sage gap. No runtime, queue or live change.
2026-10-23T02:21:06Z | Sage, rows 270+271 landing, 571 landing, MVP rows | Before: 270 (#1775) and 271 (#1776) were approved on gizmoduck/row270-271-r4 49cee846e and 2b964a082 after combined gate C2 run 5 GREEN on 53406f3e4 (bus 873, seat 202, cli 905, ten scripts, 38/38 mutants). After: 33 commits cherry-picked onto 767bb62c7 as 7328da8ca, range-diff all "=", 40 paths identical to the candidate; 270 manifest f4174458 matches, 271 manifest 3ab1f5c8 matches on 29 paths, the other 4 moved under 270 and match its manifest. Done revs 3396/3398, #1775 c30962 and #1776 c30964 closed, P19 463 c861. 571 (Gyro, Fenton APPROVE) picked as ee5f7b9ef, 6345aae3d, 767bb62c7 (blobs 9382f85b, 7ec0897b), 1ac76a417 left out; N7 911dad2aa (Fenton-0014) picked after. Rows 293-299 added (574, FED R6, R4, R7, GitHub grant, Q228, 573), queue commit 253346e3c. Correction: the push sync step checked out O..S paths over the canonical worktree without testing for uncommitted edits, so any pending SESSIONS or BUILD-LOG line in the canonical checkout at 02:06Z would have been overwritten; the sync now skips edited paths. Schema 3n is not live (LIVE 0cbe2e9b3 at 3m).
2026-10-23T03:59:52Z | Sage, row 293 (Vikunja 574) landing and 3m-3n live window | Before: live 0cbe2e9b3 at schema 3m; 574 approved by Filbert (c30982, cdda41f5) on gander/v574-r2 a9cae2bd6 after run 2 GREEN on 6bfab273b (four files 153/0, seat 202/0, cli 905/0, 312 flagged commits with 0 maintenance children). After: Darkwing's window put live on 464010fbe at 3n (activation 20261023T034557Z-464010fbe4c6, 26/97/5/28, Console 7332 200, W9b pm ra38826f3c6e2 left live, STATE darkwing/window-migrate-3n 8708927e5); 574's six commits cherry-picked onto 464010fbe as e51d11640, range-diff all =, patch-ids equal, only docs differ from a9cae2bd6. #1805 closed c31013, P19 386 c887 and 574 c888. Residual: queue store.mjs, discord git.mjs, harness tools.mjs commit without the maintenance flags; no whole-root test covers them yet.
2026-10-23T05:47:17Z | Sage, row 292 (#1797) landing, idle-stop race row 302, rows 300/301, row 294 rounds 2-3 | Before: refactor 4a9c536e8; 292's gate on 0d0021454 hit one red at compactions-launch.test.mjs:229, ['session-invalid',22,null] where ['stopped',0,null] was expected, product and test unchanged. Gizmoduck read it as a race: threadIdle releases the claim, then the launcher sends SIGTERM, and a runner call in between gets not-holder and exits 22. Mos (mos-1411) rejected loosening :229, let 292 count one whole unedited green cli rerun, and allowed one rerun for that exact signature on other gates until the race row lands (hits logged on Vikunja 588). The 10-run diagnostic passed 10/10, but one runner log (r846b8d083502) showed not-holder then exit 22. After: the cli rerun was 910/910. 292 LANDED 6aab979e6 05:18Z (7 cherry-picks, range-diff all =, patch-ids equal), done rev 3447, #1797 closed c31038, Vikunja 588 c891. Briefs 86d5ac69b (R6-N1 #1807, R6-N4 #1808, rows 300/301) and e3ef1eaf6/fdedc56e2 (race, #1809, row 302). Row 302 design d1/d2 approved by Dewey with D1 (role.claim refuses a released run), c31044. Mos ruled landRelease folded in, code launcher-released, and four old-test lines moved to exact values (mos-1414/1415/1416): threads.test:394, runner.test:771-772, land.test:464. Row 294 round 2 stopped at webui G5 granted-user.test:269: max(seq) over an empty events table is NULL. Round 3 is one line, coalesce(max(seq),0) (mos-1417), Duckworth APPROVE c31045 rev 3462, gate pending. Queue commit 756284e8e (revs 3448-3456). Correction: two review-request attempts this window ran without MOSAIC_GITEA_CREDENTIAL_FILE exported and failed (3450 Launchpad, 3451/3452 Sage); the posted request was 3453/3454.
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.
@@ -0,0 +1,7 @@
{
"base": "01983cd3f",
"test": "packages/cli/tests/stack-release.test.mjs",
"base_is_byte_exact_prefix": true,
"old_assertions_changed": 0,
"old_console_refusal_text_unchanged": true
}
@@ -0,0 +1,48 @@
# Target config validation for every key implementation plan
Goal: #1797, mos-1353, brief f0e3dcdf4:docs/plans/2026-10-22_config-checks-any-key-brief.md. Base01983cd3f, branchgander/config-checks-any-key. Reviewer Duckworth. Queue number pending Sage; packet moves to queue-N when assigned. No Node, test or push before Sage gap/CLEAR. Rows270/271/203 land first; rebase under a new branch name before the gate.
Architecture: config_checks classifies missing/parseable/unreadable config independently of console presence. With a loader, every existing parseable config goes through the target's own validate. Missing config passes. Malformed JSON refuses. With no loader, allow only the oldest four top-level keys: configVersion, environment, dataRoot, execution. Evidence: c3d29e796:scripts/mosaic-config.mjs:114, the first loader commit, rejectUnknownKeys; row200 fixture's LOADER_OLD has the same list. A missing loader plus a later key refuses and names that key, without inventing validation support. The legacy public refusal code config-console-key and existing console-specific message stay byte-identical; new non-console refusals name the loader's first diagnostic and preserve restore-config-backup instruction. The target loader's resolved stdout is discarded. Its first stderr diagnostic is reported and may echo an invalid value.
Files: scripts/stack-release.sh config_checks/comment only; packages/cli/tests/stack-release.test.mjs appended regression coverage only; docs/TOOLS.md broadens the current console-only release-check description. Existing row200 tests and assertions stay unchanged. No fixture-module edit, flags, pointers, migration, schema, data, live unit or host change.
Tests to write before implementation, unrun until CLEAR:
- A target loader rejecting a non-console key refuses activate and rollback before any unit stop/start, pointer/unit/store mutation; one refused log entry; --plan preserves state and lists refusal. Reuse refused() and planOnly(). Use execution, already known to the current loader, to prove console-free dispatch before row270 integration; add compactionReadBytes/compactionStreams cases on final post270 base if needed.
- An accepting target loader is actually called with validate and the selected MOSAIC_CONFIG, succeeds activate/rollback without console, and resolved stdout is not leaked.
- Missing-loader target permits oldest-key config but rejects a later key with backup instruction. A stand-in rejecting the existing execution key exercises the generic target-validation branch; missing-loader later-key test may use console until final post270 base supplies non-console new keys.
- Missing file passes the isolated real config_checks function; malformed JSON refuses there, since load_config otherwise exits before this function. Tests extract only that function and provide copies/path/check_refuse stand-ins, never live state.
- Existing console-key row200 tests and malformed-load test run whole unchanged.
Mutants, each unique target, syntax preflight and byte-identical restore:
M1 restores the console-only skip, killed by the named non-console activate/rollback refusal test.
M2 ignores failed target validation, killed by the same refusal assertions.
M3 allows a missing-loader target with a later key, killed by the explicit missing-loader regression.
M4 treats malformed JSON as absence, killed by isolated parse guard test.
M5 skips the loader for an oldest-key config, killed by accepting-loader invocation witness.
Gate after static review and required rebases: intended RED/GREEN; touched stack-release.test.mjs whole, CLI suite whole and every scripts/test-*.sh whole; M1-M5 with fresh passing controls, no timeout counted as kill, restored bytes/status before next. TMPDIR mktemp-d /mnt/storage/scratch/tmp/gXXX; pipefail/tee and busy check before each start. Node timeout-k10 uses at least3x measured duration plus margin; stack-release prior full receipt around584s implies at least1871s, to be recorded from actual receipts before CLEAR. Shell3x table retained with receipts. No test ran and no behavior passes claimed.
Review focus: parser races after load_config; target stderr naming only the refused key, stdout never persisted; current versus target loader selection; unknown key with no console; missing loader compatibility set from immutable history; upcoming row270 loader-list fixture drift. Final integration audits every test dependency and hash pin against the named base. Session registration remains Sage's.
Implementation ready, unrun. Four appended tests cover full activate/rollback refusal and plan; actual accepting validate witness/configpath and stdout nonleak; oldest-only missing loader with both compaction keys; missing/invalid JSON isolated realfunction. Stand-in loaders are ESM, matching .mjs. Every old test byte is preserved as a prefix. Existing console refusal text including missing-loader diagnostic is unchanged. Missing-loader compatibility is top-level key compatibility only; current load_config still validates the whole config before normal release operations. Three-path manifest, no fixture-module changes. Static target uniqueness M1-M5 passes. No Node parse, Bash execution or behavior run. Exact full compaction activate/rollback cases must be added against post270 loader, before final gate.
Execution state:
- [x] Read brief, config_checks and row200 assertions.
- [x] Pin oldest key set from immutable loader history.
- [x] Write regression tests, implement bounded scope, prepare unique mutants.
- [ ] Duckworth static review.
- [ ] Move packet to queue-N on assignment, rebase after270/271/203 and add full compaction-key cases.
- [ ] On CLEAR run intendedRED/GREEN, touched whole file, CLI whole, M1-M5, ten shells; commit/push records only when authorized.
## Duckworth0229 static approval, gate conditions
Source0585b3213, packet e7371025f, manifestd6226d28 approved by static read, note a5a717391:agents/duckworth/work/row1797/ROUND1-0585b3213.md. No runtime proof yet.
C1: after270/271/203 land, rebase under a new branch name and open a new static round. Add exact compactionReadBytes and compactionStreams full activate/rollback refusals. The existing LOADER_OLD uses the current loader plus concat after270, so it is not a pre270 witness; the new test requires its own pre270 stand-in. Reviewer checks the integrated manifest/test before CLEAR. N3 joins that delta: compactionStreams fixture value1024, matching the real type, instead of ['messages'].
C2: every existing B/C1/C release now validates its copied real loader, including external/upgrade suites. Any old CLI red is a change-related suspect and goes to Mos/Sage under mos-1272; no automatic placement as an unrelated fixture.
N1 console plus another refused key retains the old console text by design. N2 missing-loader wording is retained pending final integration review. N4 corrected above: only resolved stdout is suppressed; first stderr may echo a value, so no blanket secrecy claim. No runtime/Node/queue/push authorization is inferred from static approval.
@@ -0,0 +1,3 @@
eea06caad07c746d194f793603052b210e437b7184009f8b1617c88db49a5517 docs/TOOLS.md
a35c49c5703e02f35073450e4a98e1b90cffcda581490f97a70cbdc6d2afee59 packages/cli/tests/stack-release.test.mjs
f8fe1348796d40a096362fb0c6d5072c15ca68ff8fe10384a3eaa708eb92c150 scripts/stack-release.sh
@@ -0,0 +1,9 @@
{
"reviewer": "duckworth",
"verdict": "static approve, conditions C1-C2",
"message": "duckworth-0229",
"source": "0585b3213",
"manifest": "d6226d28",
"note": "a5a717391:agents/duckworth/work/row1797/ROUND1-0585b3213.md",
"next": "wait for row number and post270/271/203 base, new integration static round before gate"
}
@@ -0,0 +1,5 @@
{
"docs/TOOLS.md": "eea06caad07c746d194f793603052b210e437b7184009f8b1617c88db49a5517",
"packages/cli/tests/stack-release.test.mjs": "a35c49c5703e02f35073450e4a98e1b90cffcda581490f97a70cbdc6d2afee59",
"scripts/stack-release.sh": "f8fe1348796d40a096362fb0c6d5072c15ca68ff8fe10384a3eaa708eb92c150"
}
@@ -0,0 +1,14 @@
{
"issue": 1797,
"row": "pending Sage assignment",
"branch": "gander/config-checks-any-key",
"base": "01983cd3f",
"source": "0585b321309e4d8a199afb1a1024cf6091f56770",
"manifest": "d6226d281c778677a45e90993bbd9c985de89ba0f870d4a3ca12b6923a497e4a",
"runtime": "NOT RUN; no Node, tests or push authorized",
"after": [
270,
271,
203
]
}
@@ -0,0 +1,32 @@
[
{
"id": "M1",
"occurrences": 1,
"before": "f8fe1348796d40a096362fb0c6d5072c15ca68ff8fe10384a3eaa708eb92c150",
"after": "804a86442527f2728f633f485eaeca02552df66a34350eac5101127046415188"
},
{
"id": "M2",
"occurrences": 1,
"before": "f8fe1348796d40a096362fb0c6d5072c15ca68ff8fe10384a3eaa708eb92c150",
"after": "1c2acb6397e29ab898d8a89bc5bc691a294be749ca7d7f7897c83ec1b3e9f9ef"
},
{
"id": "M3",
"occurrences": 1,
"before": "f8fe1348796d40a096362fb0c6d5072c15ca68ff8fe10384a3eaa708eb92c150",
"after": "954c9a9735904e1c566d844001b2e85c13cd16eb16e7b4b91b752974bb6dc754"
},
{
"id": "M4",
"occurrences": 1,
"before": "f8fe1348796d40a096362fb0c6d5072c15ca68ff8fe10384a3eaa708eb92c150",
"after": "953d91bf28073b11e4bc5a6da516a0db1b8dfff892083cd3e6fcebe9c47b6bbf"
},
{
"id": "M5",
"occurrences": 1,
"before": "f8fe1348796d40a096362fb0c6d5072c15ca68ff8fe10384a3eaa708eb92c150",
"after": "310c32b16f0fc554d5a7ffeeb0742ea7dd9fc84e1ddafabb25d7ca3f449865ef"
}
]
@@ -0,0 +1,37 @@
[
{
"id": "M1",
"file": "scripts/stack-release.sh",
"old": " [ \"$key\" != 1 ] || return 0\n if [ \"$key\" != 0 ]; then",
"new": " [ \"$key\" != 1 ] || return 0\n [ \"$extra\" = '\"console\"' ] || return 0\n if [ \"$key\" != 0 ]; then",
"killer": "config-any-key: a non-console target refusal"
},
{
"id": "M2",
"file": "scripts/stack-release.sh",
"old": "elif out=\"$(MOSAIC_CONFIG=\"$cfg\" node \"$loader\" validate 2>&1 >/dev/null)\"; then return 0",
"new": "elif out=\"$(MOSAIC_CONFIG=\"$cfg\" node \"$loader\" validate 2>&1 >/dev/null)\" || true; then return 0",
"killer": "config-any-key: a non-console target refusal"
},
{
"id": "M3",
"file": "scripts/stack-release.sh",
"old": " [ -n \"$extra\" ] || return 0",
"new": " return 0 # drop missing-loader later-key refusal",
"killer": "config-any-key: missing-loader copies"
},
{
"id": "M4",
"file": "scripts/stack-release.sh",
"old": " if [ \"$key\" != 0 ]; then\n check_refuse config-console-key",
"new": " if [ \"$key\" = 99 ]; then\n check_refuse config-console-key",
"killer": "config-any-key: missing config passes but malformed JSON refuses"
},
{
"id": "M5",
"file": "scripts/stack-release.sh",
"old": " if [ ! -f \"$loader\" ]; then",
"new": " [ -n \"$extra\" ] || return 0\n if [ ! -f \"$loader\" ]; then",
"killer": "config-any-key: accepting loaders run validate"
}
]
@@ -0,0 +1,47 @@
{
"authority": "mos-1409 via sage-3181",
"base": "4a9c536e8",
"path": "packages/cli/tests/case1-accept.test.mjs",
"old_line_replacements": [
{
"old": " if(fault==='inner')assert.ok(probeSeconds>=1.25&&probeSeconds<2.75,`${mode}: probe ${probeSeconds}s after baseline ${baselineSeconds}s`);",
"new": " if(fault==='inner')assert.ok(probeSeconds>=1.25&&probeSeconds<2.75,`${mode}: direct probe ${probeSeconds}s; baseline ${baselineSeconds}s is diagnostic only`);",
"change": "diagnostic message only; numeric comparisons and strictness unchanged"
},
{
"old": " assert.ok(probeSeconds>=3.25&&probeSeconds<4.75,`${mode}: probe ${probeSeconds}s after baseline ${baselineSeconds}s`);",
"new": " assert.ok(probeSeconds>=3.25&&probeSeconds<4.75,`${mode}: direct probe ${probeSeconds}s; baseline ${baselineSeconds}s is diagnostic only`);",
"change": "diagnostic message only; numeric comparisons and strictness unchanged"
},
{
"old": " const probeSeconds=seconds-baselineSeconds;",
"new": " let probeSeconds=seconds;\n if(timingFile)assert.doesNotThrow(()=>{probeSeconds=readProbeSeconds(read(timingFile));},'P10 observer pair is required');",
"change": "approved observer plumbing or probeSeconds source"
},
{
"old": "function run(h, extra = {}, argv = [\"--business\", \"mosaic-stack\", \"--args\", \"/etc/mosaic-stack/dev.args\", \"--claude-pin\", CLAUDE_PIN, \"--node-pin\", NODE_PIN, \"--root\", h.root]) {",
"new": "function run(h, extra = {}, argv = [\"--business\", \"mosaic-stack\", \"--args\", \"/etc/mosaic-stack/dev.args\", \"--claude-pin\", CLAUDE_PIN, \"--node-pin\", NODE_PIN, \"--root\", h.root], script = SCRIPT) {",
"change": "approved observer plumbing or probeSeconds source"
},
{
"old": " const r = spawnSync(SCRIPT, argv, {",
"new": " const r = spawnSync(script, argv, {",
"change": "approved observer plumbing or probeSeconds source"
},
{
"old": " const start=performance.now(),r=run(h),seconds=(performance.now()-start)/1000;capture();",
"new": " const start=performance.now(),r=run(h,timingFile?{ROW299_TIMING_FILE:timingFile}:{},undefined,observedScript),seconds=(performance.now()-start)/1000;capture();",
"change": "fault run selects private copy only for inner/outer; default SCRIPT and overflow remain"
}
],
"only_removed_assertion_lines_are_two_diagnostic_messages": true,
"numeric_bands_unchanged": {
"inner": "[1.25,2.75)",
"outer": "[3.25,4.75)"
},
"baseline_status_and_clean_session_lines_byte_identical": true,
"all_other_original_assertion_lines_preserved": true,
"guard_7000_unchanged": true,
"new_assertions": "copy reversal, observer variable isolation, stream/status/EXIT preservation, strict records, required pair",
"runtime_status": "NOT RUN; no Node or test until CLEAR"
}
+28
View File
@@ -0,0 +1,28 @@
{
"row": 299,
"issue": 1806,
"vikunja": 573,
"base": "4a9c536e861f1d9f9a018019b3ac4519d65eccf0",
"branch": "gander/row299-p10",
"status": "IMPLEMENTED STATIC; source 1ec2b9765; no Node/test/push",
"authority": "mos-1409, sage-3181; Filbert implementation review pending",
"files": [
{
"path": "packages/cli/tests/case1-accept.test.mjs",
"git_blob": "c196b40981056963ed924a09f649cfe8e99b34c6",
"sha256": "1e8af0656707d93dedade923bf60556022dc7121c43761876a5d7e02731c14aa"
},
{
"path": "packages/cli/tests/case-sudo-fixture.mjs",
"git_blob": "866c6c0d229a1fc1e9401ee8bb5522ac8cb01ebc",
"sha256": "eac5c83f43056bdeb5781101307e17d4bc01f03e97e02f4f5e930436d7e43535"
},
{
"path": "scripts/case1-accept.sh",
"git_blob": "05cb249ea2217d1a542438b597d382669acf8a9b",
"sha256": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2"
}
],
"source": "1ec2b97650849b90f41a8e1d1190f609de312d49",
"execution": "HELD for Sage CLEAR; no stress process; ambient load >=4 is target only"
}
+98
View File
@@ -0,0 +1,98 @@
# Row 299 / Vikunja 573: direct P10 timing
> Execution method: Gander implements inline after Mos's old-test ruling and Filbert's static read. No delegation. Static implementation authorized by mos-1409 / sage-3181. Every runtime step remains held for CLEAR.
**Goal:** Measure whether P10 takes its two-second inner path or four-second outer path under load, without subtracting unrelated work from another run.
**Architecture:** Add a test helper that makes a private, instrumented copy of the current acceptance script. Two root-side observer statements bracket only the P10 capture's actual bounded wait. Read a complete monotonic begin/end pair from a separate fixture file, while all existing refusal, residual and cleanup assertions still examine the real acceptance output.
**Tech stack:** Existing Node test runner, Bash builtins, Linux /proc/uptime. No new package, interpreter, product hook or live host action.
**Spec:** docs/plans/2026-10-23_mvp-readiness-rows.md, "Brief: 573, the P10 hop band"; sage-3175. Base 4a9c536e8, branch gander/row299-p10. Reviewer Filbert; gate owner Sage. Row 293 is done. Queue claim is held because it executes Node, forbidden in the present slot.
## Constraints and current status
- Static implementation only, authorized by mos-1409. No Node, tests, HTTPS Git, queue call or push has run for 299. No production edit.
- Mos approved the measurement semantics in mos-1409 via sage-3181 under mos-1272. The numeric bands stay unchanged.
- All script/supervisor bytes, 2/4-second budgets, 128-byte cap, exact reason assertions, no-observed assertion, hop residual assertion and cleanup assertions remain authoritative.
- Keep the same healthy baseline status and `baseline leaves no session` assertions. It may remain as an independent healthy control and diagnostic; it no longer supplies the clock value being asserted.
- No extra retry, smoothing, percentile selection, ignored red, clock fallback, or widened band. Missing clock evidence fails.
- Tests use a short TMPDIR directly under /mnt/storage/scratch/tmp/gXXXXXX, never /tmp. No live units, ports, credentials or instance state.
## Source of the band and evidence
1. The original row 253 test timed the full acceptance run. Row 276 exposed it after adding stdout spooling: the old inner `<4 s` whole-run bound already failed 2/5 before that delta and 5/5 after it. Mos's mos-1350 ruled that tests 9 and 10 must measure the probe's cost, offering probe stamps or a same-mode no-fault baseline. See agents/gander/work/queue-276/BUILD.md:120-145 and ASSERTION-PRESERVATION.json.
2. We chose baseline subtraction in 135bb8fae (original source 6f8c5653a). e06130fc0 added the required clean baseline check. Current test lines 371-388 measure two separate full runs and compute `probeSeconds=seconds-baselineSeconds`.
3. The adopted windows are inner [1.25,2.75) and outer [3.25,4.75): 0.75 s around the configured 2/4 s budgets, with 0.5 s between windows. Duckworth-0218 accepted them; the isolated proof in queue-276/BUILD.md reported inner exec 2.033..2.171, inner hop 2.055..2.135, outer exec 3.758..3.961, outer hop 3.736..3.911. Those are historical evidence, not a new run or carried result.
4. The recorded failure is agents/gizmoduck/work/queue-270/BUILD.md:629-636: run 3 on 53406f3e4 had CLI 904/905, inner hop estimate 1.08 below 1.25. The file was unchanged. Its isolated whole rerun passed 50/50 at load 3.19 (mos-1367). No other seat's scratch has been read for this packet.
5. Production is scripts/case1-accept.sh:744, `tester_capture 2 4 128`. Its inner timer is after the uid drop; its outer timeout is started at :238 and waited at :244. The capture validates tools and creates its private files at :233-235, before the timer is armed. Exact refusal mapping is :224-229. The stalled-supervisor case remains an explicit same-uid residual.
Static mechanism: let H be the healthy probe cost, I the true faulty wait and U the rest of the full run, including scheduling delays. The current estimate is `(I + U_fault) - (H + U_baseline)`. It contains `U_fault-U_baseline-H`, so it can underestimate I when the baseline gets more delay. The 1.08 report is consistent with that mechanism; we do not invent the separate component timings absent from the committed record. A direct bracket removes the unrelated subtraction; execution must still establish its margins under the agreed load.
## Approaches considered
- Repeat baselines or use a median: reduces some noise but still subtracts two unrelated schedules and adds work to every whole-file gate. Reject as the fix.
- Stamp in the peer Python or sudo fake: the inner/outer timer is already armed before a delayed child reaches the stamp, so it can measure only the remaining budget and undercount again. Reject.
- **Recommend a direct root-side bracket in a private script copy.** Begin immediately before the actual outer timeout launch, after validation; end immediately after its wait, before unrelated post-checks. Includes sudo dispatch, the inner wait and its cleanup, or the outer timeout. Excludes preceding functional checks, the healthy run, metadata work before capture, and tool-validation cost. It measures the same timing distinction, using both existing fake sudo modes.
Mos approved this approach in mos-1409. Timing still includes kernel scheduling and inner cleanup. Arbitrary starvation cannot be given a hard wall-time guarantee; an overshoot remains a red for placement, not permission to retune.
## Proposed files and interfaces
- New packages/cli/tests/case-p10-timing-fixture.mjs: `instrumentP10Probe(source)` returns a copy of the current script with exactly two observer blocks; `readProbeSeconds(text)` returns `(end-begin)` in seconds from two validated centisecond readings.
- Existing packages/cli/tests/case1-accept.test.mjs: an optional script-path argument to run(), defaulting to SCRIPT for every current caller. Only inner/outer P10 fault runs execute the private copy. The baseline still uses SCRIPT. Overflow stays on SCRIPT and unchanged.
- agents/gander/work/queue-299/: plan, assertion-preservation record, manifest, raw logs, load/timing receipts and mutant records after authorization. No production path in the candidate manifest.
Observer details:
1. Locate exactly one `tester_capture() (` function, scoped before the unique row276-legacy marker. Each insertion anchor must occur once within that slice. Never apply an unscoped global replace.
2. Just before :238 and just after :244, use shell `read` on /proc/uptime plus `printf` to append `begin <uptime>` / `end <uptime>` to ROW299_TIMING_FILE, only when `maximum` is 128. Selecting the existing probe cap, rather than the 2/4 budgets, keeps the observer active when a timer mutant changes a budget. Config query uses 4096 and emits no probe pair.
3. Read and printf are Bash builtins: no new process or Python/Node startup inside the timed span. Preserve `$rc` and every original command, redirection and heredoc byte. Do not emit observer bytes on stdout/stderr. The file is private fixture evidence, not a product authority channel.
4. The copy retains the original absolute /proc reads and the --root fixture seam. The script has no relative self-path imports. Write the copy under h.dir with executable mode and pass the private timing path only to that run. No product script is rewritten.
5. Reverse the two recorded insertions and assert byte equality with freshly read SCRIPT. This applies to the current script, including a deliberately mutated source, rather than a stale frozen healthy copy. The same source/copy comparison and unique anchors fail closed on drift.
6. Parser requires exactly one newline-terminated begin and end pair, in that order, each `<integer>.<two digits>`, and end strictly above begin. No extra pair, missing value, NaN or negative interval is accepted. Use integer centiseconds before converting to seconds. A 10 ms clock resolution is much smaller than the existing 0.5 s window gap.
7. Keep inner [1.25,2.75) and outer [3.25,4.75) exactly. Change only the source of probeSeconds and its diagnostic description. Preserve every existing status/reason/no-observed/residual/cleanup assertion, including the healthy baseline checks. The existing 7 s fixture safety guard stays unchanged and remains cleanup only, never proof of an outer timeout. If it intervenes or masks a measurement, stop for Sage/Mos; do not silently extend it.
## Review focus
- A delayed healthy baseline cannot change the measured interval: it is diagnostic only. No baseline value enters readProbeSeconds or a timing assertion.
- A child delayed after timer arming is not used as the start observer. The begin read precedes timer launch in the root-side capture copy.
- Missing/duplicated/reversed records fail before a band assertion. Add named observer-record tests; no fallback to the old arithmetic.
- A timer mutant reaches the actual observer copy. Source reconstruction and cap-based selection prevent budgets changed to 1/3 seconds from disabling observation.
- Observer code must not change stdout, refusal status, cleanup or trust. Preserve original source bytes by inverse comparison and all original non-timing assertion lines by an assertion-preservation receipt.
## Implementation and evidence sequence (held)
- [x] Proposal sent in gander-0183; mos-1409 / sage-3181 approve the measurement change. Filbert accepts the observation points and supplies implementation checks I1-I5.
- [x] Source 1ec2b9765 adds the helper and observer wiring, plus source/variable, streams/status/trap, and record-validation tests. ASSERTION-PRESERVATION.json lists all six old line replacements; only two original assertion messages change. No runtime or syntax claim.
- [ ] Static review on the committed candidate and manifest. Prove scripts/case1-accept.sh and scripts/case2-unit.sh are byte-identical to the approved base, and no unrelated assertion moved. Finalize all mutant anchors with exactly-one checks.
- [ ] On Sage CLEAR, first record a passing named base for each killer and then M1-M6 from MUTANT-PLAN.json. Report the actual assertion killed. Every restore is byte-identical and git status is checked. A timeout or survivor stops for placement, not a kill.
- [ ] Run case1-accept.test.mjs whole at least three times under load, then CLI whole, as the brief requires. Record ambient load at each of the three starts and throughout each file; >=4 is a target, never a wait condition (mos-1409). No stress process. The whole CLI suite is the required loaded proof; record its load and all exec/hop direct intervals, plus min/max. Do not hold the slot for load.
- [ ] Record all timeout limits before launch: per-node-file timeout -k 10; use at least ceil(3x longest receipt)+120, with 900 s for an unknown file. Whole case1 gets 1200 s from the row293 receipt; stack-release 2400 s from its 683.647 s historical receipt; recheck measured maxima before the current gate. Print the full CLI file list and run the package whole with its normal test-file concurrency, so the suite itself supplies the required loaded proof. Use timeout -k 10 5400 around that whole invocation: 3x the row293 1367.764 s CLI receipt plus 120 is 4224 s, below 5400. TMPDIR is fresh short scratch. No runs are authorized now.
- [ ] Any old-test red, reason mismatch, fixture-guard intervention, timeout, or survivor goes to Sage/Mos before edits or retry. No carried result from row293. Commit and publish records only in Sage's gap, claimant review move only in a queue gap. Filbert reviews; Sage gates and lands.
## Static self-review
The proposal meets the brief's source/fix/mutant items and preserves the 2/4 s distinction and separated numeric windows. No runtime or load-stability claim is made. Timing-copy instrumentation is the main review risk: Filbert must approve the two exact observation points and source-byte reconstruction before execution. Mos approved the changed old-test measurement semantics in mos-1409. The 7 s whole-run fixture guard and scheduling overshoot remain explicit risks to measure, not hidden assertions to relax. No other test or supervisor repair is bundled.
## Implemented static: mos-1409 / sage-3181 and Filbert I1-I5
Source 1ec2b9765 on base 4a9c536e8. The two observers use `read -r row299_up row299_spare < /proc/uptime`, never the fixture root. Both guard cap 128 and a nonempty `${ROW299_TIMING_FILE-}`. printf is redirected to that absolute private fixture file; grouped stderr goes to /dev/null; errors leave absent evidence which the parser refuses. No observer assigns a production capture variable, changes rc, or touches a trap. New tests assert row299-only read targets and no other assignment; preserve explicit stdout/stderr bytes, exit 87 and the EXIT trap; and reject missing begin/end, duplicate pair, reversed order, nonnumeric/equal/backward readings, and a missing/extra final newline.
Only inner/outer fault runs receive the absolute timing path and executable 0700 private copy. Every such run reverses its two insertions and compares to a fresh read of SCRIPT, including any timer mutant. Baseline and overflow use SCRIPT; baseline status and clean-session assertions remain unchanged. The clock pair is required by assert.doesNotThrow before applying the unchanged bands. baselineSeconds stays diagnostic only. Capture launch insertion keys on its unique LC_ALL=C prefix rather than the timeout command itself, so M4 (outer removal) reaches execution instead of an anchor refusal.
M1-M6 have one target each in their defined scope. M5 now suppresses only the begin printf, preserving the constant block and reversal check so the named inner test must reject an end-only record. M6 admits equal readings so the record-validation test must catch it. M1 retains the known startup-overhead risk: save its interval and stop on a survivor, without changing the ruled bands. All production/shared fixture bytes are unchanged. Manifest is the two test/helper paths only. No Node, syntax preflight, test, mutant, queue call, or HTTPS operation has run. The implementation is unverified until Filbert's static read and Sage CLEAR.
## sage-3255 integration, static only
Rebased all three commits from 4a9c536e8 onto 80793d824 under new branch gander/row299-8079, preserving gander/row299-p10. No conflict. The range-diff has three equal pairs and all per-commit stable patch-ids match. Source is e6751ecab; both manifest blobs equal the approved 1ec2b9765 blobs, so digest 277ace0b is unchanged. Direct test/helper, product case1 script, shared CLI helper and sudo-fixture paths have zero drift over 4a9c536e8..80793d824. Row294's CLI config/access and stack-release-test changes are in the new base and covered by the required full CLI suite. No package/source/test implementation changed in this integration. Full records in integration-8079/.
Gate remains held for CLEAR. Ambient load >=4 remains a target, not a wait condition under mos-1409; no stress process. Record each of three whole case1 starts and the whole CLI suite's load and per-mode direct timings. Numeric windows and the 7 s guard remain fixed. Any red, guard intervention, timeout, survivor or overshoot stops to Sage for Mos before edits or retry.
## Gate run 1: sage-3268, 2026-10-23
GREEN on ffa93b054 / 277ace0b. Three whole case1 runs 53/0/0 each; whole CLI 917/0/0 across 59 files. Total 1076/0/0, no cancelled/todo. M1-M6 all killed at their intended assertions, with byte-identical clean restores. No unmutated guard intervention, external timeout, retry or carry. UTC run 07:26:52–07:50:16 (1404 s). CLI load reached 7.17; direct CLI intervals inner exec/hop 2.27/2.27, outer exec/hop 4.01/4.01.
M4 follows sage-3273 / mos-1426: the 7 s fixture guard returned, then exact outer-reason assertion at case1-accept.test.mjs:445 failed on probe-inner-command. No timeout or cleanup-only kill. M1 measured 1.23 s, preserving the noted narrow kill margin. Sweep found zero gate residuals; four MCP harness processes predate this run. Full records, load samples, assertion locations and named base evidence are in run1/RESULTS.md and run1/results.json. Manifest remains unchanged.
@@ -0,0 +1,2 @@
7ac9d29281d4076bf2e00b7a07294cd4519d7ae9f97c4f6ddc1d22440c9b071a packages/cli/tests/case-p10-timing-fixture.mjs
685cf69c741540240c5b414e1907e624cbc59656541316f178d377472fad34a2 packages/cli/tests/case1-accept.test.mjs
@@ -0,0 +1,73 @@
{
"status": "Static definitions finalized; no mutant executed",
"mutants": [
{
"id": "M1",
"path": "scripts/case1-accept.sh",
"old": "tester_capture 2 4 128",
"new": "tester_capture 1 4 128",
"killer": "row253 C4 P10 inner reason holds under both sudo models",
"expected": "exact inner-timeout reason remains valid, but direct probe interval is below 1.25 s; ERR_ASSERTION on the existing lower-band check",
"static_anchor_count": 1,
"source_sha256": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
"receipt_requirement": "Record direct interval even if it survives; startup overhead can erase the 0.25 s kill margin. Survivor stops to Sage/Mos; bands unchanged."
},
{
"id": "M2",
"path": "scripts/case1-accept.sh",
"old": "tester_capture 2 4 128",
"new": "tester_capture 3 4 128",
"killer": "row253 C4 P10 inner reason holds under both sudo models",
"expected": "exact inner-timeout reason remains valid, but direct interval exceeds the unchanged 2.75 s top; ERR_ASSERTION on upper-band check",
"static_anchor_count": 1,
"source_sha256": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2"
},
{
"id": "M3",
"path": "scripts/case1-accept.sh",
"old": "tester_capture 2 4 128",
"new": "tester_capture 2 3 128",
"killer": "row253 C4 P10 outer reason holds under both sudo models",
"expected": "stalled supervisor still gives exact outer-timeout, but direct interval falls below 3.25 s; ERR_ASSERTION on outer lower-band check",
"static_anchor_count": 1,
"source_sha256": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2"
},
{
"id": "M4",
"path": "scripts/case1-accept.sh",
"scope": "tester_capture function only",
"description": "Remove the trusted outer GNU timeout from the capture invocation, keeping the fixture guard",
"killer": "row253 C4 P10 outer reason holds under both sudo models",
"expected": "the fixture safety guard permits return but the exact probe-outer-timeout assertion fails; never count external command timeout or cleanup alone as a kill",
"scope_begin": "tester_capture() (\n",
"scope_end": "# row276-legacy-begin",
"old": "LC_ALL=C \"$TS_TIMEOUT\" --verbose --signal=KILL \"${outer}s\" \"$TS_BASH\" -c ",
"new": "LC_ALL=C \"$TS_BASH\" -c ",
"static_anchor_count": 1,
"source_sha256": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2"
},
{
"id": "M5",
"path": "packages/cli/tests/case-p10-timing-fixture.mjs",
"description": "Suppress the begin printf while retaining the inserted begin block and reversal check",
"killer": "row253 C4 P10 inner reason holds under both sudo models",
"expected": "the existing inner test requires a valid pair with assert.doesNotThrow; end-only evidence fails ERR_ASSERTION",
"old": "printf 'begin %s\\\\n' \"$row299_up\" >> \"$ROW299_TIMING_FILE\";",
"new": ":;",
"static_anchor_count": 1,
"source_sha256": "7ac9d29281d4076bf2e00b7a07294cd4519d7ae9f97c4f6ddc1d22440c9b071a"
},
{
"id": "M6",
"path": "packages/cli/tests/case-p10-timing-fixture.mjs",
"description": "Accept an equal begin/end clock pair",
"killer": "row299 P10 observer records are complete and ordered",
"expected": "the equal-readings case in the named record test expects refusal and fails ERR_ASSERTION",
"old": "end <= begin",
"new": "end < begin",
"static_anchor_count": 1,
"source_sha256": "7ac9d29281d4076bf2e00b7a07294cd4519d7ae9f97c4f6ddc1d22440c9b071a"
}
],
"restore": "Restore byte-identical source/test/helper files and require clean git status between cases. Timeout is a stop, never a kill."
}
@@ -0,0 +1,7 @@
b0ca08db7968e92d417960e58112d767d54902e4d1121f97d4eef2152a2340eb agents/gander/work/queue-299/ASSERTION-PRESERVATION.json
3cc775b0c0e78d0aca5396aba4380a0bdd38d421b144dceea4124323ddfd1bc4 agents/gander/work/queue-299/BASE.json
132cd793d5f9daa93c879d073dd1fa1d1568b07851b707a3c0b519ed64e9a63a agents/gander/work/queue-299/BUILD.md
277ace0b4274970d5bd4c05cf8fe99aa1e7ebc469a719e4cefcb334a75d3865d agents/gander/work/queue-299/MANIFEST.sha256
ff72c99b4b73cfe2acbaf79eb9aed442c855f011fe662722acba7f8a388d3f9b agents/gander/work/queue-299/MUTANT-PLAN.json
7657e629dab262aaeb46004526ede586a167675558a72b6177abf7e646ce6885 agents/gander/work/queue-299/integration-8079/CHECKS.json
b6632cb58ccfc79262f98322682cfd2887e102436cdd1af9e8ac37d2a482b9d8 agents/gander/work/queue-299/integration-8079/range-diff.txt
@@ -0,0 +1,35 @@
{
"base": "80793d824e05baaef4820f4be7790aba55971b6f",
"rebased_source": "e6751ecab",
"rebased_tip_before_records": "bc7da6814",
"conflicts": [],
"range_diff": "all three pairs equal",
"patch_ids": [
{
"old": "31c847580",
"new": "482adc255",
"patch_id": "224e6ce7677320cf362189ad2746c481176c3429"
},
{
"old": "1ec2b9765",
"new": "e6751ecab",
"patch_id": "dec31bc01820a54fa4001fda4886905576a6b692"
},
{
"old": "9872b5ab5",
"new": "bc7da6814",
"patch_id": "f335941005f9c113aa09a800a3569d2447be3464"
}
],
"checked_paths": [
"packages/cli/tests/case1-accept.test.mjs",
"packages/cli/tests/case-p10-timing-fixture.mjs",
"scripts/case1-accept.sh",
"packages/cli/tests/helpers.mjs",
"packages/cli/tests/case-sudo-fixture.mjs"
],
"drift": "",
"manifest": "277ace0b4274970d5bd4c05cf8fe99aa1e7ebc469a719e4cefcb334a75d3865d",
"test_blobs_match_static_approved_1ec2b9765": true,
"runtime": "Not run; awaiting Sage CLEAR. No queue/Node/tests executed."
}
@@ -0,0 +1,3 @@
1: 31c847580 = 1: 482adc255 docs(row299): propose direct P10 wait timing for mos-1272 review
2: 1ec2b9765 = 2: e6751ecab test(case): observe P10 wait directly under mos-1409
3: 9872b5ab5 = 3: bc7da6814 docs(row299): record mos-1409 preservation and static candidate
@@ -0,0 +1 @@
CLEAR
@@ -0,0 +1,18 @@
{
"label": "M1-syntax",
"argv": [
"timeout",
"-k",
"10",
"120",
"bash",
"-n",
"scripts/case1-accept.sh"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/gh8s2Og",
"started_utc": "2026-10-23T07:49:28Z",
"start_load": "1.51 2.50 2.68 3/5810 1153451",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M1-syntax.log",
"expected_red": false
}
@@ -0,0 +1,7 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:49:28Z",
"load": "1.51 2.50 2.68 2/5811 1153452"
}
]
Whitespace-only changes.
@@ -0,0 +1 @@
CLEAR
@@ -0,0 +1,21 @@
{
"label": "M1",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"--test-name-pattern",
"^row253 C4 P10 inner reason holds under both sudo models$",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/gxjj9Vd",
"started_utc": "2026-10-23T07:49:30Z",
"start_load": "1.51 2.50 2.68 1/5816 1156782",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M1.log",
"expected_red": true
}
@@ -0,0 +1,7 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:49:30Z",
"load": "1.51 2.50 2.68 3/5817 1156783"
}
]
+29
View File
@@ -0,0 +1,29 @@
TAP version 13
# Subtest: row253 C4 P10 inner reason holds under both sudo models
not ok 1 - row253 C4 P10 inner reason holds under both sudo models
---
duration_ms: 4641.831075
type: 'test'
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:421:49'
failureType: 'testCodeFailure'
error: 'exec: direct probe 1.23s; baseline 1.764558389s is diagnostic only'
code: 'ERR_ASSERTION'
name: 'AssertionError'
expected: true
actual: false
operator: '=='
stack: |-
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:450:29)
async Test.run (node:internal/test_runner/test:1409:7)
async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3)
...
# {"fault":"inner","mode":"exec","baselineSeconds":1.764558389,"faultSeconds":2.8568522200000004,"probeSeconds":1.23}
1..1
# tests 1
# suites 0
# pass 0
# fail 1
# cancelled 0
# skipped 0
# todo 0
# duration_ms 4737.590412
@@ -0,0 +1 @@
CLEAR
@@ -0,0 +1,18 @@
{
"label": "M2-syntax",
"argv": [
"timeout",
"-k",
"10",
"120",
"bash",
"-n",
"scripts/case1-accept.sh"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/gZ30EQX",
"started_utc": "2026-10-23T07:49:36Z",
"start_load": "1.47 2.48 2.67 1/5822 1162481",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M2-syntax.log",
"expected_red": false
}
@@ -0,0 +1,7 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:49:36Z",
"load": "1.47 2.48 2.67 3/5823 1162482"
}
]
Whitespace-only changes.
@@ -0,0 +1 @@
CLEAR
@@ -0,0 +1,21 @@
{
"label": "M2",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"--test-name-pattern",
"^row253 C4 P10 inner reason holds under both sudo models$",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/gYr4G6o",
"started_utc": "2026-10-23T07:49:37Z",
"start_load": "1.47 2.48 2.67 1/5823 1165689",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M2.log",
"expected_red": true
}
@@ -0,0 +1,12 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:49:37Z",
"load": "1.47 2.48 2.67 3/5824 1165690"
},
{
"wall_seconds": 5.001,
"utc": "2026-10-23T07:49:42Z",
"load": "1.43 2.45 2.66 3/5865 1168855"
}
]
+29
View File
@@ -0,0 +1,29 @@
TAP version 13
# Subtest: row253 C4 P10 inner reason holds under both sudo models
not ok 1 - row253 C4 P10 inner reason holds under both sudo models
---
duration_ms: 6624.625527
type: 'test'
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:421:49'
failureType: 'testCodeFailure'
error: 'exec: direct probe 3.24s; baseline 1.754618234s is diagnostic only'
code: 'ERR_ASSERTION'
name: 'AssertionError'
expected: true
actual: false
operator: '=='
stack: |-
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:450:29)
async Test.run (node:internal/test_runner/test:1409:7)
async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3)
...
# {"fault":"inner","mode":"exec","baselineSeconds":1.754618234,"faultSeconds":4.849417662,"probeSeconds":3.24}
1..1
# tests 1
# suites 0
# pass 0
# fail 1
# cancelled 0
# skipped 0
# todo 0
# duration_ms 6718.852297
@@ -0,0 +1,6 @@
CLEAR
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/1169351/cmdline: No such file or directory
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/1169352/cmdline: No such file or directory
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/1169353/cmdline: No such file or directory
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/1169354/cmdline: No such file or directory
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/1169382/cmdline: No such file or directory
@@ -0,0 +1,18 @@
{
"label": "M3-syntax",
"argv": [
"timeout",
"-k",
"10",
"120",
"bash",
"-n",
"scripts/case1-accept.sh"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/gwCkjzX",
"started_utc": "2026-10-23T07:49:45Z",
"start_load": "1.40 2.43 2.66 2/5844 1172866",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M3-syntax.log",
"expected_red": false
}
@@ -0,0 +1,7 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:49:45Z",
"load": "1.40 2.43 2.66 4/5845 1172867"
}
]
Whitespace-only changes.
@@ -0,0 +1,7 @@
CLEAR
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/1172650/cmdline: No such file or directory
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/1172687/cmdline: No such file or directory
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/1172732/cmdline: No such file or directory
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/1172780/cmdline: No such file or directory
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/1172825/cmdline: No such file or directory
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/1172863/cmdline: No such file or directory
@@ -0,0 +1,21 @@
{
"label": "M3",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"--test-name-pattern",
"^row253 C4 P10 outer reason holds under both sudo models$",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/g6TrU8V",
"started_utc": "2026-10-23T07:49:46Z",
"start_load": "1.40 2.43 2.66 2/5868 1176268",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M3.log",
"expected_red": true
}
@@ -0,0 +1,12 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:49:46Z",
"load": "1.40 2.43 2.66 4/5869 1176269"
},
{
"wall_seconds": 5.001,
"utc": "2026-10-23T07:49:51Z",
"load": "1.44 2.42 2.65 1/5889 1179184"
}
]
+29
View File
@@ -0,0 +1,29 @@
TAP version 13
# Subtest: row253 C4 P10 outer reason holds under both sudo models
not ok 1 - row253 C4 P10 outer reason holds under both sudo models
---
duration_ms: 6474.774742
type: 'test'
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:421:49'
failureType: 'testCodeFailure'
error: 'exec: direct probe 3.01s; baseline 1.7982556909999998s is diagnostic only'
code: 'ERR_ASSERTION'
name: 'AssertionError'
expected: true
actual: false
operator: '=='
stack: |-
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:452:11)
async Test.run (node:internal/test_runner/test:1409:7)
async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3)
...
# {"fault":"outer","mode":"exec","baselineSeconds":1.7982556909999998,"faultSeconds":4.664919980999999,"probeSeconds":3.01}
1..1
# tests 1
# suites 0
# pass 0
# fail 1
# cancelled 0
# skipped 0
# todo 0
# duration_ms 6573.218398
@@ -0,0 +1 @@
CLEAR
@@ -0,0 +1,18 @@
{
"label": "M4-syntax",
"argv": [
"timeout",
"-k",
"10",
"120",
"bash",
"-n",
"scripts/case1-accept.sh"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/gRPd59t",
"started_utc": "2026-10-23T07:49:54Z",
"start_load": "1.41 2.40 2.64 3/5836 1182894",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M4-syntax.log",
"expected_red": false
}
@@ -0,0 +1,7 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:49:54Z",
"load": "1.41 2.40 2.64 7/5837 1182895"
}
]
Whitespace-only changes.
@@ -0,0 +1,3 @@
CLEAR
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/1182788/cmdline: No such file or directory
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/1182883/cmdline: No such file or directory
@@ -0,0 +1,21 @@
{
"label": "M4",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"--test-name-pattern",
"^row253 C4 P10 outer reason holds under both sudo models$",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/gAKhO44",
"started_utc": "2026-10-23T07:49:56Z",
"start_load": "1.41 2.40 2.64 8/5839 1186447",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M4.log",
"expected_red": true
}
@@ -0,0 +1,12 @@
[
{
"wall_seconds": 0.001,
"utc": "2026-10-23T07:49:56Z",
"load": "1.41 2.40 2.64 8/5838 1186448"
},
{
"wall_seconds": 5.001,
"utc": "2026-10-23T07:50:01Z",
"load": "1.54 2.41 2.64 5/5866 1190264"
}
]
+92
View File
@@ -0,0 +1,92 @@
TAP version 13
# Subtest: row253 C4 P10 outer reason holds under both sudo models
not ok 1 - row253 C4 P10 outer reason holds under both sudo models
---
duration_ms: 8880.927284
type: 'test'
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:421:49'
failureType: 'testCodeFailure'
error: |-
The input did not match the regular expression /P10 tester-socket-squat unnamed boundary=failed reason=probe-outer-timeout /. Input:
'F1 units-user pass [email protected] and mosaic-webui.service are active as mosaic (uid 997)\n' +
'F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200\n' +
'F3 tester-reply pass chief replied to case1-accept-e61888cb4c54\n' +
'F4 precheck pass case2-precheck.sh --profile factory exits 0\n' +
"F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)'\n" +
"F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)'\n" +
'F7 pm-live pass one live launch: pm run r-0002\n' +
"F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file'\n" +
'F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1"\n' +
'F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0\n' +
'F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent\n' +
'P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53.\n' +
"P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent\n" +
'P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines\n' +
"P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve\n" +
'P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis)\n' +
'P6 group-members closed sudo holds only localadmin, and docker and lxd have no members\n' +
'P7 sudoers-d closed no file under /etc/sudoers.d names mosaic\n' +
'P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/.mosaic-dev/console/tester.sock\n' +
'P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member\n' +
'P10 tester-socket-squat unnamed boundary=failed reason=probe-inner-command path=/srv/mosaic/.mosaic-dev/console/tester.sock MainPID=200; hostile same-uid substitution remains\n' +
'P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names [email protected]\n' +
'count pass 11\n' +
'count FAIL 0\n' +
'count closed 7\n' +
'count accepted Q182+Q183 1\n' +
'count accepted Q183 1\n' +
'count accepted mos-1096 1\n' +
'count unnamed 1\n' +
'case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos\n'
code: 'ERR_ASSERTION'
name: 'AssertionError'
expected:
actual: |-
F1 units-user pass [email protected] and mosaic-webui.service are active as mosaic (uid 997)
F2 console-loopback pass healthz answers, and 732 is bound to 127.0.0.1 only, by MainPID 200
F3 tester-reply pass chief replied to case1-accept-e61888cb4c54
F4 precheck pass case2-precheck.sh --profile factory exits 0
F5 bwrap-label pass bwrap 300 reads 'bwrap (enforce)' and its claude descendant 302 reads 'bwrap//&unpriv_bwrap (enforce)'
F6 claude-pin pass /opt/mosaic-stack/claude-2.1.0/node_modules/@anthropic-ai/claude-code/bin/claude.exe prints '2.1.0 (Claude Code)'
F7 pm-live pass one live launch: pm run r-0002
F8 credential-file pass /srv/mosaic/.config/mosaic-dev/secrets/claude-session.env is 'mosaic 600 regular file'
F9 autoupdater-off pass /etc/claude-code/managed-settings.json is root:root 0644 with env.DISABLE_AUTOUPDATER "1"
F10 node-pin pass /opt/mosaic-stack/node-v24.1.0/bin/node prints v24.1.0
F11 no-discord pass /srv/mosaic/.mosaic-dev/discord is absent
P1 mosaic-sudo closed sudo -l: User mosaic is not allowed to run sudo on dev-53.
P2 mosaic-groups-keys closed id -G is '997'; authorized_keys is absent
P3 localadmin-sudo accepted Q183 sudo -l -U localadmin lists 1 NOPASSWD lines
P4 pve-root-pbs accepted Q182+Q183 root on pve over VM 1008, and PBS backups that hold /srv/mosaic with the credential; this script can't see pve
P5 jarvis-reach closed jarvis is in none of sudo, docker and lxd (groups: jarvis)
P6 group-members closed sudo holds only localadmin, and docker and lxd have no members
P7 sudoers-d closed no file under /etc/sudoers.d names mosaic
P8 lan-listeners closed 732 is on 127.0.0.1 only by MainPID 200; no TCP listener on 7331 or 7333; tester uses /srv/mosaic/.mosaic-dev/console/tester.sock
P9 bwrap-userns accepted mos-1096 hostcheck items 1-6 ok, jarvis is denied bwrap, and group mosaic has no other member
P10 tester-socket-squat unnamed boundary=failed reason=probe-inner-command path=/srv/mosaic/.mosaic-dev/console/tester.sock MainPID=200; hostile same-uid substitution remains
P11 hostcheck-before-bus closed mosaic-hostcheck.service is enabled, and its Before= names [email protected]
count pass 11
count FAIL 0
count closed 7
count accepted Q182+Q183 1
count accepted Q183 1
count accepted mos-1096 1
count unnamed 1
case1-accept: every F check passes; send the whole output to Duckworth, and each unnamed line to Mos
operator: 'match'
stack: |-
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:445:10)
async Test.run (node:internal/test_runner/test:1409:7)
async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3)
...
1..1
# tests 1
# suites 0
# pass 0
# fail 1
# cancelled 0
# skipped 0
# todo 0
# duration_ms 8984.292623
@@ -0,0 +1,2 @@
CLEAR
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/1193437/cmdline: No such file or directory
@@ -0,0 +1,18 @@
{
"label": "M5-syntax",
"argv": [
"timeout",
"-k",
"10",
"120",
"node",
"--check",
"packages/cli/tests/case-p10-timing-fixture.mjs"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/g8waDyO",
"started_utc": "2026-10-23T07:50:06Z",
"start_load": "1.65 2.42 2.65 2/5826 1197030",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M5-syntax.log",
"expected_red": false
}
@@ -0,0 +1,7 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:50:06Z",
"load": "1.65 2.42 2.65 4/5827 1197031"
}
]
Whitespace-only changes.
@@ -0,0 +1,2 @@
CLEAR
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/1197017/cmdline: No such file or directory
@@ -0,0 +1,21 @@
{
"label": "M5",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"--test-name-pattern",
"^row253 C4 P10 inner reason holds under both sudo models$",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/gdAgQSv",
"started_utc": "2026-10-23T07:50:07Z",
"start_load": "1.65 2.42 2.65 2/5824 1200489",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M5.log",
"expected_red": true
}
@@ -0,0 +1,12 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:50:07Z",
"load": "1.65 2.42 2.65 6/5827 1200493"
},
{
"wall_seconds": 5.001,
"utc": "2026-10-23T07:50:12Z",
"load": "1.60 2.40 2.64 2/5882 1203150"
}
]
+38
View File
@@ -0,0 +1,38 @@
TAP version 13
# Subtest: row253 C4 P10 inner reason holds under both sudo models
not ok 1 - row253 C4 P10 inner reason holds under both sudo models
---
duration_ms: 5653.123684
type: 'test'
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:421:49'
failureType: 'testCodeFailure'
error: |-
Got unwanted exception: P10 observer pair is required
Actual message: "P10 observer needs exactly one complete ordered pair"
code: 'ERR_ASSERTION'
name: 'AssertionError'
actual:
error: 'P10 observer needs exactly one complete ordered pair'
stack: |-
readProbeSeconds (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case-p10-timing-fixture.mjs:56:42)
file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:448:55
getActual (node:assert:580:5)
strict.doesNotThrow (node:assert:748:32)
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:448:24)
async Test.run (node:internal/test_runner/test:1409:7)
async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3)
operator: 'doesNotThrow'
stack: |-
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:448:24)
async Test.run (node:internal/test_runner/test:1409:7)
async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3)
...
1..1
# tests 1
# suites 0
# pass 0
# fail 1
# cancelled 0
# skipped 0
# todo 0
# duration_ms 5762.289353
@@ -0,0 +1 @@
CLEAR
@@ -0,0 +1,18 @@
{
"label": "M6-syntax",
"argv": [
"timeout",
"-k",
"10",
"120",
"node",
"--check",
"packages/cli/tests/case-p10-timing-fixture.mjs"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/gD2IEb2",
"started_utc": "2026-10-23T07:50:15Z",
"start_load": "1.63 2.39 2.63 1/5845 1206646",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M6-syntax.log",
"expected_red": false
}
@@ -0,0 +1,7 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:50:15Z",
"load": "1.63 2.39 2.63 4/5846 1206647"
}
]
Whitespace-only changes.
@@ -0,0 +1 @@
CLEAR
@@ -0,0 +1,21 @@
{
"label": "M6",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"--test-name-pattern",
"^row299 P10 observer records are complete and ordered$",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/gAZq1pv",
"started_utc": "2026-10-23T07:50:16Z",
"start_load": "1.63 2.39 2.63 2/5837 1210084",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M6.log",
"expected_red": true
}
@@ -0,0 +1,7 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:50:16Z",
"load": "1.63 2.39 2.63 2/5838 1210085"
}
]
+29
View File
@@ -0,0 +1,29 @@
TAP version 13
# Subtest: row299 P10 observer records are complete and ordered
not ok 1 - row299 P10 observer records are complete and ordered
---
duration_ms: 1.544819
type: 'test'
location: '/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:405:1'
failureType: 'testCodeFailure'
error: 'Missing expected exception: equal readings'
code: 'ERR_ASSERTION'
name: 'AssertionError'
expected:
operator: 'throws'
stack: |-
TestContext.<anonymous> (file:///home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196/packages/cli/tests/case1-accept.test.mjs:418:58)
Test.runInAsyncScope (node:async_hooks:226:14)
Test.run (node:internal/test_runner/test:1402:25)
Test.start (node:internal/test_runner/test:1262:17)
startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17)
...
1..1
# tests 1
# suites 0
# pass 0
# fail 1
# cancelled 0
# skipped 0
# todo 0
# duration_ms 97.805057
@@ -0,0 +1,78 @@
ba45d57c9b255311bb220598f90c1a4fb01b420511974c28f102881cbd7df21a agents/gander/work/queue-299/run1/M1-syntax.busy.log
0e86c022784e85084f08044940ec6623e736e2eea3e87afe994cebcdaa18c016 agents/gander/work/queue-299/run1/M1-syntax.command.json
6552beee45c19264b36614eb09e49f4c24e66521732071036c194b7ab5b6c3ee agents/gander/work/queue-299/run1/M1-syntax.load.json
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 agents/gander/work/queue-299/run1/M1-syntax.log
ba45d57c9b255311bb220598f90c1a4fb01b420511974c28f102881cbd7df21a agents/gander/work/queue-299/run1/M1.busy.log
9bfeb9cb89dde406b0b8997250139dc1eb925fb17a7d308c59ab628bd46f175d agents/gander/work/queue-299/run1/M1.command.json
c834b00bfe2b7fca539cd93a428b7d92b377a93d6a3aad65e33916735e4fca4e agents/gander/work/queue-299/run1/M1.load.json
6566b6d9f613a5904d85b0d0032a0dcd29aa81dcdfd363234537594006c1c5d4 agents/gander/work/queue-299/run1/M1.log
ba45d57c9b255311bb220598f90c1a4fb01b420511974c28f102881cbd7df21a agents/gander/work/queue-299/run1/M2-syntax.busy.log
4c04e5dcd4e7620a50436f09b60dfb5e0177978d765e5f14fc3da301cb91c729 agents/gander/work/queue-299/run1/M2-syntax.command.json
827351dfdde96da9bc13133600a6d2997299ed442df774e1c7718c34f02259c1 agents/gander/work/queue-299/run1/M2-syntax.load.json
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 agents/gander/work/queue-299/run1/M2-syntax.log
ba45d57c9b255311bb220598f90c1a4fb01b420511974c28f102881cbd7df21a agents/gander/work/queue-299/run1/M2.busy.log
4f0f7aef97edc93582921f5b15745bc72b3aae8ba7a71aaa145cd7d78b080af6 agents/gander/work/queue-299/run1/M2.command.json
d1ccdfc399964b4a9f61f2ff8eb5304b9556033e1e255467b0887460e56f5ae0 agents/gander/work/queue-299/run1/M2.load.json
b80762fb0b571cadaad5fcf5e43e040c533d2aca1cf939ea4247c5c8f50bd176 agents/gander/work/queue-299/run1/M2.log
8e62af85b120ec37099cfba76475359132a1ec673b55350da4442a2356f18fb4 agents/gander/work/queue-299/run1/M3-syntax.busy.log
019d63399b36b47bdf38730229aabd8edb5c25e27f7f78f462c70963a02aca69 agents/gander/work/queue-299/run1/M3-syntax.command.json
d31ae584602d69e1c6d68e1186b45d518741028e5f9ca289ddba6b472638e634 agents/gander/work/queue-299/run1/M3-syntax.load.json
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 agents/gander/work/queue-299/run1/M3-syntax.log
2d80452846bb5af54c76122f0647cb850bbf22ed114e17f9fb883b2c41f3d82e agents/gander/work/queue-299/run1/M3.busy.log
5619bd5a00679fc783d1f0ef8111570268238fc5cfc3b0586539fece039a0d14 agents/gander/work/queue-299/run1/M3.command.json
3ac8b2e351f5b3e016114f7ff45cc71a1d6287c4dc8d52640c6233424afdc59b agents/gander/work/queue-299/run1/M3.load.json
d5f21e277400f33779ea94940979bc89ae54c7484a762f373027bf837b98a47a agents/gander/work/queue-299/run1/M3.log
ba45d57c9b255311bb220598f90c1a4fb01b420511974c28f102881cbd7df21a agents/gander/work/queue-299/run1/M4-syntax.busy.log
c6f7857ef123cddd6190eba9e6b9a3356821bb0b3a797a1b05a2e19d108c5ec7 agents/gander/work/queue-299/run1/M4-syntax.command.json
f983475d9ea0c5cbff43d0de9f8514488d20e2d7732af8d050ca10b9fb81c061 agents/gander/work/queue-299/run1/M4-syntax.load.json
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 agents/gander/work/queue-299/run1/M4-syntax.log
d2361f293ed1242c07568092784e830638a3da691d01019a18beaff859d96b2a agents/gander/work/queue-299/run1/M4.busy.log
f66ae61b9ed0ea5a720f5c2457ecfb8cc610e192cd619ee5433f24af25f17f85 agents/gander/work/queue-299/run1/M4.command.json
cd20239485328874f8bbe30acd9470c3874011ef5bb6f39f33ed210b7c4a4f27 agents/gander/work/queue-299/run1/M4.load.json
e64c363e8f11574be893acce37a4152c90c31f5547ca6d48780160c556f0db70 agents/gander/work/queue-299/run1/M4.log
7c3a3b6bcf027e99e0f3903215f4ffca88d8bff9fb3a8ef92d3b28bfa68ba52a agents/gander/work/queue-299/run1/M5-syntax.busy.log
3e0f4c82616fa3fa7274ad91ec3f2baa86b7b22288d7507730e66c8e4809c681 agents/gander/work/queue-299/run1/M5-syntax.command.json
e0093f4ad39d9d4342b43c0ed2d7671747870d6d6166d0692eecbf3dc8033645 agents/gander/work/queue-299/run1/M5-syntax.load.json
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 agents/gander/work/queue-299/run1/M5-syntax.log
f104c336fdfa56a241f1b769938b71eafbfb237a88b3089309671eb5a8db4f0e agents/gander/work/queue-299/run1/M5.busy.log
35f7ce5f6e56047d600633a0e27826f6f54aa585552593bfb4954f8469238f7a agents/gander/work/queue-299/run1/M5.command.json
059de490b1a31be3a8c9a02ff49f84b744d057f66d4f55508e637e6b0896b670 agents/gander/work/queue-299/run1/M5.load.json
42e0a43b161e61775b0d4bdde73be4c131a8d6edb4aabf14422755e553272a3f agents/gander/work/queue-299/run1/M5.log
ba45d57c9b255311bb220598f90c1a4fb01b420511974c28f102881cbd7df21a agents/gander/work/queue-299/run1/M6-syntax.busy.log
867359f0e7ebf5516ae1e1147327e9f6e20d48cb2993b46866f9d90a9ebdbecb agents/gander/work/queue-299/run1/M6-syntax.command.json
8d1d69b01dffda714da78c7f08e14b7d1db12a788c812ab02d3a3faa6c52d8a6 agents/gander/work/queue-299/run1/M6-syntax.load.json
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 agents/gander/work/queue-299/run1/M6-syntax.log
ba45d57c9b255311bb220598f90c1a4fb01b420511974c28f102881cbd7df21a agents/gander/work/queue-299/run1/M6.busy.log
3e46e6d020a0fe9782b3e84462f634daed0885c0e992e482f7d815524fe2294e agents/gander/work/queue-299/run1/M6.command.json
24e987a747661e01b9e2a28b0580a0be5b16fad57da5c8c35f41b82835ea76ed agents/gander/work/queue-299/run1/M6.load.json
8a0f18ea13b69c71a742a755eb7437d06e49679b777880a8db7b4297ae9849d9 agents/gander/work/queue-299/run1/M6.log
e8efed810462567a977a64235454f5d59e92dbfb570d5537652c8deb52b9de66 agents/gander/work/queue-299/run1/RESULTS.md
e055720cf64d62331a1e957d285d2583bfb3708fc1b9bf951ab8a99a25c5b2e4 agents/gander/work/queue-299/run1/ambient-overlap.json
ba45d57c9b255311bb220598f90c1a4fb01b420511974c28f102881cbd7df21a agents/gander/work/queue-299/run1/case1-whole-1.busy.log
16ea379e1482e79b380c9a7be82703e735bea7ef80f1e785a032af9198b26c35 agents/gander/work/queue-299/run1/case1-whole-1.command.json
d87a93023d545cd38fcf0a77577c88326897700325fbecd84fd8287a26b33864 agents/gander/work/queue-299/run1/case1-whole-1.load.json
c4d7cf6a001a6741af3aa0e0615989327f63fe92999e8fb6d46c2d30f8c08f09 agents/gander/work/queue-299/run1/case1-whole-1.log
ba45d57c9b255311bb220598f90c1a4fb01b420511974c28f102881cbd7df21a agents/gander/work/queue-299/run1/case1-whole-2.busy.log
4b69775fb03d9fa56a9eef0c9dc8f3cb00013aa4d601f433519ef1dafcc2544c agents/gander/work/queue-299/run1/case1-whole-2.command.json
62c4cc338455841d9faf1198acddc3f3204346800e2db7222d1fc33aba189fe3 agents/gander/work/queue-299/run1/case1-whole-2.load.json
2ed90fe79a18f794363c47e34440b877a3ffa1256f9a5badb31b317ecbc2fb7b agents/gander/work/queue-299/run1/case1-whole-2.log
56d73910ed8d6773724be75e02506a365e5e03c4c98be07a32d49957f24b3e4a agents/gander/work/queue-299/run1/case1-whole-3.busy.log
a9225b3ae990e328d739d9259b5dfce0391d5054dedd074f53b81c92e7225c1a agents/gander/work/queue-299/run1/case1-whole-3.command.json
dc440ef86b769bf498ed9fcaa178ef9098f7bb9233dd625579d344464c00b11a agents/gander/work/queue-299/run1/case1-whole-3.load.json
a803a8e73902337b63d229d0703d45ec9fccd7a1930e192d322d4cc79b9774d6 agents/gander/work/queue-299/run1/case1-whole-3.log
ba45d57c9b255311bb220598f90c1a4fb01b420511974c28f102881cbd7df21a agents/gander/work/queue-299/run1/cli-whole.busy.log
e3ea8c0434fb979a4943f1bfab1984ff8b919bb062945803e1ddcaa61170d1a5 agents/gander/work/queue-299/run1/cli-whole.command.json
db54ea06016fa065f25ed62f5704757a727ff37009e010fa43b1e297bfb2b51b agents/gander/work/queue-299/run1/cli-whole.load.json
5222a0807a5ed3d8548711d09e7d3b09504f18b5f3f095c2529b4eedf5a2846b agents/gander/work/queue-299/run1/cli-whole.log
d58a500c8e125540aeee461cde68aa6bfe65ab386ae15c9af7dfe363a73a9fd2 agents/gander/work/queue-299/run1/controller.log
906c08da89e164e214464014edb672f8d389cb3eab70929d994bcff2794ff45a agents/gander/work/queue-299/run1/results.json
b7450a29a470bb48c300d630cd8079be283187d372b9bafd0fbaaafb261e9639 agents/gander/work/queue-299/run1/sweep.json
ba45d57c9b255311bb220598f90c1a4fb01b420511974c28f102881cbd7df21a agents/gander/work/queue-299/run1/syntax-1.busy.log
03471d51f50a2607f65bc6bfc5764119421fedd003bd569b5fc9ce7fa57c6be6 agents/gander/work/queue-299/run1/syntax-1.command.json
e429b112499bf432c8f561b02119025476f57f03208ee67a85282802a431de2d agents/gander/work/queue-299/run1/syntax-1.load.json
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 agents/gander/work/queue-299/run1/syntax-1.log
ba45d57c9b255311bb220598f90c1a4fb01b420511974c28f102881cbd7df21a agents/gander/work/queue-299/run1/syntax-2.busy.log
287a012953621602eaf7eb129a836b2e3be076b72d6da7131b5e605d2bb5c4ff agents/gander/work/queue-299/run1/syntax-2.command.json
795e4a257a3836bfe65ddfa5a734ed239145d1add7d543d52263707467e2345d agents/gander/work/queue-299/run1/syntax-2.load.json
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 agents/gander/work/queue-299/run1/syntax-2.log
13987615007f93b11780d44e827ce6a9a57e4373f0074a838ca87b762758d053 agents/gander/work/queue-299/run1/window.py
@@ -0,0 +1,38 @@
# Row 299 gate run 1
Grant sage-3268. Candidate ffa93b054f28852a75017928d8478bdf9046e717, base 80793d824, manifest 277ace0b4274970d5bd4c05cf8fe99aa1e7ebc469a719e4cefcb334a75d3865d. Run 2026-10-23T07:26:52Z to 2026-10-23T07:50:16Z, 1404 seconds by UTC timestamps. No carried result or retry.
The preflight passed. All three case1 files and all 59 CLI files ran whole. Unmutated total: 1076 pass, 0 fail, 0 skip, 0 cancelled, 0 todo. Mutants: 6/6 killed by named assertions, no external timeout. All six restores match their original SHA256 and have clean git status. Sweep: 0 gate residuals; four MCP harness processes predate the gate, with start times in sweep.json.
| Stage | Pass | Fail | Skip | Wall seconds | Start load |
| --- | ---: | ---: | ---: | ---: | --- |
| case1-whole-1 | 53 | 0 | 0 | 239.134 | 1.05 |
| case1-whole-2 | 53 | 0 | 0 | 240.044 | 3.41 |
| case1-whole-3 | 53 | 0 | 0 | 235.011 | 2.08 |
| cli-whole | 917 | 0 | 0 | 631.848 | 1.91 |
CLI sampled 1-minute load range: 1.54 to 7.17. Ambient >=4 was a target, not a wait condition. No stress process. Each of the three case1 start loads and the CLI start/load samples are recorded. The direct readings below come from the test diagnostics, with fixed inner [1.25,2.75) and outer [3.25,4.75) bands.
| Stage | Inner exec | Inner hop | Outer exec | Outer hop |
| --- | ---: | ---: | ---: | ---: |
| case1-whole-1 | 2.25 | 2.27 | 4 | 4 |
| case1-whole-2 | 2.29 | 2.28 | 4 | 4.01 |
| case1-whole-3 | 2.25 | 2.26 | 4 | 4 |
| cli-whole | 2.27 | 2.27 | 4.01 | 4.01 |
| Mutant | Named killer | Assertion | Direct interval | Wall seconds |
| --- | --- | --- | --- | ---: |
| M1 | row253 C4 P10 inner reason holds under both sudo models | case1-accept.test.mjs:450 lower band | 1.23 | 4.774 |
| M2 | row253 C4 P10 inner reason holds under both sudo models | case1-accept.test.mjs:450 upper band | 3.24 | 6.768 |
| M3 | row253 C4 P10 outer reason holds under both sudo models | case1-accept.test.mjs:452 outer lower band | 3.01 | 6.618 |
| M4 | row253 C4 P10 outer reason holds under both sudo models | case1-accept.test.mjs:445 exact probe-outer-timeout reason | not reached | 9.023 |
| M5 | row253 C4 P10 inner reason holds under both sudo models | case1-accept.test.mjs:448 required complete pair (doesNotThrow) | not reached | 5.816 |
| M6 | row299 P10 observer records are complete and ordered | case1-accept.test.mjs:418 equal readings must refuse (throws) | not reached | 0.164 |
M1 measured 1.23 s, below 1.25 by only 0.02 s. This is the anticipated startup-overhead risk. It died at the intended lower-band assertion; no tuning or retry was used.
M4 classification follows sage-3271, sage-3273 and mos-1426. The unchanged 7000 ms fixture guard returned; the named outer test failed with ERR_ASSERTION / match at line 445 because P10 reported reason=probe-inner-command instead of exact reason=probe-outer-timeout. It returned rc 1 in 9.023 s including the baseline. No external command timeout or cleanup-only failure was counted. Raw evidence: M4.log, M4.command.json, results.json guard_return_receipt and clean restore.
sage-3274 reported a read-only canonical queue polling overlap for receipts window 07:20–07:26Z. It wrote nothing and touched no worktree or test path. This is accepted ambient load, not a rerun condition; ambient-overlap.json keeps the report.
All raw logs, command headers with timeout -k 10, TMPDIRs, per-stage load samples, controller, results, and restores are in this directory. Every run used a fresh short TMPDIR directly under /mnt/storage/scratch/tmp. No source or assertion changed during the gate.
@@ -0,0 +1,10 @@
{
"source": "sage-3274",
"reported_utc": "2026-10-23T07:27:24Z",
"window_utc": [
"2026-10-23T07:20:00Z",
"2026-10-23T07:26:00Z"
],
"activity": "Read-only canonical queue show 303 every 20 seconds by Duckworth, stopped; no writes or test/worktree paths touched",
"classification": "Allowed ambient overlap under mos-1409, no rerun or recheck"
}
@@ -0,0 +1 @@
CLEAR
@@ -0,0 +1,19 @@
{
"label": "case1-whole-1",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/geSGqXZ",
"started_utc": "2026-10-23T07:26:57Z",
"start_load": "1.05 1.69 2.00 1/6640 205920",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/case1-whole-1.log",
"expected_red": false
}
@@ -0,0 +1,242 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:26:57Z",
"load": "1.05 1.69 2.00 5/6641 205921"
},
{
"wall_seconds": 5.001,
"utc": "2026-10-23T07:27:02Z",
"load": "1.05 1.68 1.99 2/6664 208983"
},
{
"wall_seconds": 10.001,
"utc": "2026-10-23T07:27:07Z",
"load": "1.12 1.69 1.99 4/6679 212072"
},
{
"wall_seconds": 15.001,
"utc": "2026-10-23T07:27:12Z",
"load": "1.19 1.69 1.99 4/6676 215231"
},
{
"wall_seconds": 20.001,
"utc": "2026-10-23T07:27:17Z",
"load": "1.26 1.70 1.99 2/6696 218364"
},
{
"wall_seconds": 25.002,
"utc": "2026-10-23T07:27:22Z",
"load": "1.24 1.69 1.99 2/6689 221537"
},
{
"wall_seconds": 30.002,
"utc": "2026-10-23T07:27:27Z",
"load": "1.22 1.67 1.98 2/6683 224753"
},
{
"wall_seconds": 35.002,
"utc": "2026-10-23T07:27:32Z",
"load": "1.36 1.70 1.99 3/6686 228651"
},
{
"wall_seconds": 40.002,
"utc": "2026-10-23T07:27:37Z",
"load": "1.33 1.68 1.98 3/6709 231645"
},
{
"wall_seconds": 45.003,
"utc": "2026-10-23T07:27:42Z",
"load": "1.22 1.66 1.97 2/6719 234495"
},
{
"wall_seconds": 50.003,
"utc": "2026-10-23T07:27:47Z",
"load": "1.21 1.64 1.97 3/6710 235979"
},
{
"wall_seconds": 55.003,
"utc": "2026-10-23T07:27:52Z",
"load": "1.27 1.65 1.97 3/6724 238345"
},
{
"wall_seconds": 60.003,
"utc": "2026-10-23T07:27:57Z",
"load": "1.33 1.66 1.97 4/6734 240013"
},
{
"wall_seconds": 65.004,
"utc": "2026-10-23T07:28:02Z",
"load": "1.38 1.66 1.97 1/6730 240697"
},
{
"wall_seconds": 70.004,
"utc": "2026-10-23T07:28:07Z",
"load": "1.43 1.67 1.97 4/6727 243478"
},
{
"wall_seconds": 75.004,
"utc": "2026-10-23T07:28:12Z",
"load": "1.48 1.67 1.97 2/6745 245706"
},
{
"wall_seconds": 80.004,
"utc": "2026-10-23T07:28:17Z",
"load": "1.44 1.66 1.96 2/6741 247933"
},
{
"wall_seconds": 85.005,
"utc": "2026-10-23T07:28:22Z",
"load": "1.48 1.67 1.97 1/6742 249267"
},
{
"wall_seconds": 90.005,
"utc": "2026-10-23T07:28:27Z",
"load": "1.53 1.68 1.97 1/6710 251793"
},
{
"wall_seconds": 95.005,
"utc": "2026-10-23T07:28:32Z",
"load": "1.48 1.66 1.96 2/6712 253250"
},
{
"wall_seconds": 100.005,
"utc": "2026-10-23T07:28:37Z",
"load": "1.53 1.67 1.96 4/6719 256547"
},
{
"wall_seconds": 105.006,
"utc": "2026-10-23T07:28:42Z",
"load": "1.56 1.68 1.96 5/6721 259938"
},
{
"wall_seconds": 110.006,
"utc": "2026-10-23T07:28:47Z",
"load": "1.68 1.70 1.97 4/6762 263119"
},
{
"wall_seconds": 115.006,
"utc": "2026-10-23T07:28:52Z",
"load": "1.86 1.74 1.98 3/6741 266483"
},
{
"wall_seconds": 120.006,
"utc": "2026-10-23T07:28:57Z",
"load": "2.20 1.81 2.00 2/6714 269932"
},
{
"wall_seconds": 125.006,
"utc": "2026-10-23T07:29:02Z",
"load": "2.42 1.86 2.02 6/6713 274031"
},
{
"wall_seconds": 130.007,
"utc": "2026-10-23T07:29:07Z",
"load": "2.55 1.90 2.03 3/6718 277881"
},
{
"wall_seconds": 135.007,
"utc": "2026-10-23T07:29:12Z",
"load": "2.58 1.91 2.03 2/6741 281990"
},
{
"wall_seconds": 140.007,
"utc": "2026-10-23T07:29:17Z",
"load": "2.62 1.93 2.04 4/6740 286159"
},
{
"wall_seconds": 145.007,
"utc": "2026-10-23T07:29:22Z",
"load": "2.73 1.97 2.05 2/6748 290530"
},
{
"wall_seconds": 150.008,
"utc": "2026-10-23T07:29:27Z",
"load": "2.99 2.04 2.07 2/6701 294400"
},
{
"wall_seconds": 155.008,
"utc": "2026-10-23T07:29:32Z",
"load": "3.07 2.07 2.08 3/6694 297610"
},
{
"wall_seconds": 160.008,
"utc": "2026-10-23T07:29:37Z",
"load": "3.15 2.10 2.09 5/6705 300813"
},
{
"wall_seconds": 165.008,
"utc": "2026-10-23T07:29:42Z",
"load": "3.05 2.10 2.09 2/6703 304321"
},
{
"wall_seconds": 170.008,
"utc": "2026-10-23T07:29:47Z",
"load": "3.05 2.11 2.10 3/6739 307613"
},
{
"wall_seconds": 175.009,
"utc": "2026-10-23T07:29:52Z",
"load": "2.97 2.11 2.10 2/6745 310850"
},
{
"wall_seconds": 180.009,
"utc": "2026-10-23T07:29:57Z",
"load": "2.89 2.11 2.09 4/6709 314125"
},
{
"wall_seconds": 185.009,
"utc": "2026-10-23T07:30:02Z",
"load": "3.14 2.17 2.12 4/6698 317556"
},
{
"wall_seconds": 190.009,
"utc": "2026-10-23T07:30:07Z",
"load": "3.93 2.35 2.17 2/6708 321964"
},
{
"wall_seconds": 195.009,
"utc": "2026-10-23T07:30:12Z",
"load": "3.93 2.38 2.18 2/6713 325120"
},
{
"wall_seconds": 200.01,
"utc": "2026-10-23T07:30:17Z",
"load": "3.78 2.38 2.18 3/6721 328405"
},
{
"wall_seconds": 205.01,
"utc": "2026-10-23T07:30:22Z",
"load": "3.80 2.40 2.19 2/6725 331643"
},
{
"wall_seconds": 210.01,
"utc": "2026-10-23T07:30:27Z",
"load": "3.89 2.45 2.21 5/6714 335757"
},
{
"wall_seconds": 215.01,
"utc": "2026-10-23T07:30:32Z",
"load": "3.74 2.44 2.21 2/6706 339141"
},
{
"wall_seconds": 220.01,
"utc": "2026-10-23T07:30:37Z",
"load": "3.60 2.43 2.20 3/6722 342107"
},
{
"wall_seconds": 225.011,
"utc": "2026-10-23T07:30:42Z",
"load": "3.63 2.46 2.21 4/6716 345179"
},
{
"wall_seconds": 230.011,
"utc": "2026-10-23T07:30:47Z",
"load": "3.66 2.48 2.22 2/6740 349322"
},
{
"wall_seconds": 235.011,
"utc": "2026-10-23T07:30:52Z",
"load": "3.53 2.47 2.22 3/6745 352500"
}
]
@@ -0,0 +1,332 @@
TAP version 13
# Subtest: row253 socket observation uses configured root, metadata and the Console peer without sending bytes
ok 1 - row253 socket observation uses configured root, metadata and the Console peer without sending bytes
---
duration_ms: 1855.818133
type: 'test'
...
# Subtest: row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure
ok 2 - row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure
---
duration_ms: 29336.896059
type: 'test'
...
# Subtest: row253 acceptance rejects bad config and unsupported copies before talk
ok 3 - row253 acceptance rejects bad config and unsupported copies before talk
---
duration_ms: 1492.589344
type: 'test'
...
# Subtest: row253 stalled peer observation ends within its bound without leaving a reader
ok 4 - row253 stalled peer observation ends within its bound without leaving a reader
---
duration_ms: 3995.592937
type: 'test'
...
# Subtest: row253 P8 refuses both retired TCP and board listeners
ok 5 - row253 P8 refuses both retired TCP and board listeners
---
duration_ms: 3885.105115
type: 'test'
...
# Subtest: row253 C4 acceptance query inner reason holds under both sudo models
ok 6 - row253 C4 acceptance query inner reason holds under both sudo models
---
duration_ms: 10722.031738
type: 'test'
...
# Subtest: row253 C4 acceptance query outer reason discards stdout and names residual cleanup
ok 7 - row253 C4 acceptance query outer reason discards stdout and names residual cleanup
---
duration_ms: 14183.471618
type: 'test'
...
# Subtest: row253 C4 acceptance query overflow is output-limit in both models
ok 8 - row253 C4 acceptance query overflow is output-limit in both models
---
duration_ms: 492.660764
type: 'test'
...
# Subtest: row299 P10 timing copy preserves shipped bytes and isolates observer variables
ok 9 - row299 P10 timing copy preserves shipped bytes and isolates observer variables
---
duration_ms: 0.874413
type: 'test'
...
# Subtest: row299 P10 observers preserve stdout stderr status and the EXIT trap
ok 10 - row299 P10 observers preserve stdout stderr status and the EXIT trap
---
duration_ms: 3.117643
type: 'test'
...
# Subtest: row299 P10 observer records are complete and ordered
ok 11 - row299 P10 observer records are complete and ordered
---
duration_ms: 0.494254
type: 'test'
...
# Subtest: row253 C4 P10 inner reason holds under both sudo models
ok 12 - row253 C4 P10 inner reason holds under both sudo models
---
duration_ms: 11837.509919
type: 'test'
...
# {"fault":"inner","mode":"exec","baselineSeconds":1.8914214159999974,"faultSeconds":3.974223306999993,"probeSeconds":2.25}
# {"fault":"inner","mode":"hop","baselineSeconds":1.8980776110000006,"faultSeconds":4.004310756999999,"probeSeconds":2.27}
# Subtest: row253 C4 P10 outer reason holds under both sudo models
ok 13 - row253 C4 P10 outer reason holds under both sudo models
---
duration_ms: 15238.957947
type: 'test'
...
# {"fault":"outer","mode":"exec","baselineSeconds":1.8725320299999875,"faultSeconds":5.715126132999998,"probeSeconds":4}
# {"fault":"outer","mode":"hop","baselineSeconds":1.8715896639999992,"faultSeconds":5.726812752999991,"probeSeconds":4}
# Subtest: row253 C4 P10 overflow reason holds under both sudo models
ok 14 - row253 C4 P10 overflow reason holds under both sudo models
---
duration_ms: 3757.733977
type: 'test'
...
# Subtest: row 195 accept: every check passing exits 0, with each P mark and counts that match the lines
ok 15 - row 195 accept: every check passing exits 0, with each P mark and counts that match the lines
---
duration_ms: 1879.003371
type: 'test'
...
# Subtest: row 195 accept: exits 1 with each F check failing alone, and its line names it
ok 16 - row 195 accept: exits 1 with each F check failing alone, and its line names it
---
duration_ms: 21149.551708
type: 'test'
...
# Subtest: row 195 accept: F3 fails on exit 0 with no reply line, and its evidence takes talk's error
ok 17 - row 195 accept: F3 fails on exit 0 with no reply line, and its evidence takes talk's error
---
duration_ms: 3936.849005
type: 'test'
...
# Subtest: row 195 accept: F1 fails on a unit that isn't active or isn't User=mosaic
ok 18 - row 195 accept: F1 fails on a unit that isn't active or isn't User=mosaic
---
duration_ms: 3519.175544
type: 'test'
...
# Subtest: row 195 accept: F2 fails when healthz doesn't answer and when another pid holds the port
ok 19 - row 195 accept: F2 fails when healthz doesn't answer and when another pid holds the port
---
duration_ms: 3846.383271
type: 'test'
...
# Subtest: row 195 accept: F5 fails on unpriv_bwrap (enforce), on complain and on a trailing space
ok 20 - row 195 accept: F5 fails on unpriv_bwrap (enforce), on complain and on a trailing space
---
duration_ms: 8775.592742
type: 'test'
...
# Subtest: row 195 accept: F5 fails with no bwrap of mosaic's, and passes on comm alone
ok 21 - row 195 accept: F5 fails with no bwrap of mosaic's, and passes on comm alone
---
duration_ms: 4053.330344
type: 'test'
...
# Subtest: row 195 accept: F6 fails on a stub that prints nothing, on a path outside claude-<pin> and on a .. segment
ok 22 - row 195 accept: F6 fails on a stub that prints nothing, on a path outside claude-<pin> and on a .. segment
---
duration_ms: 5151.877925
type: 'test'
...
# Subtest: row 195 accept: F7 fails on two live PM launches, one for another business, and no launch.by
ok 23 - row 195 accept: F7 fails on two live PM launches, one for another business, and no launch.by
---
duration_ms: 5579.901611
type: 'test'
...
# Subtest: row 195 accept: F8 fails on 0640, on another owner and on a symlink, and never prints the credential
ok 24 - row 195 accept: F8 fails on 0640, on another owner and on a symlink, and never prints the credential
---
duration_ms: 5585.627061
type: 'test'
...
# Subtest: row 195 accept: F9 fails on another owner, a group-writable mode and a number for the flag
ok 25 - row 195 accept: F9 fails on another owner, a group-writable mode and a number for the flag
---
duration_ms: 5536.898215
type: 'test'
...
# Subtest: row 195 accept: F9 won't run --node as root off the pin path or with a writable directory above it
ok 26 - row 195 accept: F9 won't run --node as root off the pin path or with a writable directory above it
---
duration_ms: 5246.446744
type: 'test'
...
# Subtest: row 195 accept: F11 fails on one *.json under discord/ and passes on an empty directory
ok 27 - row 195 accept: F11 fails on one *.json under discord/ and passes on an empty directory
---
duration_ms: 3711.063365
type: 'test'
...
# Subtest: row 195 accept: each P check reports unnamed on its fault, and the exit stays 0
ok 28 - row 195 accept: each P check reports unnamed on its fault, and the exit stays 0
---
duration_ms: 16646.70564
type: 'test'
...
# Subtest: row 195 accept: P2 is unnamed with a supplementary group, and P5 names docker
ok 29 - row 195 accept: P2 is unnamed with a supplementary group, and P5 names docker
---
duration_ms: 3728.983
type: 'test'
...
# Subtest: row 195 accept: P5 is closed with no jarvis account, and P2 with an empty authorized_keys
ok 30 - row 195 accept: P5 is closed with no jarvis account, and P2 with an empty authorized_keys
---
duration_ms: 1843.108704
type: 'test'
...
# Subtest: row 195 accept: P9 is unnamed once for each item missing
ok 31 - row 195 accept: P9 is unnamed once for each item missing
---
duration_ms: 9276.56305
type: 'test'
...
# Subtest: row253 accept: P10 fails its observation with another peer; P11 with the unit disabled
ok 32 - row253 accept: P10 fails its observation with another peer; P11 with the unit disabled
---
duration_ms: 3822.919805
type: 'test'
...
# Subtest: row 195 accept: every P check unnamed together still exits 0
ok 33 - row 195 accept: every P check unnamed together still exits 0
---
duration_ms: 1656.312404
type: 'test'
...
# Subtest: row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason
ok 34 - row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason
---
duration_ms: 97.36437
type: 'test'
...
# Subtest: row 195 accept: usage errors and a run without --root as a user exit 2
ok 35 - row 195 accept: usage errors and a run without --root as a user exit 2
---
duration_ms: 10.881957
type: 'test'
...
# Subtest: row 195 accept: every in-instance call goes through sudo -u mosaic -H env PATH=<node dir>:...
ok 36 - row 195 accept: every in-instance call goes through sudo -u mosaic -H env PATH=<node dir>:...
---
duration_ms: 1850.760145
type: 'test'
...
# Subtest: row 195 accept: the host check runs with --check and never --enforce
ok 37 - row 195 accept: the host check runs with --check and never --enforce
---
duration_ms: 1869.942933
type: 'test'
...
# Subtest: row276 legacy call inventory pins every production bound and the conversation contract
ok 38 - row276 legacy call inventory pins every production bound and the conversation contract
---
duration_ms: 0.366334
type: 'test'
...
# Subtest: row276 talk legacy inner timeout cleans both sudo models
ok 39 - row276 talk legacy inner timeout cleans both sudo models
---
duration_ms: 1692.158566
type: 'test'
...
# Subtest: row276 precheck legacy inner timeout cleans both sudo models
ok 40 - row276 precheck legacy inner timeout cleans both sudo models
---
duration_ms: 1720.136504
type: 'test'
...
# Subtest: row276 claude-version legacy inner timeout cleans both sudo models
ok 41 - row276 claude-version legacy inner timeout cleans both sudo models
---
duration_ms: 1702.886014
type: 'test'
...
# Subtest: row276 pm-list legacy inner timeout cleans both sudo models
ok 42 - row276 pm-list legacy inner timeout cleans both sudo models
---
duration_ms: 1710.920935
type: 'test'
...
# Subtest: row276 node-version legacy inner timeout cleans both sudo models
ok 43 - row276 node-version legacy inner timeout cleans both sudo models
---
duration_ms: 1712.683898
type: 'test'
...
# Subtest: row276 legacy streams and display status preserve failures without granting success
ok 44 - row276 legacy streams and display status preserve failures without granting success
---
duration_ms: 2671.771328
type: 'test'
...
# Subtest: row276 trailer grammar cannot make supervisor failure pass
ok 45 - row276 trailer grammar cannot make supervisor failure pass
---
duration_ms: 2089.079622
type: 'test'
...
# Subtest: row276 earlier forged trailer and appended zero remain failures
ok 46 - row276 earlier forged trailer and appended zero remain failures
---
duration_ms: 513.433074
type: 'test'
...
# Subtest: row276 precheck outer bound discards success status and fixture cleans residual
ok 47 - row276 precheck outer bound discards success status and fixture cleans residual
---
duration_ms: 2173.848153
type: 'test'
...
# Subtest: row276 case1 capture and legacy tools refuse unsafe system tools
ok 48 - row276 case1 capture and legacy tools refuse unsafe system tools
---
duration_ms: 76.5521
type: 'test'
...
# Subtest: row276 stderr retention is bounded and keeps the final diagnostic
ok 49 - row276 stderr retention is bounded and keeps the final diagnostic
---
duration_ms: 278.525167
type: 'test'
...
# Subtest: row276 version and PM checks refuse successful-looking stdout on supervisor failure
ok 50 - row276 version and PM checks refuse successful-looking stdout on supervisor failure
---
duration_ms: 15.742297
type: 'test'
...
# Subtest: row276 full acceptance keeps all five healthy calls in both sudo models
ok 51 - row276 full acceptance keeps all five healthy calls in both sudo models
---
duration_ms: 3757.894895
type: 'test'
...
# Subtest: row276 vanished pid stat read returns 3 with empty stderr in both scripts
ok 52 - row276 vanished pid stat read returns 3 with empty stderr in both scripts
---
duration_ms: 4.785932
type: 'test'
...
# Subtest: row276 legacy stdout snapshot preserves exact bytes on success and command failure
ok 53 - row276 legacy stdout snapshot preserves exact bytes on success and command failure
---
duration_ms: 3281.165451
type: 'test'
...
1..53
# tests 53
# suites 0
# pass 53
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 239100.197017
@@ -0,0 +1 @@
CLEAR
@@ -0,0 +1,19 @@
{
"label": "case1-whole-2",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/gd0qwWL",
"started_utc": "2026-10-23T07:30:57Z",
"start_load": "3.41 2.47 2.22 4/6666 357541",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/case1-whole-2.log",
"expected_red": false
}
@@ -0,0 +1,247 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:30:57Z",
"load": "3.41 2.47 2.22 8/6667 357542"
},
{
"wall_seconds": 5.001,
"utc": "2026-10-23T07:31:02Z",
"load": "3.21 2.44 2.21 6/6697 360865"
},
{
"wall_seconds": 10.001,
"utc": "2026-10-23T07:31:07Z",
"load": "3.44 2.50 2.23 2/6704 364103"
},
{
"wall_seconds": 15.001,
"utc": "2026-10-23T07:31:12Z",
"load": "3.24 2.48 2.23 2/6696 367319"
},
{
"wall_seconds": 20.001,
"utc": "2026-10-23T07:31:17Z",
"load": "3.14 2.47 2.23 8/6721 370622"
},
{
"wall_seconds": 25.002,
"utc": "2026-10-23T07:31:22Z",
"load": "3.05 2.46 2.22 3/6707 373850"
},
{
"wall_seconds": 30.002,
"utc": "2026-10-23T07:31:27Z",
"load": "2.89 2.44 2.22 2/6664 377071"
},
{
"wall_seconds": 35.002,
"utc": "2026-10-23T07:31:32Z",
"load": "2.73 2.41 2.21 2/6679 380056"
},
{
"wall_seconds": 40.002,
"utc": "2026-10-23T07:31:37Z",
"load": "2.52 2.37 2.20 4/6709 384877"
},
{
"wall_seconds": 45.002,
"utc": "2026-10-23T07:31:42Z",
"load": "2.71 2.42 2.21 3/6727 386330"
},
{
"wall_seconds": 50.003,
"utc": "2026-10-23T07:31:47Z",
"load": "2.58 2.39 2.21 1/6740 387775"
},
{
"wall_seconds": 55.003,
"utc": "2026-10-23T07:31:52Z",
"load": "2.69 2.42 2.22 9/6763 389481"
},
{
"wall_seconds": 60.003,
"utc": "2026-10-23T07:31:57Z",
"load": "2.56 2.39 2.21 3/6722 390241"
},
{
"wall_seconds": 65.003,
"utc": "2026-10-23T07:32:02Z",
"load": "2.43 2.37 2.20 4/6732 391752"
},
{
"wall_seconds": 70.004,
"utc": "2026-10-23T07:32:07Z",
"load": "2.40 2.36 2.20 9/6738 395390"
},
{
"wall_seconds": 75.004,
"utc": "2026-10-23T07:32:12Z",
"load": "2.44 2.38 2.21 6/6731 398840"
},
{
"wall_seconds": 80.004,
"utc": "2026-10-23T07:32:17Z",
"load": "2.57 2.40 2.22 3/6790 402895"
},
{
"wall_seconds": 85.004,
"utc": "2026-10-23T07:32:22Z",
"load": "2.60 2.41 2.22 1/6721 405197"
},
{
"wall_seconds": 90.005,
"utc": "2026-10-23T07:32:27Z",
"load": "2.48 2.39 2.21 6/6682 407571"
},
{
"wall_seconds": 95.005,
"utc": "2026-10-23T07:32:32Z",
"load": "2.44 2.38 2.21 3/6688 408595"
},
{
"wall_seconds": 100.005,
"utc": "2026-10-23T07:32:37Z",
"load": "2.32 2.36 2.21 4/6690 411784"
},
{
"wall_seconds": 105.005,
"utc": "2026-10-23T07:32:42Z",
"load": "2.38 2.37 2.21 2/6695 414989"
},
{
"wall_seconds": 110.006,
"utc": "2026-10-23T07:32:47Z",
"load": "2.27 2.35 2.20 2/6747 418296"
},
{
"wall_seconds": 115.006,
"utc": "2026-10-23T07:32:52Z",
"load": "2.16 2.32 2.20 3/6725 421487"
},
{
"wall_seconds": 120.006,
"utc": "2026-10-23T07:32:57Z",
"load": "2.31 2.35 2.21 2/6717 424642"
},
{
"wall_seconds": 125.006,
"utc": "2026-10-23T07:33:02Z",
"load": "2.37 2.36 2.21 2/6711 427881"
},
{
"wall_seconds": 130.007,
"utc": "2026-10-23T07:33:07Z",
"load": "2.34 2.36 2.21 8/6702 431078"
},
{
"wall_seconds": 135.007,
"utc": "2026-10-23T07:33:12Z",
"load": "2.55 2.40 2.22 4/6715 434482"
},
{
"wall_seconds": 140.007,
"utc": "2026-10-23T07:33:17Z",
"load": "2.59 2.41 2.23 8/6722 437629"
},
{
"wall_seconds": 145.007,
"utc": "2026-10-23T07:33:22Z",
"load": "3.10 2.52 2.27 5/6730 441654"
},
{
"wall_seconds": 150.008,
"utc": "2026-10-23T07:33:27Z",
"load": "2.93 2.50 2.26 3/6688 445391"
},
{
"wall_seconds": 155.008,
"utc": "2026-10-23T07:33:32Z",
"load": "2.86 2.49 2.26 2/6720 449750"
},
{
"wall_seconds": 160.008,
"utc": "2026-10-23T07:33:37Z",
"load": "2.63 2.45 2.24 3/6720 454134"
},
{
"wall_seconds": 165.008,
"utc": "2026-10-23T07:33:42Z",
"load": "2.58 2.44 2.24 3/6705 458552"
},
{
"wall_seconds": 170.008,
"utc": "2026-10-23T07:33:47Z",
"load": "2.53 2.43 2.24 2/6751 462649"
},
{
"wall_seconds": 175.009,
"utc": "2026-10-23T07:33:52Z",
"load": "2.49 2.42 2.24 2/6728 466002"
},
{
"wall_seconds": 180.009,
"utc": "2026-10-23T07:33:57Z",
"load": "2.37 2.40 2.23 4/6684 469149"
},
{
"wall_seconds": 185.009,
"utc": "2026-10-23T07:34:02Z",
"load": "2.50 2.43 2.24 10/6506 472229"
},
{
"wall_seconds": 190.009,
"utc": "2026-10-23T07:34:07Z",
"load": "2.78 2.49 2.26 3/6479 475928"
},
{
"wall_seconds": 195.01,
"utc": "2026-10-23T07:34:12Z",
"load": "2.64 2.46 2.26 3/6479 479085"
},
{
"wall_seconds": 200.01,
"utc": "2026-10-23T07:34:17Z",
"load": "2.51 2.44 2.25 3/6502 482380"
},
{
"wall_seconds": 205.01,
"utc": "2026-10-23T07:34:22Z",
"load": "2.63 2.46 2.26 4/6485 486156"
},
{
"wall_seconds": 210.01,
"utc": "2026-10-23T07:34:27Z",
"load": "2.50 2.44 2.25 2/6457 489465"
},
{
"wall_seconds": 215.011,
"utc": "2026-10-23T07:34:32Z",
"load": "2.38 2.41 2.25 2/6462 492613"
},
{
"wall_seconds": 220.011,
"utc": "2026-10-23T07:34:37Z",
"load": "2.27 2.39 2.24 2/6495 494796"
},
{
"wall_seconds": 225.011,
"utc": "2026-10-23T07:34:42Z",
"load": "2.08 2.35 2.23 1/6512 496267"
},
{
"wall_seconds": 230.011,
"utc": "2026-10-23T07:34:47Z",
"load": "2.00 2.33 2.22 2/6527 499579"
},
{
"wall_seconds": 235.012,
"utc": "2026-10-23T07:34:52Z",
"load": "2.00 2.32 2.22 2/6514 502183"
},
{
"wall_seconds": 240.012,
"utc": "2026-10-23T07:34:57Z",
"load": "2.00 2.32 2.22 8/6467 505173"
}
]
@@ -0,0 +1,332 @@
TAP version 13
# Subtest: row253 socket observation uses configured root, metadata and the Console peer without sending bytes
ok 1 - row253 socket observation uses configured root, metadata and the Console peer without sending bytes
---
duration_ms: 1878.940051
type: 'test'
...
# Subtest: row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure
ok 2 - row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure
---
duration_ms: 29659.298682
type: 'test'
...
# Subtest: row253 acceptance rejects bad config and unsupported copies before talk
ok 3 - row253 acceptance rejects bad config and unsupported copies before talk
---
duration_ms: 1402.898543
type: 'test'
...
# Subtest: row253 stalled peer observation ends within its bound without leaving a reader
ok 4 - row253 stalled peer observation ends within its bound without leaving a reader
---
duration_ms: 3999.716359
type: 'test'
...
# Subtest: row253 P8 refuses both retired TCP and board listeners
ok 5 - row253 P8 refuses both retired TCP and board listeners
---
duration_ms: 3772.509207
type: 'test'
...
# Subtest: row253 C4 acceptance query inner reason holds under both sudo models
ok 6 - row253 C4 acceptance query inner reason holds under both sudo models
---
duration_ms: 10718.848845
type: 'test'
...
# Subtest: row253 C4 acceptance query outer reason discards stdout and names residual cleanup
ok 7 - row253 C4 acceptance query outer reason discards stdout and names residual cleanup
---
duration_ms: 14188.226585
type: 'test'
...
# Subtest: row253 C4 acceptance query overflow is output-limit in both models
ok 8 - row253 C4 acceptance query overflow is output-limit in both models
---
duration_ms: 508.639752
type: 'test'
...
# Subtest: row299 P10 timing copy preserves shipped bytes and isolates observer variables
ok 9 - row299 P10 timing copy preserves shipped bytes and isolates observer variables
---
duration_ms: 0.798822
type: 'test'
...
# Subtest: row299 P10 observers preserve stdout stderr status and the EXIT trap
ok 10 - row299 P10 observers preserve stdout stderr status and the EXIT trap
---
duration_ms: 3.117025
type: 'test'
...
# Subtest: row299 P10 observer records are complete and ordered
ok 11 - row299 P10 observer records are complete and ordered
---
duration_ms: 0.531705
type: 'test'
...
# Subtest: row253 C4 P10 inner reason holds under both sudo models
ok 12 - row253 C4 P10 inner reason holds under both sudo models
---
duration_ms: 12501.629468
type: 'test'
...
# {"fault":"inner","mode":"exec","baselineSeconds":1.9894229939999932,"faultSeconds":4.213512103000001,"probeSeconds":2.29}
# {"fault":"inner","mode":"hop","baselineSeconds":2.056171266999998,"faultSeconds":4.169351735999997,"probeSeconds":2.28}
# Subtest: row253 C4 P10 outer reason holds under both sudo models
ok 13 - row253 C4 P10 outer reason holds under both sudo models
---
duration_ms: 15355.835698
type: 'test'
...
# {"fault":"outer","mode":"exec","baselineSeconds":1.9589971570000053,"faultSeconds":5.726783651999998,"probeSeconds":4}
# {"fault":"outer","mode":"hop","baselineSeconds":1.879084925999996,"faultSeconds":5.732443853999998,"probeSeconds":4.01}
# Subtest: row253 C4 P10 overflow reason holds under both sudo models
ok 14 - row253 C4 P10 overflow reason holds under both sudo models
---
duration_ms: 3793.194421
type: 'test'
...
# Subtest: row 195 accept: every check passing exits 0, with each P mark and counts that match the lines
ok 15 - row 195 accept: every check passing exits 0, with each P mark and counts that match the lines
---
duration_ms: 1868.627362
type: 'test'
...
# Subtest: row 195 accept: exits 1 with each F check failing alone, and its line names it
ok 16 - row 195 accept: exits 1 with each F check failing alone, and its line names it
---
duration_ms: 21072.838361
type: 'test'
...
# Subtest: row 195 accept: F3 fails on exit 0 with no reply line, and its evidence takes talk's error
ok 17 - row 195 accept: F3 fails on exit 0 with no reply line, and its evidence takes talk's error
---
duration_ms: 3708.467117
type: 'test'
...
# Subtest: row 195 accept: F1 fails on a unit that isn't active or isn't User=mosaic
ok 18 - row 195 accept: F1 fails on a unit that isn't active or isn't User=mosaic
---
duration_ms: 3517.599317
type: 'test'
...
# Subtest: row 195 accept: F2 fails when healthz doesn't answer and when another pid holds the port
ok 19 - row 195 accept: F2 fails when healthz doesn't answer and when another pid holds the port
---
duration_ms: 4025.946308
type: 'test'
...
# Subtest: row 195 accept: F5 fails on unpriv_bwrap (enforce), on complain and on a trailing space
ok 20 - row 195 accept: F5 fails on unpriv_bwrap (enforce), on complain and on a trailing space
---
duration_ms: 8845.119954
type: 'test'
...
# Subtest: row 195 accept: F5 fails with no bwrap of mosaic's, and passes on comm alone
ok 21 - row 195 accept: F5 fails with no bwrap of mosaic's, and passes on comm alone
---
duration_ms: 4126.5763
type: 'test'
...
# Subtest: row 195 accept: F6 fails on a stub that prints nothing, on a path outside claude-<pin> and on a .. segment
ok 22 - row 195 accept: F6 fails on a stub that prints nothing, on a path outside claude-<pin> and on a .. segment
---
duration_ms: 5137.178557
type: 'test'
...
# Subtest: row 195 accept: F7 fails on two live PM launches, one for another business, and no launch.by
ok 23 - row 195 accept: F7 fails on two live PM launches, one for another business, and no launch.by
---
duration_ms: 5691.366549
type: 'test'
...
# Subtest: row 195 accept: F8 fails on 0640, on another owner and on a symlink, and never prints the credential
ok 24 - row 195 accept: F8 fails on 0640, on another owner and on a symlink, and never prints the credential
---
duration_ms: 5730.966972
type: 'test'
...
# Subtest: row 195 accept: F9 fails on another owner, a group-writable mode and a number for the flag
ok 25 - row 195 accept: F9 fails on another owner, a group-writable mode and a number for the flag
---
duration_ms: 5621.584201
type: 'test'
...
# Subtest: row 195 accept: F9 won't run --node as root off the pin path or with a writable directory above it
ok 26 - row 195 accept: F9 won't run --node as root off the pin path or with a writable directory above it
---
duration_ms: 5316.258522
type: 'test'
...
# Subtest: row 195 accept: F11 fails on one *.json under discord/ and passes on an empty directory
ok 27 - row 195 accept: F11 fails on one *.json under discord/ and passes on an empty directory
---
duration_ms: 3764.13795
type: 'test'
...
# Subtest: row 195 accept: each P check reports unnamed on its fault, and the exit stays 0
ok 28 - row 195 accept: each P check reports unnamed on its fault, and the exit stays 0
---
duration_ms: 16622.156132
type: 'test'
...
# Subtest: row 195 accept: P2 is unnamed with a supplementary group, and P5 names docker
ok 29 - row 195 accept: P2 is unnamed with a supplementary group, and P5 names docker
---
duration_ms: 3681.147919
type: 'test'
...
# Subtest: row 195 accept: P5 is closed with no jarvis account, and P2 with an empty authorized_keys
ok 30 - row 195 accept: P5 is closed with no jarvis account, and P2 with an empty authorized_keys
---
duration_ms: 1837.622854
type: 'test'
...
# Subtest: row 195 accept: P9 is unnamed once for each item missing
ok 31 - row 195 accept: P9 is unnamed once for each item missing
---
duration_ms: 9351.705376
type: 'test'
...
# Subtest: row253 accept: P10 fails its observation with another peer; P11 with the unit disabled
ok 32 - row253 accept: P10 fails its observation with another peer; P11 with the unit disabled
---
duration_ms: 3724.049411
type: 'test'
...
# Subtest: row 195 accept: every P check unnamed together still exits 0
ok 33 - row 195 accept: every P check unnamed together still exits 0
---
duration_ms: 1644.081467
type: 'test'
...
# Subtest: row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason
ok 34 - row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason
---
duration_ms: 93.429959
type: 'test'
...
# Subtest: row 195 accept: usage errors and a run without --root as a user exit 2
ok 35 - row 195 accept: usage errors and a run without --root as a user exit 2
---
duration_ms: 10.484275
type: 'test'
...
# Subtest: row 195 accept: every in-instance call goes through sudo -u mosaic -H env PATH=<node dir>:...
ok 36 - row 195 accept: every in-instance call goes through sudo -u mosaic -H env PATH=<node dir>:...
---
duration_ms: 1850.954185
type: 'test'
...
# Subtest: row 195 accept: the host check runs with --check and never --enforce
ok 37 - row 195 accept: the host check runs with --check and never --enforce
---
duration_ms: 1829.605146
type: 'test'
...
# Subtest: row276 legacy call inventory pins every production bound and the conversation contract
ok 38 - row276 legacy call inventory pins every production bound and the conversation contract
---
duration_ms: 0.390713
type: 'test'
...
# Subtest: row276 talk legacy inner timeout cleans both sudo models
ok 39 - row276 talk legacy inner timeout cleans both sudo models
---
duration_ms: 1671.508097
type: 'test'
...
# Subtest: row276 precheck legacy inner timeout cleans both sudo models
ok 40 - row276 precheck legacy inner timeout cleans both sudo models
---
duration_ms: 1671.245175
type: 'test'
...
# Subtest: row276 claude-version legacy inner timeout cleans both sudo models
ok 41 - row276 claude-version legacy inner timeout cleans both sudo models
---
duration_ms: 1675.495392
type: 'test'
...
# Subtest: row276 pm-list legacy inner timeout cleans both sudo models
ok 42 - row276 pm-list legacy inner timeout cleans both sudo models
---
duration_ms: 1661.382885
type: 'test'
...
# Subtest: row276 node-version legacy inner timeout cleans both sudo models
ok 43 - row276 node-version legacy inner timeout cleans both sudo models
---
duration_ms: 1692.3437
type: 'test'
...
# Subtest: row276 legacy streams and display status preserve failures without granting success
ok 44 - row276 legacy streams and display status preserve failures without granting success
---
duration_ms: 2545.7498
type: 'test'
...
# Subtest: row276 trailer grammar cannot make supervisor failure pass
ok 45 - row276 trailer grammar cannot make supervisor failure pass
---
duration_ms: 2097.946825
type: 'test'
...
# Subtest: row276 earlier forged trailer and appended zero remain failures
ok 46 - row276 earlier forged trailer and appended zero remain failures
---
duration_ms: 521.451262
type: 'test'
...
# Subtest: row276 precheck outer bound discards success status and fixture cleans residual
ok 47 - row276 precheck outer bound discards success status and fixture cleans residual
---
duration_ms: 2170.592563
type: 'test'
...
# Subtest: row276 case1 capture and legacy tools refuse unsafe system tools
ok 48 - row276 case1 capture and legacy tools refuse unsafe system tools
---
duration_ms: 76.678871
type: 'test'
...
# Subtest: row276 stderr retention is bounded and keeps the final diagnostic
ok 49 - row276 stderr retention is bounded and keeps the final diagnostic
---
duration_ms: 261.872028
type: 'test'
...
# Subtest: row276 version and PM checks refuse successful-looking stdout on supervisor failure
ok 50 - row276 version and PM checks refuse successful-looking stdout on supervisor failure
---
duration_ms: 16.458898
type: 'test'
...
# Subtest: row276 full acceptance keeps all five healthy calls in both sudo models
ok 51 - row276 full acceptance keeps all five healthy calls in both sudo models
---
duration_ms: 3762.37926
type: 'test'
...
# Subtest: row276 vanished pid stat read returns 3 with empty stderr in both scripts
ok 52 - row276 vanished pid stat read returns 3 with empty stderr in both scripts
---
duration_ms: 4.628196
type: 'test'
...
# Subtest: row276 legacy stdout snapshot preserves exact bytes on success and command failure
ok 53 - row276 legacy stdout snapshot preserves exact bytes on success and command failure
---
duration_ms: 3223.67506
type: 'test'
...
1..53
# tests 53
# suites 0
# pass 53
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 240011.017536
@@ -0,0 +1,3 @@
CLEAR
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/445652/cmdline: No such file or directory
/mnt/storage/scratch/sage-busy-now.sh: line 4: /proc/505165/cmdline: No such file or directory
@@ -0,0 +1,19 @@
{
"label": "case1-whole-3",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/gdjuph7",
"started_utc": "2026-10-23T07:34:59Z",
"start_load": "2.08 2.33 2.22 4/6464 509071",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/case1-whole-3.log",
"expected_red": false
}
@@ -0,0 +1,237 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:34:59Z",
"load": "2.08 2.33 2.22 8/6465 509072"
},
{
"wall_seconds": 5.001,
"utc": "2026-10-23T07:35:04Z",
"load": "2.23 2.36 2.23 4/6481 514861"
},
{
"wall_seconds": 10.001,
"utc": "2026-10-23T07:35:09Z",
"load": "2.13 2.33 2.22 3/6475 518876"
},
{
"wall_seconds": 15.001,
"utc": "2026-10-23T07:35:14Z",
"load": "2.04 2.31 2.22 3/6502 522276"
},
{
"wall_seconds": 20.001,
"utc": "2026-10-23T07:35:19Z",
"load": "2.04 2.31 2.22 3/6502 525490"
},
{
"wall_seconds": 25.001,
"utc": "2026-10-23T07:35:24Z",
"load": "2.04 2.30 2.21 5/6478 528962"
},
{
"wall_seconds": 30.002,
"utc": "2026-10-23T07:35:29Z",
"load": "2.03 2.30 2.21 3/6458 532409"
},
{
"wall_seconds": 35.002,
"utc": "2026-10-23T07:35:34Z",
"load": "2.03 2.29 2.21 2/6481 535342"
},
{
"wall_seconds": 40.002,
"utc": "2026-10-23T07:35:39Z",
"load": "2.03 2.29 2.21 3/6483 537759"
},
{
"wall_seconds": 45.002,
"utc": "2026-10-23T07:35:44Z",
"load": "1.86 2.25 2.20 5/6511 539004"
},
{
"wall_seconds": 50.003,
"utc": "2026-10-23T07:35:49Z",
"load": "1.72 2.21 2.19 2/6524 540002"
},
{
"wall_seconds": 55.003,
"utc": "2026-10-23T07:35:54Z",
"load": "1.58 2.17 2.17 2/6482 540672"
},
{
"wall_seconds": 60.003,
"utc": "2026-10-23T07:35:59Z",
"load": "1.53 2.15 2.17 4/6471 541194"
},
{
"wall_seconds": 65.003,
"utc": "2026-10-23T07:36:04Z",
"load": "1.81 2.20 2.18 2/6474 541568"
},
{
"wall_seconds": 70.003,
"utc": "2026-10-23T07:36:09Z",
"load": "2.31 2.30 2.21 4/6503 545391"
},
{
"wall_seconds": 75.004,
"utc": "2026-10-23T07:36:14Z",
"load": "2.28 2.29 2.21 4/6517 548112"
},
{
"wall_seconds": 80.004,
"utc": "2026-10-23T07:36:19Z",
"load": "2.42 2.32 2.22 3/6526 551314"
},
{
"wall_seconds": 85.004,
"utc": "2026-10-23T07:36:24Z",
"load": "2.38 2.31 2.22 23/6474 553438"
},
{
"wall_seconds": 90.004,
"utc": "2026-10-23T07:36:29Z",
"load": "2.27 2.29 2.21 3/6475 556781"
},
{
"wall_seconds": 95.005,
"utc": "2026-10-23T07:36:34Z",
"load": "2.25 2.29 2.21 4/6460 559513"
},
{
"wall_seconds": 100.005,
"utc": "2026-10-23T07:36:39Z",
"load": "2.79 2.40 2.25 4/6488 566252"
},
{
"wall_seconds": 105.005,
"utc": "2026-10-23T07:36:44Z",
"load": "2.81 2.41 2.25 4/6480 569779"
},
{
"wall_seconds": 110.005,
"utc": "2026-10-23T07:36:49Z",
"load": "2.66 2.39 2.25 3/6489 572874"
},
{
"wall_seconds": 115.006,
"utc": "2026-10-23T07:36:54Z",
"load": "2.61 2.38 2.25 3/6447 576109"
},
{
"wall_seconds": 120.006,
"utc": "2026-10-23T07:36:59Z",
"load": "2.64 2.39 2.25 3/6433 579360"
},
{
"wall_seconds": 125.006,
"utc": "2026-10-23T07:37:04Z",
"load": "2.59 2.38 2.25 6/6448 582606"
},
{
"wall_seconds": 130.006,
"utc": "2026-10-23T07:37:09Z",
"load": "2.54 2.38 2.25 5/6451 585750"
},
{
"wall_seconds": 135.006,
"utc": "2026-10-23T07:37:14Z",
"load": "2.42 2.35 2.24 3/6464 588554"
},
{
"wall_seconds": 140.007,
"utc": "2026-10-23T07:37:19Z",
"load": "2.31 2.33 2.23 5/6469 591375"
},
{
"wall_seconds": 145.007,
"utc": "2026-10-23T07:37:24Z",
"load": "2.20 2.31 2.23 3/6436 594632"
},
{
"wall_seconds": 150.007,
"utc": "2026-10-23T07:37:29Z",
"load": "2.10 2.29 2.22 4/6408 597793"
},
{
"wall_seconds": 155.007,
"utc": "2026-10-23T07:37:34Z",
"load": "2.02 2.27 2.21 6/6423 601114"
},
{
"wall_seconds": 160.008,
"utc": "2026-10-23T07:37:39Z",
"load": "1.93 2.24 2.21 5/6420 604470"
},
{
"wall_seconds": 165.008,
"utc": "2026-10-23T07:37:44Z",
"load": "1.86 2.22 2.20 4/6456 608664"
},
{
"wall_seconds": 170.008,
"utc": "2026-10-23T07:37:49Z",
"load": "1.87 2.22 2.20 4/6455 612187"
},
{
"wall_seconds": 175.008,
"utc": "2026-10-23T07:37:54Z",
"load": "2.04 2.25 2.21 4/6441 616556"
},
{
"wall_seconds": 180.009,
"utc": "2026-10-23T07:37:59Z",
"load": "2.36 2.31 2.23 5/6417 620859"
},
{
"wall_seconds": 185.009,
"utc": "2026-10-23T07:38:04Z",
"load": "2.25 2.29 2.22 4/6428 625167"
},
{
"wall_seconds": 190.009,
"utc": "2026-10-23T07:38:09Z",
"load": "2.15 2.27 2.21 3/6424 629560"
},
{
"wall_seconds": 195.009,
"utc": "2026-10-23T07:38:14Z",
"load": "2.06 2.25 2.21 3/6441 632894"
},
{
"wall_seconds": 200.009,
"utc": "2026-10-23T07:38:19Z",
"load": "1.97 2.22 2.20 4/6447 636095"
},
{
"wall_seconds": 205.01,
"utc": "2026-10-23T07:38:24Z",
"load": "1.97 2.22 2.20 3/6421 639217"
},
{
"wall_seconds": 210.01,
"utc": "2026-10-23T07:38:29Z",
"load": "2.06 2.23 2.20 3/6413 642341"
},
{
"wall_seconds": 215.01,
"utc": "2026-10-23T07:38:34Z",
"load": "1.89 2.20 2.19 2/6452 644528"
},
{
"wall_seconds": 220.01,
"utc": "2026-10-23T07:38:39Z",
"load": "1.98 2.21 2.20 5/6458 646052"
},
{
"wall_seconds": 225.011,
"utc": "2026-10-23T07:38:44Z",
"load": "1.90 2.19 2.19 3/6453 648762"
},
{
"wall_seconds": 230.011,
"utc": "2026-10-23T07:38:49Z",
"load": "1.99 2.20 2.19 3/6456 650851"
}
]
@@ -0,0 +1,332 @@
TAP version 13
# Subtest: row253 socket observation uses configured root, metadata and the Console peer without sending bytes
ok 1 - row253 socket observation uses configured root, metadata and the Console peer without sending bytes
---
duration_ms: 1953.256427
type: 'test'
...
# Subtest: row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure
ok 2 - row253 P10 refuses unsafe metadata, wrong peers and an unsafe Python without claiming closure
---
duration_ms: 29343.328577
type: 'test'
...
# Subtest: row253 acceptance rejects bad config and unsupported copies before talk
ok 3 - row253 acceptance rejects bad config and unsupported copies before talk
---
duration_ms: 1354.971037
type: 'test'
...
# Subtest: row253 stalled peer observation ends within its bound without leaving a reader
ok 4 - row253 stalled peer observation ends within its bound without leaving a reader
---
duration_ms: 3964.438002
type: 'test'
...
# Subtest: row253 P8 refuses both retired TCP and board listeners
ok 5 - row253 P8 refuses both retired TCP and board listeners
---
duration_ms: 3689.613255
type: 'test'
...
# Subtest: row253 C4 acceptance query inner reason holds under both sudo models
ok 6 - row253 C4 acceptance query inner reason holds under both sudo models
---
duration_ms: 10712.630086
type: 'test'
...
# Subtest: row253 C4 acceptance query outer reason discards stdout and names residual cleanup
ok 7 - row253 C4 acceptance query outer reason discards stdout and names residual cleanup
---
duration_ms: 14177.055814
type: 'test'
...
# Subtest: row253 C4 acceptance query overflow is output-limit in both models
ok 8 - row253 C4 acceptance query overflow is output-limit in both models
---
duration_ms: 492.274319
type: 'test'
...
# Subtest: row299 P10 timing copy preserves shipped bytes and isolates observer variables
ok 9 - row299 P10 timing copy preserves shipped bytes and isolates observer variables
---
duration_ms: 0.683633
type: 'test'
...
# Subtest: row299 P10 observers preserve stdout stderr status and the EXIT trap
ok 10 - row299 P10 observers preserve stdout stderr status and the EXIT trap
---
duration_ms: 3.307686
type: 'test'
...
# Subtest: row299 P10 observer records are complete and ordered
ok 11 - row299 P10 observer records are complete and ordered
---
duration_ms: 0.539265
type: 'test'
...
# Subtest: row253 C4 P10 inner reason holds under both sudo models
ok 12 - row253 C4 P10 inner reason holds under both sudo models
---
duration_ms: 11734.519359
type: 'test'
...
# {"fault":"inner","mode":"exec","baselineSeconds":1.8627637730000133,"faultSeconds":3.9948855329999935,"probeSeconds":2.25}
# {"fault":"inner","mode":"hop","baselineSeconds":1.8459824050000024,"faultSeconds":3.963717149000004,"probeSeconds":2.26}
# Subtest: row253 C4 P10 outer reason holds under both sudo models
ok 13 - row253 C4 P10 outer reason holds under both sudo models
---
duration_ms: 15259.754291
type: 'test'
...
# {"fault":"outer","mode":"exec","baselineSeconds":1.8736066859999991,"faultSeconds":5.7249899409999925,"probeSeconds":4}
# {"fault":"outer","mode":"hop","baselineSeconds":1.8894593350000068,"faultSeconds":5.709737833999999,"probeSeconds":4}
# Subtest: row253 C4 P10 overflow reason holds under both sudo models
ok 14 - row253 C4 P10 overflow reason holds under both sudo models
---
duration_ms: 3822.763403
type: 'test'
...
# Subtest: row 195 accept: every check passing exits 0, with each P mark and counts that match the lines
ok 15 - row 195 accept: every check passing exits 0, with each P mark and counts that match the lines
---
duration_ms: 1879.591109
type: 'test'
...
# Subtest: row 195 accept: exits 1 with each F check failing alone, and its line names it
ok 16 - row 195 accept: exits 1 with each F check failing alone, and its line names it
---
duration_ms: 20490.628667
type: 'test'
...
# Subtest: row 195 accept: F3 fails on exit 0 with no reply line, and its evidence takes talk's error
ok 17 - row 195 accept: F3 fails on exit 0 with no reply line, and its evidence takes talk's error
---
duration_ms: 3653.736213
type: 'test'
...
# Subtest: row 195 accept: F1 fails on a unit that isn't active or isn't User=mosaic
ok 18 - row 195 accept: F1 fails on a unit that isn't active or isn't User=mosaic
---
duration_ms: 3442.442361
type: 'test'
...
# Subtest: row 195 accept: F2 fails when healthz doesn't answer and when another pid holds the port
ok 19 - row 195 accept: F2 fails when healthz doesn't answer and when another pid holds the port
---
duration_ms: 3683.514446
type: 'test'
...
# Subtest: row 195 accept: F5 fails on unpriv_bwrap (enforce), on complain and on a trailing space
ok 20 - row 195 accept: F5 fails on unpriv_bwrap (enforce), on complain and on a trailing space
---
duration_ms: 8437.165336
type: 'test'
...
# Subtest: row 195 accept: F5 fails with no bwrap of mosaic's, and passes on comm alone
ok 21 - row 195 accept: F5 fails with no bwrap of mosaic's, and passes on comm alone
---
duration_ms: 3900.598202
type: 'test'
...
# Subtest: row 195 accept: F6 fails on a stub that prints nothing, on a path outside claude-<pin> and on a .. segment
ok 22 - row 195 accept: F6 fails on a stub that prints nothing, on a path outside claude-<pin> and on a .. segment
---
duration_ms: 4987.50038
type: 'test'
...
# Subtest: row 195 accept: F7 fails on two live PM launches, one for another business, and no launch.by
ok 23 - row 195 accept: F7 fails on two live PM launches, one for another business, and no launch.by
---
duration_ms: 5425.289834
type: 'test'
...
# Subtest: row 195 accept: F8 fails on 0640, on another owner and on a symlink, and never prints the credential
ok 24 - row 195 accept: F8 fails on 0640, on another owner and on a symlink, and never prints the credential
---
duration_ms: 5477.40542
type: 'test'
...
# Subtest: row 195 accept: F9 fails on another owner, a group-writable mode and a number for the flag
ok 25 - row 195 accept: F9 fails on another owner, a group-writable mode and a number for the flag
---
duration_ms: 5434.786414
type: 'test'
...
# Subtest: row 195 accept: F9 won't run --node as root off the pin path or with a writable directory above it
ok 26 - row 195 accept: F9 won't run --node as root off the pin path or with a writable directory above it
---
duration_ms: 5126.262984
type: 'test'
...
# Subtest: row 195 accept: F11 fails on one *.json under discord/ and passes on an empty directory
ok 27 - row 195 accept: F11 fails on one *.json under discord/ and passes on an empty directory
---
duration_ms: 3711.251951
type: 'test'
...
# Subtest: row 195 accept: each P check reports unnamed on its fault, and the exit stays 0
ok 28 - row 195 accept: each P check reports unnamed on its fault, and the exit stays 0
---
duration_ms: 16470.538016
type: 'test'
...
# Subtest: row 195 accept: P2 is unnamed with a supplementary group, and P5 names docker
ok 29 - row 195 accept: P2 is unnamed with a supplementary group, and P5 names docker
---
duration_ms: 3660.364965
type: 'test'
...
# Subtest: row 195 accept: P5 is closed with no jarvis account, and P2 with an empty authorized_keys
ok 30 - row 195 accept: P5 is closed with no jarvis account, and P2 with an empty authorized_keys
---
duration_ms: 1799.768335
type: 'test'
...
# Subtest: row 195 accept: P9 is unnamed once for each item missing
ok 31 - row 195 accept: P9 is unnamed once for each item missing
---
duration_ms: 9047.041702
type: 'test'
...
# Subtest: row253 accept: P10 fails its observation with another peer; P11 with the unit disabled
ok 32 - row253 accept: P10 fails its observation with another peer; P11 with the unit disabled
---
duration_ms: 3624.70672
type: 'test'
...
# Subtest: row 195 accept: every P check unnamed together still exits 0
ok 33 - row 195 accept: every P check unnamed together still exits 0
---
duration_ms: 1628.049695
type: 'test'
...
# Subtest: row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason
ok 34 - row 195 accept: a bad args file refuses with exit 2 before any check, each for its own reason
---
duration_ms: 96.211247
type: 'test'
...
# Subtest: row 195 accept: usage errors and a run without --root as a user exit 2
ok 35 - row 195 accept: usage errors and a run without --root as a user exit 2
---
duration_ms: 11.078071
type: 'test'
...
# Subtest: row 195 accept: every in-instance call goes through sudo -u mosaic -H env PATH=<node dir>:...
ok 36 - row 195 accept: every in-instance call goes through sudo -u mosaic -H env PATH=<node dir>:...
---
duration_ms: 1819.893166
type: 'test'
...
# Subtest: row 195 accept: the host check runs with --check and never --enforce
ok 37 - row 195 accept: the host check runs with --check and never --enforce
---
duration_ms: 1818.576075
type: 'test'
...
# Subtest: row276 legacy call inventory pins every production bound and the conversation contract
ok 38 - row276 legacy call inventory pins every production bound and the conversation contract
---
duration_ms: 0.367599
type: 'test'
...
# Subtest: row276 talk legacy inner timeout cleans both sudo models
ok 39 - row276 talk legacy inner timeout cleans both sudo models
---
duration_ms: 1643.944453
type: 'test'
...
# Subtest: row276 precheck legacy inner timeout cleans both sudo models
ok 40 - row276 precheck legacy inner timeout cleans both sudo models
---
duration_ms: 1647.187165
type: 'test'
...
# Subtest: row276 claude-version legacy inner timeout cleans both sudo models
ok 41 - row276 claude-version legacy inner timeout cleans both sudo models
---
duration_ms: 1658.311785
type: 'test'
...
# Subtest: row276 pm-list legacy inner timeout cleans both sudo models
ok 42 - row276 pm-list legacy inner timeout cleans both sudo models
---
duration_ms: 1662.34616
type: 'test'
...
# Subtest: row276 node-version legacy inner timeout cleans both sudo models
ok 43 - row276 node-version legacy inner timeout cleans both sudo models
---
duration_ms: 1691.506329
type: 'test'
...
# Subtest: row276 legacy streams and display status preserve failures without granting success
ok 44 - row276 legacy streams and display status preserve failures without granting success
---
duration_ms: 2558.787354
type: 'test'
...
# Subtest: row276 trailer grammar cannot make supervisor failure pass
ok 45 - row276 trailer grammar cannot make supervisor failure pass
---
duration_ms: 1998.18351
type: 'test'
...
# Subtest: row276 earlier forged trailer and appended zero remain failures
ok 46 - row276 earlier forged trailer and appended zero remain failures
---
duration_ms: 502.525144
type: 'test'
...
# Subtest: row276 precheck outer bound discards success status and fixture cleans residual
ok 47 - row276 precheck outer bound discards success status and fixture cleans residual
---
duration_ms: 2166.851271
type: 'test'
...
# Subtest: row276 case1 capture and legacy tools refuse unsafe system tools
ok 48 - row276 case1 capture and legacy tools refuse unsafe system tools
---
duration_ms: 74.697527
type: 'test'
...
# Subtest: row276 stderr retention is bounded and keeps the final diagnostic
ok 49 - row276 stderr retention is bounded and keeps the final diagnostic
---
duration_ms: 241.007102
type: 'test'
...
# Subtest: row276 version and PM checks refuse successful-looking stdout on supervisor failure
ok 50 - row276 version and PM checks refuse successful-looking stdout on supervisor failure
---
duration_ms: 16.132196
type: 'test'
...
# Subtest: row276 full acceptance keeps all five healthy calls in both sudo models
ok 51 - row276 full acceptance keeps all five healthy calls in both sudo models
---
duration_ms: 3685.474118
type: 'test'
...
# Subtest: row276 vanished pid stat read returns 3 with empty stderr in both scripts
ok 52 - row276 vanished pid stat read returns 3 with empty stderr in both scripts
---
duration_ms: 4.365639
type: 'test'
...
# Subtest: row276 legacy stdout snapshot preserves exact bytes on success and command failure
ok 53 - row276 legacy stdout snapshot preserves exact bytes on success and command failure
---
duration_ms: 3188.820303
type: 'test'
...
1..53
# tests 53
# suites 0
# pass 53
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 234980.293151
@@ -0,0 +1 @@
CLEAR
@@ -0,0 +1,77 @@
{
"label": "cli-whole",
"argv": [
"timeout",
"-k",
"10",
"5400",
"node",
"--test",
"--test-reporter=tap",
"packages/cli/tests/access-boot.test.mjs",
"packages/cli/tests/access.test.mjs",
"packages/cli/tests/app.test.mjs",
"packages/cli/tests/boot-status.test.mjs",
"packages/cli/tests/case1-accept.test.mjs",
"packages/cli/tests/case1-hostcheck.test.mjs",
"packages/cli/tests/case2-persona-import.test.mjs",
"packages/cli/tests/case2-unit.test.mjs",
"packages/cli/tests/channel-cli.test.mjs",
"packages/cli/tests/channel-recovery.test.mjs",
"packages/cli/tests/cli.test.mjs",
"packages/cli/tests/compactions-launch.test.mjs",
"packages/cli/tests/config.test.mjs",
"packages/cli/tests/credentials.test.mjs",
"packages/cli/tests/follow.test.mjs",
"packages/cli/tests/format.test.mjs",
"packages/cli/tests/gate-lane-auth.test.mjs",
"packages/cli/tests/gate-lane-fixtures.test.mjs",
"packages/cli/tests/gate-lane-image.test.mjs",
"packages/cli/tests/gate-lane-state.test.mjs",
"packages/cli/tests/gate-lane.test.mjs",
"packages/cli/tests/git-socket.test.mjs",
"packages/cli/tests/grants.test.mjs",
"packages/cli/tests/host.test.mjs",
"packages/cli/tests/hosts.test.mjs",
"packages/cli/tests/instances.test.mjs",
"packages/cli/tests/launch-account.test.mjs",
"packages/cli/tests/launch-limit-checks.test.mjs",
"packages/cli/tests/launch-limits.test.mjs",
"packages/cli/tests/launch-routes.test.mjs",
"packages/cli/tests/launcher.test.mjs",
"packages/cli/tests/lifecycle.test.mjs",
"packages/cli/tests/limits-tokens.test.mjs",
"packages/cli/tests/limits.test.mjs",
"packages/cli/tests/mark-read.test.mjs",
"packages/cli/tests/names.test.mjs",
"packages/cli/tests/notifier.test.mjs",
"packages/cli/tests/other-tree.test.mjs",
"packages/cli/tests/processing-cli.test.mjs",
"packages/cli/tests/project-name-repo.test.mjs",
"packages/cli/tests/project.test.mjs",
"packages/cli/tests/publish-socket.test.mjs",
"packages/cli/tests/session-clear.test.mjs",
"packages/cli/tests/session-launch.test.mjs",
"packages/cli/tests/stack-copy.test.mjs",
"packages/cli/tests/stack-instances.test.mjs",
"packages/cli/tests/stack-release-external.test.mjs",
"packages/cli/tests/stack-release.test.mjs",
"packages/cli/tests/stack-upgrade.test.mjs",
"packages/cli/tests/tester-http.test.mjs",
"packages/cli/tests/tester-reads.test.mjs",
"packages/cli/tests/tester-threads.test.mjs",
"packages/cli/tests/tester.test.mjs",
"packages/cli/tests/thread-cli.test.mjs",
"packages/cli/tests/thread-launch.test.mjs",
"packages/cli/tests/trackers-boot.test.mjs",
"packages/cli/tests/transport.test.mjs",
"packages/cli/tests/usage.test.mjs",
"packages/cli/tests/verbs.test.mjs"
],
"limit_seconds": 5400,
"tmpdir": "/mnt/storage/scratch/tmp/gebsaIr",
"started_utc": "2026-10-23T07:38:55Z",
"start_load": "1.91 2.18 2.19 1/6404 656161",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/cli-whole.log",
"expected_red": false
}
@@ -0,0 +1,637 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:38:55Z",
"load": "1.91 2.18 2.19 4/6405 656162"
},
{
"wall_seconds": 5.001,
"utc": "2026-10-23T07:39:00Z",
"load": "3.52 2.51 2.29 20/6571 665258"
},
{
"wall_seconds": 10.001,
"utc": "2026-10-23T07:39:05Z",
"load": "4.36 2.70 2.36 17/6696 672370"
},
{
"wall_seconds": 15.001,
"utc": "2026-10-23T07:39:10Z",
"load": "5.05 2.88 2.41 32/6707 679808"
},
{
"wall_seconds": 20.001,
"utc": "2026-10-23T07:39:15Z",
"load": "5.77 3.06 2.48 20/6712 687650"
},
{
"wall_seconds": 25.002,
"utc": "2026-10-23T07:39:20Z",
"load": "6.59 3.28 2.55 21/6675 696103"
},
{
"wall_seconds": 30.002,
"utc": "2026-10-23T07:39:25Z",
"load": "6.78 3.37 2.58 13/6627 705121"
},
{
"wall_seconds": 35.002,
"utc": "2026-10-23T07:39:30Z",
"load": "6.56 3.38 2.59 4/6596 713973"
},
{
"wall_seconds": 40.003,
"utc": "2026-10-23T07:39:35Z",
"load": "6.59 3.44 2.62 4/6582 722361"
},
{
"wall_seconds": 45.003,
"utc": "2026-10-23T07:39:40Z",
"load": "6.71 3.52 2.64 5/6573 729968"
},
{
"wall_seconds": 50.003,
"utc": "2026-10-23T07:39:45Z",
"load": "6.81 3.59 2.67 9/6577 737845"
},
{
"wall_seconds": 55.003,
"utc": "2026-10-23T07:39:50Z",
"load": "6.67 3.62 2.69 6/6627 744813"
},
{
"wall_seconds": 60.004,
"utc": "2026-10-23T07:39:55Z",
"load": "7.01 3.74 2.73 4/6582 752028"
},
{
"wall_seconds": 65.004,
"utc": "2026-10-23T07:40:00Z",
"load": "7.17 3.83 2.76 5/6551 763533"
},
{
"wall_seconds": 70.004,
"utc": "2026-10-23T07:40:05Z",
"load": "7.08 3.86 2.78 5/6568 774263"
},
{
"wall_seconds": 75.004,
"utc": "2026-10-23T07:40:10Z",
"load": "6.99 3.90 2.80 4/6564 781529"
},
{
"wall_seconds": 80.004,
"utc": "2026-10-23T07:40:15Z",
"load": "6.91 3.93 2.82 4/6556 787135"
},
{
"wall_seconds": 85.005,
"utc": "2026-10-23T07:40:20Z",
"load": "6.68 3.93 2.82 5/6548 793267"
},
{
"wall_seconds": 90.005,
"utc": "2026-10-23T07:40:25Z",
"load": "6.46 3.94 2.83 2/6525 799740"
},
{
"wall_seconds": 95.005,
"utc": "2026-10-23T07:40:30Z",
"load": "6.19 3.92 2.83 3/6566 805494"
},
{
"wall_seconds": 100.005,
"utc": "2026-10-23T07:40:35Z",
"load": "7.05 4.14 2.91 4/6526 810900"
},
{
"wall_seconds": 105.006,
"utc": "2026-10-23T07:40:40Z",
"load": "6.57 4.09 2.90 3/6492 813663"
},
{
"wall_seconds": 110.006,
"utc": "2026-10-23T07:40:45Z",
"load": "6.12 4.03 2.89 6/6526 817202"
},
{
"wall_seconds": 115.006,
"utc": "2026-10-23T07:40:50Z",
"load": "5.71 3.98 2.88 4/6542 820365"
},
{
"wall_seconds": 120.006,
"utc": "2026-10-23T07:40:55Z",
"load": "5.49 3.97 2.88 3/6504 824801"
},
{
"wall_seconds": 125.006,
"utc": "2026-10-23T07:41:00Z",
"load": "5.13 3.92 2.87 5/6520 829672"
},
{
"wall_seconds": 130.007,
"utc": "2026-10-23T07:41:05Z",
"load": "4.96 3.90 2.87 5/6491 835347"
},
{
"wall_seconds": 135.007,
"utc": "2026-10-23T07:41:10Z",
"load": "4.81 3.89 2.87 6/6515 841325"
},
{
"wall_seconds": 140.007,
"utc": "2026-10-23T07:41:15Z",
"load": "4.66 3.87 2.87 3/6533 846943"
},
{
"wall_seconds": 145.007,
"utc": "2026-10-23T07:41:20Z",
"load": "4.53 3.86 2.87 6/6537 852457"
},
{
"wall_seconds": 150.008,
"utc": "2026-10-23T07:41:25Z",
"load": "4.81 3.93 2.90 5/6497 857183"
},
{
"wall_seconds": 155.008,
"utc": "2026-10-23T07:41:30Z",
"load": "4.74 3.93 2.91 9/6493 862111"
},
{
"wall_seconds": 160.008,
"utc": "2026-10-23T07:41:35Z",
"load": "4.52 3.89 2.90 3/6484 867180"
},
{
"wall_seconds": 165.008,
"utc": "2026-10-23T07:41:40Z",
"load": "4.88 3.98 2.93 3/6494 874705"
},
{
"wall_seconds": 170.009,
"utc": "2026-10-23T07:41:45Z",
"load": "4.57 3.93 2.92 5/6513 879949"
},
{
"wall_seconds": 175.009,
"utc": "2026-10-23T07:41:50Z",
"load": "4.36 3.90 2.92 3/6532 885364"
},
{
"wall_seconds": 180.009,
"utc": "2026-10-23T07:41:55Z",
"load": "4.09 3.85 2.91 4/6518 889649"
},
{
"wall_seconds": 185.009,
"utc": "2026-10-23T07:42:00Z",
"load": "4.33 3.90 2.93 3/6500 895045"
},
{
"wall_seconds": 190.01,
"utc": "2026-10-23T07:42:05Z",
"load": "4.22 3.89 2.93 5/6497 900591"
},
{
"wall_seconds": 195.01,
"utc": "2026-10-23T07:42:10Z",
"load": "4.28 3.91 2.94 6/6500 906203"
},
{
"wall_seconds": 200.01,
"utc": "2026-10-23T07:42:15Z",
"load": "4.18 3.89 2.94 3/6513 911214"
},
{
"wall_seconds": 205.01,
"utc": "2026-10-23T07:42:20Z",
"load": "4.00 3.86 2.94 3/6521 916524"
},
{
"wall_seconds": 210.011,
"utc": "2026-10-23T07:42:25Z",
"load": "4.56 3.98 2.98 4/6507 921377"
},
{
"wall_seconds": 215.011,
"utc": "2026-10-23T07:42:30Z",
"load": "4.84 4.04 3.01 2/6517 926031"
},
{
"wall_seconds": 220.011,
"utc": "2026-10-23T07:42:35Z",
"load": "4.61 4.01 3.00 2/6512 930921"
},
{
"wall_seconds": 225.011,
"utc": "2026-10-23T07:42:40Z",
"load": "4.72 4.04 3.02 5/6513 936830"
},
{
"wall_seconds": 230.011,
"utc": "2026-10-23T07:42:45Z",
"load": "5.07 4.13 3.05 6/6527 943593"
},
{
"wall_seconds": 235.012,
"utc": "2026-10-23T07:42:50Z",
"load": "4.90 4.11 3.05 4/6524 949131"
},
{
"wall_seconds": 240.012,
"utc": "2026-10-23T07:42:55Z",
"load": "4.75 4.09 3.05 3/6538 954091"
},
{
"wall_seconds": 245.012,
"utc": "2026-10-23T07:43:00Z",
"load": "4.53 4.05 3.04 4/6526 957569"
},
{
"wall_seconds": 250.012,
"utc": "2026-10-23T07:43:05Z",
"load": "4.49 4.05 3.05 4/6512 961428"
},
{
"wall_seconds": 255.013,
"utc": "2026-10-23T07:43:10Z",
"load": "4.21 4.00 3.04 2/6514 964580"
},
{
"wall_seconds": 260.013,
"utc": "2026-10-23T07:43:15Z",
"load": "4.03 3.97 3.03 3/6520 969453"
},
{
"wall_seconds": 265.013,
"utc": "2026-10-23T07:43:20Z",
"load": "3.95 3.95 3.03 2/6510 972206"
},
{
"wall_seconds": 270.013,
"utc": "2026-10-23T07:43:25Z",
"load": "3.71 3.90 3.02 4/6485 974717"
},
{
"wall_seconds": 275.013,
"utc": "2026-10-23T07:43:30Z",
"load": "3.49 3.85 3.01 2/6458 976947"
},
{
"wall_seconds": 280.014,
"utc": "2026-10-23T07:43:35Z",
"load": "3.29 3.81 3.00 2/6480 979354"
},
{
"wall_seconds": 285.014,
"utc": "2026-10-23T07:43:40Z",
"load": "3.11 3.76 2.99 2/6484 981777"
},
{
"wall_seconds": 290.014,
"utc": "2026-10-23T07:43:45Z",
"load": "2.94 3.71 2.98 9/6503 984183"
},
{
"wall_seconds": 295.014,
"utc": "2026-10-23T07:43:50Z",
"load": "2.86 3.68 2.97 2/6530 986646"
},
{
"wall_seconds": 300.015,
"utc": "2026-10-23T07:43:55Z",
"load": "2.72 3.64 2.96 2/6518 989821"
},
{
"wall_seconds": 305.015,
"utc": "2026-10-23T07:44:00Z",
"load": "2.66 3.61 2.95 2/6504 993303"
},
{
"wall_seconds": 310.015,
"utc": "2026-10-23T07:44:05Z",
"load": "2.77 3.62 2.96 3/6379 996998"
},
{
"wall_seconds": 315.015,
"utc": "2026-10-23T07:44:10Z",
"load": "2.78 3.61 2.96 3/6398 1000446"
},
{
"wall_seconds": 320.015,
"utc": "2026-10-23T07:44:15Z",
"load": "2.72 3.58 2.95 3/6378 1003966"
},
{
"wall_seconds": 325.016,
"utc": "2026-10-23T07:44:20Z",
"load": "2.90 3.61 2.97 1/6404 1007129"
},
{
"wall_seconds": 330.016,
"utc": "2026-10-23T07:44:25Z",
"load": "2.75 3.56 2.96 2/6357 1009536"
},
{
"wall_seconds": 335.016,
"utc": "2026-10-23T07:44:30Z",
"load": "2.69 3.54 2.95 3/6346 1011941"
},
{
"wall_seconds": 340.016,
"utc": "2026-10-23T07:44:35Z",
"load": "2.56 3.49 2.94 2/6359 1014274"
},
{
"wall_seconds": 345.017,
"utc": "2026-10-23T07:44:40Z",
"load": "2.43 3.45 2.93 2/6364 1016643"
},
{
"wall_seconds": 350.017,
"utc": "2026-10-23T07:44:45Z",
"load": "2.24 3.39 2.91 2/6385 1019039"
},
{
"wall_seconds": 355.017,
"utc": "2026-10-23T07:44:50Z",
"load": "2.14 3.35 2.90 2/6398 1021488"
},
{
"wall_seconds": 360.017,
"utc": "2026-10-23T07:44:55Z",
"load": "2.12 3.33 2.90 1/6372 1024145"
},
{
"wall_seconds": 365.018,
"utc": "2026-10-23T07:45:00Z",
"load": "2.03 3.29 2.89 2/6356 1026540"
},
{
"wall_seconds": 370.018,
"utc": "2026-10-23T07:45:05Z",
"load": "2.03 3.27 2.88 4/6367 1028881"
},
{
"wall_seconds": 375.018,
"utc": "2026-10-23T07:45:10Z",
"load": "2.03 3.25 2.88 4/6356 1031296"
},
{
"wall_seconds": 380.018,
"utc": "2026-10-23T07:45:15Z",
"load": "2.43 3.31 2.90 4/6364 1034002"
},
{
"wall_seconds": 385.019,
"utc": "2026-10-23T07:45:20Z",
"load": "2.47 3.31 2.90 4/6431 1037181"
},
{
"wall_seconds": 390.019,
"utc": "2026-10-23T07:45:25Z",
"load": "2.52 3.30 2.90 3/6366 1040453"
},
{
"wall_seconds": 395.019,
"utc": "2026-10-23T07:45:30Z",
"load": "2.71 3.33 2.91 2/6356 1043515"
},
{
"wall_seconds": 400.019,
"utc": "2026-10-23T07:45:35Z",
"load": "2.58 3.29 2.90 2/6353 1047043"
},
{
"wall_seconds": 405.019,
"utc": "2026-10-23T07:45:40Z",
"load": "2.61 3.29 2.90 3/6371 1050590"
},
{
"wall_seconds": 410.02,
"utc": "2026-10-23T07:45:45Z",
"load": "2.56 3.26 2.90 4/6371 1054393"
},
{
"wall_seconds": 415.02,
"utc": "2026-10-23T07:45:50Z",
"load": "2.44 3.23 2.89 2/6391 1057424"
},
{
"wall_seconds": 420.02,
"utc": "2026-10-23T07:45:55Z",
"load": "2.40 3.21 2.88 2/6381 1059953"
},
{
"wall_seconds": 425.02,
"utc": "2026-10-23T07:46:00Z",
"load": "2.53 3.22 2.89 6/6361 1062385"
},
{
"wall_seconds": 430.021,
"utc": "2026-10-23T07:46:05Z",
"load": "2.49 3.20 2.88 5/6347 1064852"
},
{
"wall_seconds": 435.021,
"utc": "2026-10-23T07:46:10Z",
"load": "2.37 3.16 2.87 4/6362 1067362"
},
{
"wall_seconds": 440.021,
"utc": "2026-10-23T07:46:15Z",
"load": "2.26 3.13 2.86 2/6373 1069948"
},
{
"wall_seconds": 445.021,
"utc": "2026-10-23T07:46:20Z",
"load": "2.16 3.09 2.85 2/6397 1072349"
},
{
"wall_seconds": 450.022,
"utc": "2026-10-23T07:46:25Z",
"load": "2.22 3.09 2.85 3/6359 1075002"
},
{
"wall_seconds": 455.022,
"utc": "2026-10-23T07:46:30Z",
"load": "2.21 3.07 2.85 2/6341 1077533"
},
{
"wall_seconds": 460.022,
"utc": "2026-10-23T07:46:35Z",
"load": "2.19 3.05 2.85 2/6351 1080042"
},
{
"wall_seconds": 465.022,
"utc": "2026-10-23T07:46:40Z",
"load": "2.26 3.05 2.85 2/6353 1084865"
},
{
"wall_seconds": 470.022,
"utc": "2026-10-23T07:46:45Z",
"load": "2.23 3.03 2.84 2/6375 1087473"
},
{
"wall_seconds": 475.023,
"utc": "2026-10-23T07:46:50Z",
"load": "2.30 3.03 2.84 5/6406 1090849"
},
{
"wall_seconds": 480.023,
"utc": "2026-10-23T07:46:55Z",
"load": "3.07 3.18 2.89 2/6380 1094664"
},
{
"wall_seconds": 485.023,
"utc": "2026-10-23T07:47:00Z",
"load": "3.07 3.18 2.89 4/6352 1098090"
},
{
"wall_seconds": 490.023,
"utc": "2026-10-23T07:47:05Z",
"load": "3.06 3.17 2.89 7/6377 1101587"
},
{
"wall_seconds": 495.024,
"utc": "2026-10-23T07:47:10Z",
"load": "3.06 3.17 2.89 6/6350 1104939"
},
{
"wall_seconds": 500.024,
"utc": "2026-10-23T07:47:15Z",
"load": "2.97 3.15 2.89 4/6368 1107224"
},
{
"wall_seconds": 505.024,
"utc": "2026-10-23T07:47:20Z",
"load": "2.89 3.13 2.88 2/6386 1109380"
},
{
"wall_seconds": 510.024,
"utc": "2026-10-23T07:47:25Z",
"load": "3.22 3.20 2.91 1/6387 1110174"
},
{
"wall_seconds": 515.024,
"utc": "2026-10-23T07:47:30Z",
"load": "3.12 3.18 2.90 4/6370 1111210"
},
{
"wall_seconds": 520.025,
"utc": "2026-10-23T07:47:35Z",
"load": "2.95 3.14 2.89 3/6330 1112228"
},
{
"wall_seconds": 525.025,
"utc": "2026-10-23T07:47:40Z",
"load": "2.72 3.09 2.88 1/6328 1112851"
},
{
"wall_seconds": 530.025,
"utc": "2026-10-23T07:47:45Z",
"load": "2.58 3.05 2.87 1/6357 1113559"
},
{
"wall_seconds": 535.025,
"utc": "2026-10-23T07:47:50Z",
"load": "2.45 3.02 2.86 1/6366 1114165"
},
{
"wall_seconds": 540.026,
"utc": "2026-10-23T07:47:55Z",
"load": "2.26 2.97 2.84 1/6356 1114925"
},
{
"wall_seconds": 545.026,
"utc": "2026-10-23T07:48:00Z",
"load": "2.16 2.94 2.83 3/6326 1115379"
},
{
"wall_seconds": 550.026,
"utc": "2026-10-23T07:48:05Z",
"load": "1.98 2.89 2.81 1/6330 1115933"
},
{
"wall_seconds": 555.026,
"utc": "2026-10-23T07:48:10Z",
"load": "1.90 2.86 2.80 5/6348 1117979"
},
{
"wall_seconds": 560.026,
"utc": "2026-10-23T07:48:15Z",
"load": "1.75 2.81 2.79 5/6352 1119958"
},
{
"wall_seconds": 565.027,
"utc": "2026-10-23T07:48:20Z",
"load": "1.69 2.78 2.78 3/6395 1121255"
},
{
"wall_seconds": 570.027,
"utc": "2026-10-23T07:48:25Z",
"load": "1.63 2.75 2.77 2/6344 1122878"
},
{
"wall_seconds": 575.027,
"utc": "2026-10-23T07:48:30Z",
"load": "1.58 2.72 2.76 2/6330 1125425"
},
{
"wall_seconds": 580.027,
"utc": "2026-10-23T07:48:35Z",
"load": "1.54 2.69 2.75 3/6307 1128035"
},
{
"wall_seconds": 585.028,
"utc": "2026-10-23T07:48:40Z",
"load": "1.81 2.73 2.76 3/6395 1131079"
},
{
"wall_seconds": 590.028,
"utc": "2026-10-23T07:48:45Z",
"load": "1.75 2.70 2.75 2/6324 1133629"
},
{
"wall_seconds": 595.028,
"utc": "2026-10-23T07:48:50Z",
"load": "1.77 2.69 2.75 2/6354 1135983"
},
{
"wall_seconds": 600.028,
"utc": "2026-10-23T07:48:55Z",
"load": "1.71 2.66 2.74 2/6317 1138250"
},
{
"wall_seconds": 605.029,
"utc": "2026-10-23T07:49:00Z",
"load": "1.65 2.63 2.73 2/6307 1140569"
},
{
"wall_seconds": 610.029,
"utc": "2026-10-23T07:49:05Z",
"load": "1.68 2.62 2.72 2/5871 1142432"
},
{
"wall_seconds": 615.029,
"utc": "2026-10-23T07:49:10Z",
"load": "1.70 2.61 2.72 2/5858 1144385"
},
{
"wall_seconds": 620.029,
"utc": "2026-10-23T07:49:15Z",
"load": "1.57 2.57 2.71 1/5860 1145308"
},
{
"wall_seconds": 625.03,
"utc": "2026-10-23T07:49:20Z",
"load": "1.60 2.56 2.70 2/5872 1147140"
},
{
"wall_seconds": 630.03,
"utc": "2026-10-23T07:49:25Z",
"load": "1.55 2.53 2.69 2/5844 1149434"
}
]
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,909 @@
{
"grant": "sage-3268",
"m4_ruling": "sage-3273 / mos-1426",
"head": "ffa93b054f28852a75017928d8478bdf9046e717",
"manifest": "277ace0b4274970d5bd4c05cf8fe99aa1e7ebc469a719e4cefcb334a75d3865d",
"status": "GREEN",
"cli_file_list": [
"packages/cli/tests/access-boot.test.mjs",
"packages/cli/tests/access.test.mjs",
"packages/cli/tests/app.test.mjs",
"packages/cli/tests/boot-status.test.mjs",
"packages/cli/tests/case1-accept.test.mjs",
"packages/cli/tests/case1-hostcheck.test.mjs",
"packages/cli/tests/case2-persona-import.test.mjs",
"packages/cli/tests/case2-unit.test.mjs",
"packages/cli/tests/channel-cli.test.mjs",
"packages/cli/tests/channel-recovery.test.mjs",
"packages/cli/tests/cli.test.mjs",
"packages/cli/tests/compactions-launch.test.mjs",
"packages/cli/tests/config.test.mjs",
"packages/cli/tests/credentials.test.mjs",
"packages/cli/tests/follow.test.mjs",
"packages/cli/tests/format.test.mjs",
"packages/cli/tests/gate-lane-auth.test.mjs",
"packages/cli/tests/gate-lane-fixtures.test.mjs",
"packages/cli/tests/gate-lane-image.test.mjs",
"packages/cli/tests/gate-lane-state.test.mjs",
"packages/cli/tests/gate-lane.test.mjs",
"packages/cli/tests/git-socket.test.mjs",
"packages/cli/tests/grants.test.mjs",
"packages/cli/tests/host.test.mjs",
"packages/cli/tests/hosts.test.mjs",
"packages/cli/tests/instances.test.mjs",
"packages/cli/tests/launch-account.test.mjs",
"packages/cli/tests/launch-limit-checks.test.mjs",
"packages/cli/tests/launch-limits.test.mjs",
"packages/cli/tests/launch-routes.test.mjs",
"packages/cli/tests/launcher.test.mjs",
"packages/cli/tests/lifecycle.test.mjs",
"packages/cli/tests/limits-tokens.test.mjs",
"packages/cli/tests/limits.test.mjs",
"packages/cli/tests/mark-read.test.mjs",
"packages/cli/tests/names.test.mjs",
"packages/cli/tests/notifier.test.mjs",
"packages/cli/tests/other-tree.test.mjs",
"packages/cli/tests/processing-cli.test.mjs",
"packages/cli/tests/project-name-repo.test.mjs",
"packages/cli/tests/project.test.mjs",
"packages/cli/tests/publish-socket.test.mjs",
"packages/cli/tests/session-clear.test.mjs",
"packages/cli/tests/session-launch.test.mjs",
"packages/cli/tests/stack-copy.test.mjs",
"packages/cli/tests/stack-instances.test.mjs",
"packages/cli/tests/stack-release-external.test.mjs",
"packages/cli/tests/stack-release.test.mjs",
"packages/cli/tests/stack-upgrade.test.mjs",
"packages/cli/tests/tester-http.test.mjs",
"packages/cli/tests/tester-reads.test.mjs",
"packages/cli/tests/tester-threads.test.mjs",
"packages/cli/tests/tester.test.mjs",
"packages/cli/tests/thread-cli.test.mjs",
"packages/cli/tests/thread-launch.test.mjs",
"packages/cli/tests/trackers-boot.test.mjs",
"packages/cli/tests/transport.test.mjs",
"packages/cli/tests/usage.test.mjs",
"packages/cli/tests/verbs.test.mjs"
],
"cli_file_count": 59,
"stages": [
{
"label": "syntax-1",
"argv": [
"timeout",
"-k",
"10",
"120",
"node",
"--check",
"packages/cli/tests/case-p10-timing-fixture.mjs"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/g6MkUyY",
"started_utc": "2026-10-23T07:26:54Z",
"start_load": "1.05 1.69 2.00 5/6642 199026",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/syntax-1.log",
"expected_red": false,
"rc": 0,
"wall_seconds": 0.032,
"finished_utc": "2026-10-23T07:26:54Z",
"end_load": "1.05 1.69 2.00 3/6641 199047",
"counts": {},
"metrics": [],
"skip_lines": [],
"external_timeout": false
},
{
"label": "syntax-2",
"argv": [
"timeout",
"-k",
"10",
"120",
"node",
"--check",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/gbr1O5v",
"started_utc": "2026-10-23T07:26:55Z",
"start_load": "1.05 1.69 2.00 2/6651 202505",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/syntax-2.log",
"expected_red": false,
"rc": 0,
"wall_seconds": 0.032,
"finished_utc": "2026-10-23T07:26:55Z",
"end_load": "1.05 1.69 2.00 1/6651 202515",
"counts": {},
"metrics": [],
"skip_lines": [],
"external_timeout": false
},
{
"label": "case1-whole-1",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/geSGqXZ",
"started_utc": "2026-10-23T07:26:57Z",
"start_load": "1.05 1.69 2.00 1/6640 205920",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/case1-whole-1.log",
"expected_red": false,
"rc": 0,
"wall_seconds": 239.134,
"finished_utc": "2026-10-23T07:30:56Z",
"end_load": "3.41 2.47 2.22 1/6690 353962",
"counts": {
"tests": 53,
"pass": 53,
"fail": 0,
"cancelled": 0,
"skipped": 0,
"todo": 0
},
"metrics": [
{
"fault": "inner",
"mode": "exec",
"baselineSeconds": 1.8914214159999974,
"faultSeconds": 3.974223306999993,
"probeSeconds": 2.25
},
{
"fault": "inner",
"mode": "hop",
"baselineSeconds": 1.8980776110000006,
"faultSeconds": 4.004310756999999,
"probeSeconds": 2.27
},
{
"fault": "outer",
"mode": "exec",
"baselineSeconds": 1.8725320299999875,
"faultSeconds": 5.715126132999998,
"probeSeconds": 4
},
{
"fault": "outer",
"mode": "hop",
"baselineSeconds": 1.8715896639999992,
"faultSeconds": 5.726812752999991,
"probeSeconds": 4
}
],
"skip_lines": [],
"external_timeout": false
},
{
"label": "case1-whole-2",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/gd0qwWL",
"started_utc": "2026-10-23T07:30:57Z",
"start_load": "3.41 2.47 2.22 4/6666 357541",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/case1-whole-2.log",
"expected_red": false,
"rc": 0,
"wall_seconds": 240.044,
"finished_utc": "2026-10-23T07:34:57Z",
"end_load": "2.00 2.32 2.22 1/6458 505199",
"counts": {
"tests": 53,
"pass": 53,
"fail": 0,
"cancelled": 0,
"skipped": 0,
"todo": 0
},
"metrics": [
{
"fault": "inner",
"mode": "exec",
"baselineSeconds": 1.9894229939999932,
"faultSeconds": 4.213512103000001,
"probeSeconds": 2.29
},
{
"fault": "inner",
"mode": "hop",
"baselineSeconds": 2.056171266999998,
"faultSeconds": 4.169351735999997,
"probeSeconds": 2.28
},
{
"fault": "outer",
"mode": "exec",
"baselineSeconds": 1.9589971570000053,
"faultSeconds": 5.726783651999998,
"probeSeconds": 4
},
{
"fault": "outer",
"mode": "hop",
"baselineSeconds": 1.879084925999996,
"faultSeconds": 5.732443853999998,
"probeSeconds": 4.01
}
],
"skip_lines": [],
"external_timeout": false
},
{
"label": "case1-whole-3",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/gdjuph7",
"started_utc": "2026-10-23T07:34:59Z",
"start_load": "2.08 2.33 2.22 4/6464 509071",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/case1-whole-3.log",
"expected_red": false,
"rc": 0,
"wall_seconds": 235.011,
"finished_utc": "2026-10-23T07:38:54Z",
"end_load": "1.91 2.18 2.19 2/6403 652743",
"counts": {
"tests": 53,
"pass": 53,
"fail": 0,
"cancelled": 0,
"skipped": 0,
"todo": 0
},
"metrics": [
{
"fault": "inner",
"mode": "exec",
"baselineSeconds": 1.8627637730000133,
"faultSeconds": 3.9948855329999935,
"probeSeconds": 2.25
},
{
"fault": "inner",
"mode": "hop",
"baselineSeconds": 1.8459824050000024,
"faultSeconds": 3.963717149000004,
"probeSeconds": 2.26
},
{
"fault": "outer",
"mode": "exec",
"baselineSeconds": 1.8736066859999991,
"faultSeconds": 5.7249899409999925,
"probeSeconds": 4
},
{
"fault": "outer",
"mode": "hop",
"baselineSeconds": 1.8894593350000068,
"faultSeconds": 5.709737833999999,
"probeSeconds": 4
}
],
"skip_lines": [],
"external_timeout": false
},
{
"label": "cli-whole",
"argv": [
"timeout",
"-k",
"10",
"5400",
"node",
"--test",
"--test-reporter=tap",
"packages/cli/tests/access-boot.test.mjs",
"packages/cli/tests/access.test.mjs",
"packages/cli/tests/app.test.mjs",
"packages/cli/tests/boot-status.test.mjs",
"packages/cli/tests/case1-accept.test.mjs",
"packages/cli/tests/case1-hostcheck.test.mjs",
"packages/cli/tests/case2-persona-import.test.mjs",
"packages/cli/tests/case2-unit.test.mjs",
"packages/cli/tests/channel-cli.test.mjs",
"packages/cli/tests/channel-recovery.test.mjs",
"packages/cli/tests/cli.test.mjs",
"packages/cli/tests/compactions-launch.test.mjs",
"packages/cli/tests/config.test.mjs",
"packages/cli/tests/credentials.test.mjs",
"packages/cli/tests/follow.test.mjs",
"packages/cli/tests/format.test.mjs",
"packages/cli/tests/gate-lane-auth.test.mjs",
"packages/cli/tests/gate-lane-fixtures.test.mjs",
"packages/cli/tests/gate-lane-image.test.mjs",
"packages/cli/tests/gate-lane-state.test.mjs",
"packages/cli/tests/gate-lane.test.mjs",
"packages/cli/tests/git-socket.test.mjs",
"packages/cli/tests/grants.test.mjs",
"packages/cli/tests/host.test.mjs",
"packages/cli/tests/hosts.test.mjs",
"packages/cli/tests/instances.test.mjs",
"packages/cli/tests/launch-account.test.mjs",
"packages/cli/tests/launch-limit-checks.test.mjs",
"packages/cli/tests/launch-limits.test.mjs",
"packages/cli/tests/launch-routes.test.mjs",
"packages/cli/tests/launcher.test.mjs",
"packages/cli/tests/lifecycle.test.mjs",
"packages/cli/tests/limits-tokens.test.mjs",
"packages/cli/tests/limits.test.mjs",
"packages/cli/tests/mark-read.test.mjs",
"packages/cli/tests/names.test.mjs",
"packages/cli/tests/notifier.test.mjs",
"packages/cli/tests/other-tree.test.mjs",
"packages/cli/tests/processing-cli.test.mjs",
"packages/cli/tests/project-name-repo.test.mjs",
"packages/cli/tests/project.test.mjs",
"packages/cli/tests/publish-socket.test.mjs",
"packages/cli/tests/session-clear.test.mjs",
"packages/cli/tests/session-launch.test.mjs",
"packages/cli/tests/stack-copy.test.mjs",
"packages/cli/tests/stack-instances.test.mjs",
"packages/cli/tests/stack-release-external.test.mjs",
"packages/cli/tests/stack-release.test.mjs",
"packages/cli/tests/stack-upgrade.test.mjs",
"packages/cli/tests/tester-http.test.mjs",
"packages/cli/tests/tester-reads.test.mjs",
"packages/cli/tests/tester-threads.test.mjs",
"packages/cli/tests/tester.test.mjs",
"packages/cli/tests/thread-cli.test.mjs",
"packages/cli/tests/thread-launch.test.mjs",
"packages/cli/tests/trackers-boot.test.mjs",
"packages/cli/tests/transport.test.mjs",
"packages/cli/tests/usage.test.mjs",
"packages/cli/tests/verbs.test.mjs"
],
"limit_seconds": 5400,
"tmpdir": "/mnt/storage/scratch/tmp/gebsaIr",
"started_utc": "2026-10-23T07:38:55Z",
"start_load": "1.91 2.18 2.19 1/6404 656161",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/cli-whole.log",
"expected_red": false,
"rc": 0,
"wall_seconds": 631.848,
"finished_utc": "2026-10-23T07:49:27Z",
"end_load": "1.55 2.53 2.69 1/5811 1150227",
"counts": {
"tests": 917,
"pass": 917,
"fail": 0,
"cancelled": 0,
"skipped": 0,
"todo": 0
},
"metrics": [
{
"fault": "inner",
"mode": "exec",
"baselineSeconds": 2.0945929310000064,
"faultSeconds": 4.18209504700001,
"probeSeconds": 2.27
},
{
"fault": "inner",
"mode": "hop",
"baselineSeconds": 1.9464092949999903,
"faultSeconds": 4.171354483000003,
"probeSeconds": 2.27
},
{
"fault": "outer",
"mode": "exec",
"baselineSeconds": 1.9332695270000113,
"faultSeconds": 5.785670190999998,
"probeSeconds": 4.01
},
{
"fault": "outer",
"mode": "hop",
"baselineSeconds": 1.8855918230000097,
"faultSeconds": 5.739914212000003,
"probeSeconds": 4.01
}
],
"skip_lines": [],
"external_timeout": false
},
{
"label": "M1-syntax",
"argv": [
"timeout",
"-k",
"10",
"120",
"bash",
"-n",
"scripts/case1-accept.sh"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/gh8s2Og",
"started_utc": "2026-10-23T07:49:28Z",
"start_load": "1.51 2.50 2.68 3/5810 1153451",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M1-syntax.log",
"expected_red": false,
"rc": 0,
"wall_seconds": 0.008,
"finished_utc": "2026-10-23T07:49:28Z",
"end_load": "1.51 2.50 2.68 1/5810 1153455",
"counts": {},
"metrics": [],
"skip_lines": [],
"external_timeout": false
},
{
"label": "M1",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"--test-name-pattern",
"^row253 C4 P10 inner reason holds under both sudo models$",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/gxjj9Vd",
"started_utc": "2026-10-23T07:49:30Z",
"start_load": "1.51 2.50 2.68 1/5816 1156782",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M1.log",
"expected_red": true,
"rc": 1,
"wall_seconds": 4.774,
"finished_utc": "2026-10-23T07:49:34Z",
"end_load": "1.47 2.48 2.67 2/5828 1159225",
"counts": {
"tests": 1,
"pass": 0,
"fail": 1,
"cancelled": 0,
"skipped": 0,
"todo": 0
},
"metrics": [
{
"fault": "inner",
"mode": "exec",
"baselineSeconds": 1.764558389,
"faultSeconds": 2.8568522200000004,
"probeSeconds": 1.23
}
],
"skip_lines": [],
"external_timeout": false,
"killed": true,
"kill_test": "row253 C4 P10 inner reason holds under both sudo models",
"mutated_sha256": "83fc6e5d93d9dbe8c40995c4e1445a3b61312df3a988a7ad0f7b63c762d2bf3f"
},
{
"label": "M2-syntax",
"argv": [
"timeout",
"-k",
"10",
"120",
"bash",
"-n",
"scripts/case1-accept.sh"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/gZ30EQX",
"started_utc": "2026-10-23T07:49:36Z",
"start_load": "1.47 2.48 2.67 1/5822 1162481",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M2-syntax.log",
"expected_red": false,
"rc": 0,
"wall_seconds": 0.008,
"finished_utc": "2026-10-23T07:49:36Z",
"end_load": "1.47 2.48 2.67 1/5822 1162485",
"counts": {},
"metrics": [],
"skip_lines": [],
"external_timeout": false
},
{
"label": "M2",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"--test-name-pattern",
"^row253 C4 P10 inner reason holds under both sudo models$",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/gYr4G6o",
"started_utc": "2026-10-23T07:49:37Z",
"start_load": "1.47 2.48 2.67 1/5823 1165689",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M2.log",
"expected_red": true,
"rc": 1,
"wall_seconds": 6.768,
"finished_utc": "2026-10-23T07:49:44Z",
"end_load": "1.40 2.43 2.66 5/5879 1169357",
"counts": {
"tests": 1,
"pass": 0,
"fail": 1,
"cancelled": 0,
"skipped": 0,
"todo": 0
},
"metrics": [
{
"fault": "inner",
"mode": "exec",
"baselineSeconds": 1.754618234,
"faultSeconds": 4.849417662,
"probeSeconds": 3.24
}
],
"skip_lines": [],
"external_timeout": false,
"killed": true,
"kill_test": "row253 C4 P10 inner reason holds under both sudo models",
"mutated_sha256": "269e550da358457cbc85df637f02c323bfc09c21cedea2bc9f4968bedd5c71a4"
},
{
"label": "M3-syntax",
"argv": [
"timeout",
"-k",
"10",
"120",
"bash",
"-n",
"scripts/case1-accept.sh"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/gwCkjzX",
"started_utc": "2026-10-23T07:49:45Z",
"start_load": "1.40 2.43 2.66 2/5844 1172866",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M3-syntax.log",
"expected_red": false,
"rc": 0,
"wall_seconds": 0.008,
"finished_utc": "2026-10-23T07:49:45Z",
"end_load": "1.40 2.43 2.66 2/5844 1172870",
"counts": {},
"metrics": [],
"skip_lines": [],
"external_timeout": false
},
{
"label": "M3",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"--test-name-pattern",
"^row253 C4 P10 outer reason holds under both sudo models$",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/g6TrU8V",
"started_utc": "2026-10-23T07:49:46Z",
"start_load": "1.40 2.43 2.66 2/5868 1176268",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M3.log",
"expected_red": true,
"rc": 1,
"wall_seconds": 6.618,
"finished_utc": "2026-10-23T07:49:53Z",
"end_load": "1.41 2.40 2.64 2/5827 1179333",
"counts": {
"tests": 1,
"pass": 0,
"fail": 1,
"cancelled": 0,
"skipped": 0,
"todo": 0
},
"metrics": [
{
"fault": "outer",
"mode": "exec",
"baselineSeconds": 1.7982556909999998,
"faultSeconds": 4.664919980999999,
"probeSeconds": 3.01
}
],
"skip_lines": [],
"external_timeout": false,
"killed": true,
"kill_test": "row253 C4 P10 outer reason holds under both sudo models",
"mutated_sha256": "21143aeb637ef864cdcb71086b3149c9817b5af752bc431e963c51a04f01b498"
},
{
"label": "M4-syntax",
"argv": [
"timeout",
"-k",
"10",
"120",
"bash",
"-n",
"scripts/case1-accept.sh"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/gRPd59t",
"started_utc": "2026-10-23T07:49:54Z",
"start_load": "1.41 2.40 2.64 3/5836 1182894",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M4-syntax.log",
"expected_red": false,
"rc": 0,
"wall_seconds": 0.008,
"finished_utc": "2026-10-23T07:49:54Z",
"end_load": "1.41 2.40 2.64 3/5840 1182903",
"counts": {},
"metrics": [],
"skip_lines": [],
"external_timeout": false
},
{
"label": "M4",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"--test-name-pattern",
"^row253 C4 P10 outer reason holds under both sudo models$",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/gAKhO44",
"started_utc": "2026-10-23T07:49:56Z",
"start_load": "1.41 2.40 2.64 8/5839 1186447",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M4.log",
"expected_red": true,
"rc": 1,
"wall_seconds": 9.023,
"finished_utc": "2026-10-23T07:50:05Z",
"end_load": "1.65 2.42 2.65 2/5832 1193403",
"counts": {
"tests": 1,
"pass": 0,
"fail": 1,
"cancelled": 0,
"skipped": 0,
"todo": 0
},
"metrics": [],
"skip_lines": [],
"external_timeout": false,
"guard_return_receipt": {
"ruling": "sage-3273 / mos-1426",
"configured_ms": 7000,
"named_command_returned": true,
"rc": 1,
"wall_seconds": 9.023,
"actual_refusal": "probe-inner-command",
"external_timeout": false,
"evidence": "named outer-reason ERR_ASSERTION in raw log after the unchanged safety guard returns; guard itself has no log channel"
},
"killed": true,
"kill_test": "row253 C4 P10 outer reason holds under both sudo models",
"mutated_sha256": "cde2e58596794ff7c185c46979e2f7abcb3032ec6903653b7043fe17ef54baee"
},
{
"label": "M5-syntax",
"argv": [
"timeout",
"-k",
"10",
"120",
"node",
"--check",
"packages/cli/tests/case-p10-timing-fixture.mjs"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/g8waDyO",
"started_utc": "2026-10-23T07:50:06Z",
"start_load": "1.65 2.42 2.65 2/5826 1197030",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M5-syntax.log",
"expected_red": false,
"rc": 0,
"wall_seconds": 0.032,
"finished_utc": "2026-10-23T07:50:06Z",
"end_load": "1.65 2.42 2.65 2/5838 1197071",
"counts": {},
"metrics": [],
"skip_lines": [],
"external_timeout": false
},
{
"label": "M5",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"--test-name-pattern",
"^row253 C4 P10 inner reason holds under both sudo models$",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/gdAgQSv",
"started_utc": "2026-10-23T07:50:07Z",
"start_load": "1.65 2.42 2.65 2/5824 1200489",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M5.log",
"expected_red": true,
"rc": 1,
"wall_seconds": 5.816,
"finished_utc": "2026-10-23T07:50:13Z",
"end_load": "1.63 2.39 2.63 2/5844 1203280",
"counts": {
"tests": 1,
"pass": 0,
"fail": 1,
"cancelled": 0,
"skipped": 0,
"todo": 0
},
"metrics": [],
"skip_lines": [],
"external_timeout": false,
"killed": true,
"kill_test": "row253 C4 P10 inner reason holds under both sudo models",
"mutated_sha256": "e8a42dc79c14ada3e3339b372af75f2b4688a43ec8748b4cf3acb8bec32a3a23"
},
{
"label": "M6-syntax",
"argv": [
"timeout",
"-k",
"10",
"120",
"node",
"--check",
"packages/cli/tests/case-p10-timing-fixture.mjs"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/gD2IEb2",
"started_utc": "2026-10-23T07:50:15Z",
"start_load": "1.63 2.39 2.63 1/5845 1206646",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M6-syntax.log",
"expected_red": false,
"rc": 0,
"wall_seconds": 0.032,
"finished_utc": "2026-10-23T07:50:15Z",
"end_load": "1.63 2.39 2.63 2/5845 1206656",
"counts": {},
"metrics": [],
"skip_lines": [],
"external_timeout": false
},
{
"label": "M6",
"argv": [
"timeout",
"-k",
"10",
"1200",
"node",
"--test",
"--test-reporter=tap",
"--test-name-pattern",
"^row299 P10 observer records are complete and ordered$",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 1200,
"tmpdir": "/mnt/storage/scratch/tmp/gAZq1pv",
"started_utc": "2026-10-23T07:50:16Z",
"start_load": "1.63 2.39 2.63 2/5837 1210084",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/M6.log",
"expected_red": true,
"rc": 1,
"wall_seconds": 0.164,
"finished_utc": "2026-10-23T07:50:16Z",
"end_load": "1.63 2.39 2.63 1/5837 1210101",
"counts": {
"tests": 1,
"pass": 0,
"fail": 1,
"cancelled": 0,
"skipped": 0,
"todo": 0
},
"metrics": [],
"skip_lines": [],
"external_timeout": false,
"killed": true,
"kill_test": "row299 P10 observer records are complete and ordered",
"mutated_sha256": "a4256c6ffdc55c8047693e80114361d9c9ad97898fe58125299d967f5badf417"
}
],
"restores": [
{
"id": "M1",
"path": "scripts/case1-accept.sh",
"before_sha256": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
"restored_sha256": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
"git_status": "",
"identical": true
},
{
"id": "M2",
"path": "scripts/case1-accept.sh",
"before_sha256": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
"restored_sha256": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
"git_status": "",
"identical": true
},
{
"id": "M3",
"path": "scripts/case1-accept.sh",
"before_sha256": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
"restored_sha256": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
"git_status": "",
"identical": true
},
{
"id": "M4",
"path": "scripts/case1-accept.sh",
"before_sha256": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
"restored_sha256": "89b45bb84e8365f32f08fd055c7db8a0259533f23fe7ab03f484acb25bee92c2",
"git_status": "",
"identical": true
},
{
"id": "M5",
"path": "packages/cli/tests/case-p10-timing-fixture.mjs",
"before_sha256": "7ac9d29281d4076bf2e00b7a07294cd4519d7ae9f97c4f6ddc1d22440c9b071a",
"restored_sha256": "7ac9d29281d4076bf2e00b7a07294cd4519d7ae9f97c4f6ddc1d22440c9b071a",
"git_status": "",
"identical": true
},
{
"id": "M6",
"path": "packages/cli/tests/case-p10-timing-fixture.mjs",
"before_sha256": "7ac9d29281d4076bf2e00b7a07294cd4519d7ae9f97c4f6ddc1d22440c9b071a",
"restored_sha256": "7ac9d29281d4076bf2e00b7a07294cd4519d7ae9f97c4f6ddc1d22440c9b071a",
"git_status": "",
"identical": true
}
],
"started_utc": "2026-10-23T07:26:52Z",
"finished_utc": "2026-10-23T07:50:16Z"
}
@@ -0,0 +1,38 @@
{
"utc": "2026-10-23T07:50:47Z",
"count": 0,
"matches": [],
"scope": "All recorded stage TMPDIRs by cwd or argv, and node/tee/FIFO commands with worktree cwd; controller ancestors excluded",
"all_matches_count": 4,
"preexisting_harness": [
{
"pid": 14082,
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
"cmd": "/usr/bin/node /mnt/storage/src/t3-comms/t3-code-agent-mcp/dist/cli.js ",
"started_utc": "2026-10-23T07:10:47.750000+00:00",
"predates_gate": true
},
{
"pid": 14243,
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
"cmd": "node /home/jwoltje/.npm/_npx/de2bd410102f5eda/node_modules/.bin/mcp-server-sequential-thinking ",
"started_utc": "2026-10-23T07:10:48.770000+00:00",
"predates_gate": true
},
{
"pid": 14282,
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
"cmd": "/usr/bin/node /home/jwoltje/.npm/_npx/15c61037b1978c83/node_modules/chrome-devtools-mcp/build/src/telemetry/watchdog/main.js --parent-pid=14259 --app-version=1.12.0 --os-type=3 ",
"started_utc": "2026-10-23T07:10:49.120000+00:00",
"predates_gate": true
},
{
"pid": 14383,
"cwd": "/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196",
"cmd": "node /home/jwoltje/.npm/_npx/9833c18b2d85bc59/node_modules/.bin/playwright-mcp ",
"started_utc": "2026-10-23T07:10:49.540000+00:00",
"predates_gate": true
}
],
"classification": "Four MCP harness processes predate the gate; zero gate-created residuals. No processes killed."
}
@@ -0,0 +1 @@
CLEAR
@@ -0,0 +1,18 @@
{
"label": "syntax-1",
"argv": [
"timeout",
"-k",
"10",
"120",
"node",
"--check",
"packages/cli/tests/case-p10-timing-fixture.mjs"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/g6MkUyY",
"started_utc": "2026-10-23T07:26:54Z",
"start_load": "1.05 1.69 2.00 5/6642 199026",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/syntax-1.log",
"expected_red": false
}
@@ -0,0 +1,7 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:26:54Z",
"load": "1.05 1.69 2.00 7/6643 199027"
}
]
Whitespace-only changes.
@@ -0,0 +1 @@
CLEAR
@@ -0,0 +1,18 @@
{
"label": "syntax-2",
"argv": [
"timeout",
"-k",
"10",
"120",
"node",
"--check",
"packages/cli/tests/case1-accept.test.mjs"
],
"limit_seconds": 120,
"tmpdir": "/mnt/storage/scratch/tmp/gbr1O5v",
"started_utc": "2026-10-23T07:26:55Z",
"start_load": "1.05 1.69 2.00 2/6651 202505",
"log": "/mnt/storage/scratch/tmp/gABO62Q/records/syntax-2.log",
"expected_red": false
}
@@ -0,0 +1,7 @@
[
{
"wall_seconds": 0.0,
"utc": "2026-10-23T07:26:55Z",
"load": "1.05 1.69 2.00 4/6652 202506"
}
]
Whitespace-only changes.
+104
View File
@@ -0,0 +1,104 @@
import os,sys,json,time,re,pathlib,subprocess,shlex,hashlib,signal
REPO=pathlib.Path('/home/jwoltje/.t3/worktrees/mosaic-stack/gander-row196')
ROOT=pathlib.Path(__file__).parent; OUT=ROOT/'records'; OUT.mkdir(exist_ok=True)
CASE='packages/cli/tests/case1-accept.test.mjs'
HELPER='packages/cli/tests/case-p10-timing-fixture.mjs'
HEAD='ffa93b054f28852a75017928d8478bdf9046e717'
DIGEST='277ace0b4274970d5bd4c05cf8fe99aa1e7ebc469a719e4cefcb334a75d3865d'
FILES=sorted(str(p.relative_to(REPO)) for p in (REPO/'packages/cli/tests').glob('*.test.mjs'))
PLAN=json.loads((REPO/'agents/gander/work/queue-299/MUTANT-PLAN.json').read_text())['mutants']
STATE={'grant':'sage-3268','m4_ruling':'sage-3273 / mos-1426','head':HEAD,'manifest':DIGEST,'status':'PREPARED','cli_file_list':FILES,'cli_file_count':len(FILES),'stages':[],'restores':[]}
def utc():return time.strftime('%Y-%m-%dT%H:%M:%SZ',time.gmtime())
def git(*args):return subprocess.check_output(['git',*args],cwd=REPO,text=True).strip()
def save(): (OUT/'results.json').write_text(json.dumps(STATE,indent=2)+'\n')
def stop(reason):
STATE['status']='STOP';STATE['reason']=reason;STATE['stopped_utc']=utc();save();print('STOP '+reason,flush=True);raise SystemExit(1)
def load(): return pathlib.Path('/proc/loadavg').read_text().strip()
def busy(label):
r=subprocess.run(['bash','/mnt/storage/scratch/sage-busy-now.sh'],capture_output=True,text=True)
(OUT/(label+'.busy.log')).write_text(r.stdout+r.stderr)
if r.returncode or r.stdout.strip().splitlines()[-1:]!=['CLEAR']:stop('busy refusal before '+label)
def parse_metrics(text):
result=[]
for line in text.splitlines():
m=re.match(r'^\s*#\s*(\{.*\})\s*$',line)
if m:
try:
item=json.loads(m[1])
if 'probeSeconds' in item:result.append(item)
except json.JSONDecodeError:pass
return result
def execute(label,args,limit,expected_red=False,syntax=False):
busy(label)
tmp=subprocess.check_output(['mktemp','-d','/mnt/storage/scratch/tmp/gXXXXXX'],text=True).strip()
env=os.environ.copy();env['TMPDIR']=tmp
argv=['timeout','-k','10',str(limit),*args]
meta={'label':label,'argv':argv,'limit_seconds':limit,'tmpdir':tmp,'started_utc':utc(),'start_load':load(),'log':str(OUT/(label+'.log')),'expected_red':expected_red}
(OUT/(label+'.command.json')).write_text(json.dumps(meta,indent=2)+'\n')
STATE['active']=meta;save();print('START '+json.dumps(meta),flush=True)
shell='set -o pipefail\n'+shlex.join(argv)+' 2>&1 | tee '+shlex.quote(meta['log'])
start=time.monotonic();samples=[];p=subprocess.Popen(['bash','-c',shell],cwd=REPO,env=env,start_new_session=True)
while True:
samples.append({'wall_seconds':round(time.monotonic()-start,3),'utc':utc(),'load':load()})
try:rc=p.wait(timeout=5);break
except subprocess.TimeoutExpired:
if time.monotonic()-start>limit+30:
os.killpg(p.pid,signal.SIGKILL);p.wait();stop('outer controller timeout '+label)
text=pathlib.Path(meta['log']).read_text();seconds=round(time.monotonic()-start,3)
counts={}
for key in ['tests','pass','fail','cancelled','skipped','todo']:
matches=re.findall(r'^# '+key+r' (\d+)\s*$',text,re.M)
if matches:counts[key]=int(matches[-1])
row={**meta,'rc':rc,'wall_seconds':seconds,'finished_utc':utc(),'end_load':load(),'counts':counts,'metrics':parse_metrics(text),'skip_lines':[s for s in text.splitlines() if '# SKIP' in s],'external_timeout':rc in (124,137)}
(OUT/(label+'.load.json')).write_text(json.dumps(samples,indent=2)+'\n')
STATE['stages'].append(row);STATE.pop('active',None);save();print('END '+json.dumps(row),flush=True)
if row['external_timeout']:stop('timeout '+label)
if not expected_red and rc!=0:stop('unexpected red '+label)
if not expected_red and not syntax:
if len(row['metrics'])!=4:stop('missing direct P10 diagnostics '+label)
for m in row['metrics']:
lo,hi=(1.25,2.75) if m['fault']=='inner' else (3.25,4.75)
if not lo<=m['probeSeconds']<hi:stop('band overshoot '+label)
return row,text
save()
if len(sys.argv)<2 or sys.argv[1]!='run':sys.exit(0)
if git('rev-parse','HEAD')!=HEAD or git('status','--porcelain'):stop('candidate/tree mismatch')
manifest=(REPO/'agents/gander/work/queue-299/MANIFEST.sha256').read_bytes()
if hashlib.sha256(manifest).hexdigest()!=DIGEST:stop('manifest mismatch')
for m in PLAN:
data=(REPO/m['path']).read_text()
if hashlib.sha256(data.encode()).hexdigest()!=m['source_sha256']:stop('source sha mismatch '+m['id'])
if m.get('scope_begin'):data=data[data.index(m['scope_begin']):data.index(m['scope_end'])]
if data.count(m['old'])!=1:stop('nonunique target '+m['id'])
STATE['status']='RUNNING';STATE['started_utc']=utc();save()
print('PREAMBLE '+json.dumps({'head':HEAD,'manifest':DIGEST,'source':'e6751ecab','case_limit':1200,'cli_limit':5400,'cli_file_count':len(FILES),'cli_files':FILES,'ambient_load_is_target_only':True}),flush=True)
for i,path in enumerate([HELPER,CASE]):execute('syntax-'+str(i+1),['node','--check',path],120,syntax=True)
for i in range(1,4):execute('case1-whole-'+str(i),['node','--test','--test-reporter=tap',CASE],1200)
execute('cli-whole',['node','--test','--test-reporter=tap',*FILES],5400)
for m in PLAN:
original=(REPO/m['path']).read_bytes(); before=hashlib.sha256(original).hexdigest();text=original.decode()
if m.get('scope_begin'):
start=text.index(m['scope_begin']);end=text.index(m['scope_end']);part=text[start:end];changed=text[:start]+part.replace(m['old'],m['new'],1)+text[end:]
else:changed=text.replace(m['old'],m['new'],1)
row=None;output=''
try:
(REPO/m['path']).write_text(changed)
ext=m['path'].rsplit('.',1)[-1];syntax=['bash','-n',m['path']] if ext=='sh' else ['node','--check',m['path']]
execute(m['id']+'-syntax',syntax,120,syntax=True)
row,output=execute(m['id'],['node','--test','--test-reporter=tap','--test-name-pattern','^'+m['killer']+'$',CASE],1200,expected_red=True)
finally:
(REPO/m['path']).write_bytes(original)
restored=hashlib.sha256((REPO/m['path']).read_bytes()).hexdigest();status=git('status','--porcelain')
STATE['restores'].append({'id':m['id'],'path':m['path'],'before_sha256':before,'restored_sha256':restored,'git_status':status,'identical':before==restored});save()
if before!=restored or status:stop('restore drift '+m['id'])
if row is None:stop('no result '+m['id'])
if row['rc']==0:stop('survivor '+m['id'])
named=bool(re.search(r'^not ok \d+ - '+re.escape(m['killer'])+r'\s*$',output,re.M))
assertion='ERR_ASSERTION' in output
if not named or not assertion:stop('wrong failure '+m['id'])
if m['id'] in ['M1','M2','M3'] and not ('direct probe ' in output and row['metrics']):stop('wrong timing kill '+m['id'])
if m['id']=='M4':
if 'probe-outer-timeout' not in output or 'probe-inner-command' not in output:stop('wrong outer-reason failure M4')
row['guard_return_receipt']={'ruling':'sage-3273 / mos-1426','configured_ms':7000,'named_command_returned':True,'rc':row['rc'],'wall_seconds':row['wall_seconds'],'actual_refusal':'probe-inner-command','external_timeout':False,'evidence':'named outer-reason ERR_ASSERTION in raw log after the unchanged safety guard returns; guard itself has no log channel'}
row['killed']=True;row['kill_test']=m['killer'];row['mutated_sha256']=hashlib.sha256(changed.encode()).hexdigest();save()
STATE['status']='GREEN';STATE['finished_utc']=utc();save();print('GREEN all whole stages and M1-M6',flush=True)
+92
View File
@@ -0,0 +1,92 @@
# Vikunja574: deterministic fixture Git before/after comparisons
Owner Gander, gate Sage. mos-1369 A4 and mos-1370; sage-3107 and sage-3110. Take574 before573, as separate candidates. Base062646487451993302c768c6812b827c834e952b (origin/refactor at start), branchgander/v574. No queue move before Sage places the row. Build/push authorized now; every test/proof run waits Sage CLEAR after270+271 run5. Row292 remains independently held for final base and C1 review.
## Exact authorized delta
Only prepend `-c maintenance.auto=false -c gc.auto=0` to each fixture helper's Git argv. No production change, environment change, assertion change or fingerprint/snapshot change. Full-root comparisons still include .git. Production checkout.mjs's SAFE argv already contains both flags; gitEnv() alone does not. The helper called gitEnv() but skipped SAFE.
- packages/seat/tests/checkout.test.mjs:git34-35 commits fixture roots; once():88-91 fingerprints root including.git. Whole clone comparison246-249 also covers it.
- packages/seat/tests/working.test.mjs:git27-28 commits fixture repositories; fingerprint():40 and refusal checks83-86/120-122 cover the whole root.
- packages/cli/tests/git-socket.test.mjs:gitIn32-33 commits projects; fingerprint():43 and once79-101 cover project/.git.
- packages/cli/tests/lifecycle.test.mjs:gitIn47-49, commit71; snapshot459 walks every regular file, T11 compares pb.root831/839 including project/.git. Outside original list, explicitly authorized sage-3110 / mos-1370 before editing.
Static preservation check removes only the four inserted argv elements from each candidate file and requires exact equality with its base blob. Thus every original assertion, fingerprint and snapshot byte stays intact. No new tests mirror the flags; runtime evidence is the requested trace over real fixture commits and whole files.
## Named but unchanged
- bus/grant-enroll.test.mjs imports fingerprint from host-grant.mjs for SSH host keys. No fixture Git helper or Git command; unchanged.
- bus/grant-executor.test.mjs uses SSH-key fingerprints; its commit references are grant transaction steps, not Git fixture commits. No Git helper; unchanged.
- bus/host-tools.test.mjs:28 hashes decoded SSH public-key bytes. No Git helper; unchanged.
- conversation/reader.test.mjs:52/71/73 fingerprints session fixture files, but creates no Git repository and makes no Git call. Unchanged.
## Other fixture audit, screened and unchanged
- cli/lifecycle.test.mjs: whole-root .git snapshot is exposed; now included by explicit scope ruling above.
- cli/launcher.test.mjs: fixture commits, but the before/after byte check961-971 names the sessions JSON file, not the repository tree or Git object directory. No maintenance-lock fingerprint exposure in that comparison.
- cli/thread-launch.test.mjs and session-launch.test.mjs: fixture repositories, but compared before/transcripts/events/session-store values are application histories or evidence directories, not a whole .git tree. Unchanged.
- cli/publish-socket.test.mjs and seat/publish.test.mjs: fixture commits, with ref values and fake-Gitea request/credential assertions. No whole-root fingerprint/snapshot; unchanged.
- seat/landing.test.mjs: fixture commits support gate/root-path checks. The tree() helper builds a fixture and comparisons concern gate steps/results and output, not a whole-root byte inventory. Unchanged.
- harness/git-tools.test.mjs: fixture commits support advertised object/ref and request assertions; no source-root byte fingerprint. Unchanged.
- project/project.test.mjs, human-file.test.mjs and read.test.mjs: before/after checks use HEAD/status, spec content, or a record path; no full .git inventory including maintenance.lock. tester-init.test.mjs checks created records and identity. Unchanged.
- bus/project-files.test.mjs via spec-fixtures.mjs: state() compares rev-parse HEAD and status --porcelain; detached maintenance changes neither asserted logical value. Unchanged.
- library/mirror.test.mjs and sync.test.mjs via helpers.mjs: before/after byte checks name the sync-state file; comparison does not inventory Git objects/maintenance.lock. Unchanged.
- cli/stack-copy.test.mjs: tree() compares published copies, which exclude source .git; source fixture already configures gc.auto0. No whole-source-repo .git fingerprint. Unchanged.
- cli/stack-release-fixture.mjs and release tests: fp() compares unit, wrapper, pointer and store bytes, and tree() comparisons cover data/copies; source fixture.git is outside those roots and already sets gc.auto0. Unchanged.
- webui/pinned-copy.test.mjs: fixture commits and gc.auto0; before/after assertion names config bytes and copied output, not source.git inventory. Unchanged.
- queue/store.test.mjs via helpers.mjs: snap337 compares queue/view/.git/mosaic-queue.head only, not object/maintenance-lock paths. review tests compare request/log records. Unchanged.
- ledger/ledger.test.mjs: Git fixture history is read as logical commits/timestamps, no whole-root .git fingerprint comparison found. Unchanged.
This is an audit of fixture before/after comparisons, not a claim every unflagged fixture Git helper is fixed. No outside named scope was changed without approval. Mos's provided probe /mnt/storage/scratch/mos-1369/maint-lock-probe.py was read only, never executed.
## Trace and gate plan, no execution yet
Real Git: /usr/bin/git, `git version 2.55.0` (read-only version query). gitEnv() retains PATH and scrubs outer tracing env, so an outer GIT_TRACE2 alone would be vacuous. On CLEAR create an executable git shim in own scratch, outside the candidate. It only exports GIT_TRACE2 to a per-run absolute trace path and execs /usr/bin/git with the unchanged argv. The candidate contains no shim.
Positive control first: a fresh fixture-style repo/commit WITHOUT either flag, traced through that shim, must show a maintenance child_start. Do not accept a missing/empty trace as success. Allow the detached positive-control child to finish and verify its scratch repo is idle before the flagged proof.
Flagged control and four touched files whole then use the shim. Require observed fixture commit commands in each applicable trace and zero maintenance child_start. Classify a maintenance child by the trace's child_start and `maintenance run --auto` command, not by a substring in this plan. Save the raw trace, tested SHA, exact command/timeouts, command/child counts, and restored-tree check. No assertion weakening or .git exclusion is allowed. Any old red, timeout, maintenance child, or missing positive control stops for Sage/Mos before a retry.
Recommended slot scope: positive/flagged fixture control plus the four touched files whole with GIT_TRACE2, and any broader seat/CLI suite Sage requests. Record per-file timeout-k10 at least3x successful historical whole-file receipt with headroom before launch; use900s where timing is unknown. TMPDIR from mktemp-d /mnt/storage/scratch/tmp/gXXXXXX, never /tmp. Pipefail/tee and busy check before each start. Trace runs are test work and are not authorized before CLEAR. No dependencies installed and no live ports/units/config accessed. Session registration remains Sage's.
## Filbert static approval and proof refinements
filbert-v574-7da38224-gander statically approves source65e919e5c / packet7da382244 / manifestcdda41f5. No runtime proof yet. Their independent audit found no missed fixture within the whole-root .git race class.
P1: checkout and working tests resolve command-v-git when loading their own command wrappers. The trace shim therefore lives in a stable absolute scratch bin directory for the entire run, including fixture hooks. It chains only to /usr/bin/git2.55.0 and is not deleted until all calls and detached children finish.
P2: add GIT_TRACE2_EVENT alongside GIT_TRACE2 in the scratch shim, pointing at a per-run directory. Git writes one JSON event file per process, avoiding interleaved event lines. Count child_start argv tokens for maintenance/run/--auto exactly and report actual fixture commit start counts alongside zero maintenance. The shim only sets tracing variables and execs the real git; no Git argv/config or candidate file is changed by tracing.
P3: both positive and flagged controls call the real gitEnv() from checkout.mjs, with PATH resolving that same shim. A shell-only unflagged commit is not sufficient. Positive requires observed fixture commit and maintenance child_start; flagged requires observed fixture commit and zero such child. No missing/empty trace counts as a pass.
P4: after each traced whole file, wait for no git process whose /proc cwd is under that run TMPDIR, including deleted cwd, before counting. Detached maintenance could write events after Node exits. Save the cwd sweep and count trace only after the writer set is empty. A nonempty/unstable writer set is a stop, never silently ignored.
P5: green fingerprints alone are not the proof. The trace commit count and maintenance-child count are required for every changed suite.
Additional screened files from Filbert, unchanged: bus/publish.test.mjs lists JSON files only; discord/git.test.mjs checks .vault-locks only; stack-release-external checks named files and tree(e.state); queue/write.test.mjs lists gitDir entries filtered to .tmp. Shared helpers plugins/tests/helpers, runs/tests/helpers, conversation/tests/harness and case-sudo-fixture make no Git calls.
Follow-up note, outside574: product Git commits in queue/src/store.mjs, discord/src/git.mjs and harness/src/tools.mjs do not carry both maintenance flags. No whole-root .git fingerprint currently covers those roots. A future fingerprint test there must account for detached maintenance. This note authorizes no product change or assertion change here. working.mjs fetches at183/237/245 and harness git-tools fetch249 use --no-auto-maintenance; existing production checkout SAFE has both flags.
## Row 293 execution window (sage-3130 / sage-3133)
Claim gander-293-start is rev 3400. The four manifest paths have no drift over 062646487..253346e3c; no rebase is needed. Start only when the one-minute load is below 4. Print HEAD, manifest, and the full seat/CLI test-file lists before execution. Scratch harness and stable Git shim live under /mnt/storage/scratch/tmp/g349BNE, outside the candidate. Controls import the actual gitEnv(), and both human and per-process JSON traces are injected only by the shim.
Order: unflagged positive control; flagged control; checkout, working, git-socket and lifecycle whole with traces; every seat test whole; every CLI test whole. Whole suites run as serial whole files, each using timeout -k 10 and pipefail/tee. This preserves whole-file coverage and avoids test-file concurrency adding load to the timing checks. Busy check precedes every start. The trace proof waits for no Git cwd below each run TMPDIR before counting commit starts and maintenance children.
Limits recorded before launch: controls 120 s; stack-release whole 2400 s; case1 whole 1200 s; every other whole file 900 s. The prior row 253 whole CLI stage took 1253.715 s in 3b91cfdaf's run5-gate/SUMMARY.json; this run uses individual whole-file bounds, not that aggregate bound. Case1's known 259.951 s receipt is below one third of 1200. The saved historical-cli-timings.json extracts all 55 CLI per-file receipts from that summary: stack-release was 683.647 s, so ceil(3x)+120 is 2171 s, below 2400; every other historical CLI file has ceil(3x)+120 below its chosen limit. Seat files and the newly added CLI file have no per-file receipt here and use the established unknown-file 900 s fallback. Outer controller wait is each limit +30 s. No timeout counts as a pass. Report status every 15 minutes, and stop for any unexpected red, missing positive control, maintenance child, or timeout.
## Run 1 stop, 2026-10-23 02:31Z
Run 1 on 57862d614 stopped at the fourth traced file; seat/CLI whole stages never started. Controls are non-vacuous: unflagged 1 commit / 1 maintenance child; flagged 1 commit / 0. Checkout 78/0, working 27/0, git-socket 24/0, lifecycle 13/11; all 313 observed commits across the four files had zero maintenance children. No skips or timeout. Raw logs, commands, event streams, trace index, controller and final zero-cwd sweep are in run1/. These are incomplete gate results, not acceptance.
Static diagnosis in gander-0176: my harness nested TMPDIR by stage, making lifecycle's tools.sock path 120 bytes. session.mjs:278 refuses >107; launcher.mjs:472 calls it before spawning. A direct /mnt/storage/scratch/tmp/gXXXXXX TMPDIR gives 95. lifecycle.test requires a TMPDIR of about 50 bytes or less. Filbert concurred from source. No product/test/assertion change, no retry, and no harness correction pending placement/CLEAR. Slot returned at 02:31:13Z; all scratch cwd processes were gone.
## Run 2 authorization and integrated candidate
sage-3138 classified run 1 as a harness fault, not a candidate/lifecycle red. Rebased under new branch gander/v574-r2 onto b23783f39, retaining the original branch. The four test files and session.mjs have zero upstream drift, and the four-commit range-diff is unchanged. Manifest cdda41f5 remains unchanged and all entries verify.
Run 2 starts over at P1 with nothing carried: controls, four traced files, all eight seat and 56 CLI files. Corrected harness allocates each stage's TMPDIR with mktemp -d /mnt/storage/scratch/tmp/gXXXXXX, directly in scratch; logs/traces remain separate. lifecycle's expected tools.sock path is 95 bytes, replacing run 1's 120, below the 107-byte product limit. This is a harness-only correction and no test or assertion changed. The previous pre-recorded limits remain. Start load under 4; any second red stops to Sage/Mos before any change. Integration and harness records are in integration-r2/.
## Run 2 GREEN, 2026-10-23 03:06:43Z
Fresh on 6bfab273b / cdda41f5 under sage-3138, started at load 3.80. Controls pass; four traced files 153/0/0 in 45.855 s, seat whole 202/0/0 in 22.687 s, CLI whole 905/0/0 in 1367.764 s. Total window 1564 s. The integrated census is 10 seat and 58 CLI files: the new base added two files to each package; every printed file ran whole. No timeout, skip, cancellation or todo. Final cwd/Node/tee sweep zero. Every trace stage's Git writer set is empty before counting. Both flags occur on all 312 actual traced commits, with zero maintenance children; unflagged positive control has one commit and one maintenance child, flagged control one commit and zero children. Raw driver token-count 313 included one hash-object -t commit; cmd_name=commit reconciles it to 312 in TRACE-COUNTS.json, with no change to the zero-maintenance finding. Full logs, command/guard records, reconstructable raw traces, results and timings are committed in run2/. No prior run result carried and no product, assertion or fingerprint changed.
+4
View File
@@ -0,0 +1,4 @@
721af7a3745dae10d0dad9226e7ba5ce32754b5da7367aa13f970d7f03677a3c packages/cli/tests/git-socket.test.mjs
a0cae5797886b729600dcbcad8e38ec94f97143c77fd91648050417c2d5630f7 packages/cli/tests/lifecycle.test.mjs
cb3941fed464fd4c88aac7c05bb32db1b1776858650979523f64dc6fc3baf7d3 packages/seat/tests/checkout.test.mjs
22cbdd43fc11c6f234d0f2c1512d5039839d1242fd421e62f2aa3d3db1c9de05 packages/seat/tests/working.test.mjs
+30
View File
@@ -0,0 +1,30 @@
[
{
"file": "packages/cli/tests/git-socket.test.mjs",
"base_sha256": "ec4bbbc98adab6561205e5ec8e2f2495f1f55224da53e567c7a72e36b5410709",
"candidate_sha256": "721af7a3745dae10d0dad9226e7ba5ce32754b5da7367aa13f970d7f03677a3c",
"only_inserted_argv_flags": true,
"assertions_and_fingerprint_unchanged": true
},
{
"file": "packages/cli/tests/lifecycle.test.mjs",
"base_sha256": "5ce79205c4ca6e5f6e77671968ce9d8b8ebfdbdde07b31676f2d05b284acb938",
"candidate_sha256": "a0cae5797886b729600dcbcad8e38ec94f97143c77fd91648050417c2d5630f7",
"only_inserted_argv_flags": true,
"assertions_and_fingerprint_unchanged": true
},
{
"file": "packages/seat/tests/checkout.test.mjs",
"base_sha256": "663040d7c737aba6403e6397bacf1325b558cc14df3e5677f0a28f9499c45127",
"candidate_sha256": "cb3941fed464fd4c88aac7c05bb32db1b1776858650979523f64dc6fc3baf7d3",
"only_inserted_argv_flags": true,
"assertions_and_fingerprint_unchanged": true
},
{
"file": "packages/seat/tests/working.test.mjs",
"base_sha256": "15234267a0e28c53b13a4219ea45e71608722fb137d1f266adfd3f80040eb7c6",
"candidate_sha256": "22cbdd43fc11c6f234d0f2c1512d5039839d1242fd421e62f2aa3d3db1c9de05",
"only_inserted_argv_flags": true,
"assertions_and_fingerprint_unchanged": true
}
]
+20
View File
@@ -0,0 +1,20 @@
{
"vikunja": 574,
"queue": 293,
"gate": "sage",
"base": "062646487451993302c768c6812b827c834e952b",
"source": "65e919e5cef30911b9902f410549da431423cec4",
"branch": "gander/v574-r2",
"manifest": "cdda41f5baa6b04e6e5bb9b82beff8e00ceef440c6702565cc86944f249bb5d3",
"tests": "GREEN run 2: focused 153/0/0, seat whole 202/0/0, CLI whole 905/0/0. Trace: 312 actual commits, zero maintenance children; positive control 1 child.",
"scope_authority": [
"mos-1369",
"sage-3110",
"mos-1370"
],
"issue": 1805,
"integrated_base": "b23783f3951e5b750ef49cd0c2d7353640ea6899",
"integrated_source": "a61fa3043",
"tested_head": "6bfab273b59a4fa6dc9c468a086ff281f435e572",
"records": "run2/"
}
Loaded 100 of 790 files, more files were not shown because too many files have changed in this diff. Show more