Files
jason.woltje 068d868a99 lead: commit rocko's untracked evidence (4471 files: queue-124 queue-129 queue-171 queue-178 queue-280 queue-31 queue-84 queue-85 queue-94)
Unclaimed files left in the canonical checkout. Inventory: canonical-cleanup-inventory.md (commit-as-evidence groups). detect-secrets scan clean on 2026-11-02: hits are sha256 pins, git object ids, test sentinels already in tracked tests and unit-file lines.
2026-11-02 15:05:15 -06:00

13 KiB
Raw Permalink Blame History

Row 129 / #1623 — round 2, test gaps only

Brief and approved behavior are unchanged from ../r1/BUILD.md and ../DESIGN.md. Reviewer Filbert, gate owner Sage; public/ landing still needs Mos's decision 123 go. Responds to Filbert comment 28933 and sage-0768; row reopened at rev 1781. Base d2df4d934, the current origin/refactor when rebuilt. No candidate path drift from r1's 70504d23a base. All product/docs/navigation-test hashes match r1 exactly; source-parity.json lists the only two changed files. Source remains staged and uncommitted in /mnt/storage/src/mosaic-stack-rocko-129-r2.

Review mapping

Finding Test addition Mutant / exact killing test prefix
1, send target chat-browser.test.mjs now asserts exact project-create, thread-create, send /messages and Resume /open POST paths alongside the existing payload checks 65-send-post-path; chat browser: thread drafts, receipts and cursor history
2, createThread instance chat.test.mjs adds valid-id receipts with absent, slash-bearing and numeric instances; each must be outcome-unknown, HTTP 503, sent unknown, exactly one call 66-instance-receipt; chat createThread receipt requires an instance even when its id is valid
3, receipt fields chat.test.mjs gives all four write operations extra owner/capability/body fields and compares the full non-timestamp receipt with that operation's expected receipt 67-receipt-fields; chat write receipts expose only the fields belonging to their operation
4, bidi chat-browser.test.mjs asserts no raw bidi controls and a literal escaped U+202E in both the project label and message body 68-bidi-controls; chat browser: list/create named projects

Existing assertions remain. No production source was changed or needed fixing. The original 64 exact-once mutants and their killing names are retained unchanged in mutants.py, alongside the four additions. Read-only preflight found 68/68 unique sites; its initial new send-path typo was corrected before any mutation.

Run plan and boundaries

Sage approved the plan in sage-0773 and granted the slot in sage-0776. The busy check was gated with && before the focused files. Order: focused chat.test and chat-browser; original targeted gate (WebUI including browser files, bus threads, CLI thread parity); all 68 mutants. TMPDIR=/mnt/storage/scratch/rocko-129-r2/tmp; DOCKER_HOST=unix:///nonexistent.sock. No Docker, shell suites or live actions. Sage retains full landing gate. Pipefail/exit status gate every step. Mutants use start_new_session, kill process groups/descendants on timeout, restore bytes in finally and reject syntax errors, missing imports or timeouts as kills. Sweep own cwd-scoped node/chromium processes before returning the slot.

Existing navigation edits, retained byte-for-byte from r1

Sage-0747 approved and Filbert verified these exact named assertions in 28933:

File:line Old New Reason
packages/webui/tests/browser.test.mjs:21 4 scripts 5, with /chat.js exactly once index adds Chat script
packages/webui/tests/shell.test.mjs:266 9 section SVGs 10, named Chat href and inbox icon Chat section
packages/webui/tests/shell.test.mjs:463 9 palette hrefs 10, exact list includes #/chat Chat destination
packages/webui/tests/views.test.mjs:59 9-link wait 10 plus Chat href/name shared Queue/Business/Settings readiness
packages/webui/tests/views.test.mjs:59 same shared 9-link wait same named 10-link wait shared secrets/refusals readiness

Observed results and the complete mutant table are recorded below after the authorized run.

Row 154 landing overlap (sage-0776)

Row 154 is landing next and also changes browser.test.mjs:21: it replaces the script count with a pinned list of script names ending /bus.js. Whichever row lands second rebases and pins all six scripts, retaining the named Chat script assertion. Recheck the landing base and this exact hunk before review/landing; this r2 retains r1's existing navigation test bytes until that rebase is directed.

Observed round-2 results

Span 2026-10-18T16:52:17Z–16:56:54Z, slot clear sent after the sweep. Focused files: chat 22/22, chat-browser 11/11, awk sum 33/33 (subsets of gate). Targeted gate: WebUI 179/179, bus threads 14/14, CLI thread parity 11/11, awk sum 204/204. Every log has zero fail/cancelled/skipped; see gate-counts.txt, focused-counts.txt and suite-counts.json. The gate ended 16:55:27Z.

Mutants: all original 64 and review additions 65–68 killed, 68/68; zero survivor, invalid or timeout. Each mutant log names the intended failing test (verified in mutant-killers-verified.json). No tracked flake recurrence. Product source was already correct; only the two test files differ from round 1.

verify.py reconstructed all 15 paths from base+patch and checked every worktree and staged hash. Its final cwd-scoped node/chromium sweep was empty at 16:56:54Z. No Docker, shell suite or live action.

Complete kill table

Mutant Owning test file Killing test name/prefix Result
01-project-list packages/webui/tests/chat.test.mjs chat reads map only fixed verbs KILLED
02-thread-filter packages/webui/tests/chat.test.mjs chat reads map only fixed verbs KILLED
03-project-repo packages/webui/tests/chat.test.mjs chat project.create: one verified write KILLED
04-thread-name packages/webui/tests/chat.test.mjs chat thread.create: one verified write KILLED
05-request-class packages/webui/tests/chat.test.mjs chat thread.send: one verified write KILLED
06-thread-target packages/webui/tests/chat.test.mjs chat thread.send: one verified write KILLED
07-resume-verb packages/webui/tests/chat.test.mjs chat thread.open: one verified write KILLED
08-owner-status packages/webui/tests/chat.test.mjs REQ-USER-2 real broker KILLED
09-foreign-status packages/webui/tests/chat.test.mjs REQ-USER-2 real broker KILLED
10-strict-query packages/webui/tests/chat.test.mjs chat refuses malformed and repeated query/id values KILLED
11-uuid packages/webui/tests/chat.test.mjs chat refuses malformed and repeated query/id values KILLED
12-page-limit packages/webui/tests/chat.test.mjs chat refuses malformed and repeated query/id values KILLED
13-default-page packages/webui/tests/chat.test.mjs chat reads map only fixed verbs KILLED
14-cursor packages/webui/tests/chat.test.mjs chat reads map only fixed verbs KILLED
15-more-metadata packages/webui/tests/chat.test.mjs chat reads map only fixed verbs KILLED
16-read-array packages/webui/tests/chat.test.mjs chat read failures redact ownership KILLED
17-send-mode packages/webui/tests/chat.test.mjs chat repeats every POST boundary KILLED
18-named-host packages/webui/tests/chat.test.mjs chat repeats every POST boundary KILLED
19-single-identity packages/webui/tests/chat.test.mjs chat repeats every POST boundary KILLED
20-origin packages/webui/tests/chat.test.mjs chat repeats every POST boundary KILLED
21-fetch-metadata packages/webui/tests/chat.test.mjs chat repeats every POST boundary KILLED
22-json-type packages/webui/tests/chat.test.mjs chat project.create: each existing Console write fence KILLED
23-json-byte-bound packages/webui/tests/chat.test.mjs chat thread.send: each existing Console write fence KILLED
24-strict-shape packages/webui/tests/chat.test.mjs chat validates names, body, project KILLED
25-name-length packages/webui/tests/chat.test.mjs chat validates names, body, project KILLED
26-nonempty-body packages/webui/tests/chat.test.mjs chat validates names, body, project KILLED
27-verified-ack packages/webui/tests/chat.test.mjs chat project.create: refusal or lost/malformed receipt KILLED
28-opened-ack packages/webui/tests/chat.test.mjs chat thread.open: refusal or lost/malformed receipt KILLED
29-no-retry packages/webui/tests/chat.test.mjs chat project.create: refusal or lost/malformed receipt KILLED
30-uncertain-state packages/webui/tests/chat.test.mjs chat project.create: refusal or lost/malformed receipt KILLED
31-private-errors packages/webui/tests/chat.test.mjs chat project.create: refusal or lost/malformed receipt KILLED
32-dispatch packages/webui/tests/chat.test.mjs chat reads map only fixed verbs KILLED
33-cli-adapter packages/webui/tests/chat.test.mjs configured Console process injects chat KILLED
34-static-script packages/webui/tests/chat.test.mjs chat assets, GET purity KILLED
35-nav packages/webui/tests/chat-browser.test.mjs chat browser: list/create named projects KILLED
36-inert-bodies packages/webui/tests/chat-browser.test.mjs chat browser: thread drafts, receipts and cursor history KILLED
37-thread-drafts packages/webui/tests/chat-browser.test.mjs chat browser: thread drafts, receipts and cursor history KILLED
38-submit-once packages/webui/tests/chat-browser.test.mjs chat browser: page forward and deduplicate replies KILLED
39-browser-byte-bound packages/webui/tests/chat-browser.test.mjs chat browser: page forward and deduplicate replies KILLED
40-manual-redirect packages/webui/tests/chat-browser.test.mjs chat browser: thread drafts, receipts and cursor history KILLED
41-stale-read-refusal packages/webui/tests/chat-browser.test.mjs chat browser: a late read from A cannot paint B KILLED
42-owner-cache packages/webui/tests/chat-browser.test.mjs chat browser: uncertain writes retain draft KILLED
43-bounded-display packages/webui/tests/chat-browser.test.mjs chat browser: display stays bounded KILLED
44-no-write-get packages/webui/tests/chat.test.mjs chat reads map only fixed verbs KILLED
45-inert-labels packages/webui/tests/chat-browser.test.mjs chat browser: list/create named projects KILLED
46-thread-repo-ui packages/webui/tests/chat-browser.test.mjs chat browser: list/create named projects KILLED
47-abort-old-reads packages/webui/tests/chat-browser.test.mjs chat browser: a late read from A cannot paint B KILLED
48-forget-private-cache packages/webui/tests/chat-browser.test.mjs chat browser: a refusal elsewhere forgets private chat drafts KILLED
49-polling packages/webui/tests/chat-browser.test.mjs chat browser: automatic polling follows a reply KILLED
50-control-visibility packages/webui/tests/chat-browser.test.mjs chat browser: list/create named projects KILLED
51-safe-link-id packages/webui/tests/chat-browser.test.mjs chat browser: list/create named projects KILLED
52-name-controls packages/webui/tests/chat.test.mjs chat validates names, body, project KILLED
53-after-id packages/webui/tests/chat.test.mjs chat refuses malformed and repeated query/id values KILLED
54-readonly-controls packages/webui/tests/chat-browser.test.mjs chat browser: uncertain writes retain draft KILLED
55-ui-ack packages/webui/tests/chat-browser.test.mjs chat browser: a confirmed visible message replaces its pending receipt KILLED
56-explicit-tail packages/webui/tests/chat-browser.test.mjs chat browser: scrolled history stays put KILLED
57-own-send-tail packages/webui/tests/chat-browser.test.mjs chat browser: scrolled history stays put KILLED
58-shown-receipt packages/webui/tests/chat-browser.test.mjs chat browser: a confirmed visible message replaces its pending receipt KILLED
59-late-create packages/webui/tests/chat-browser.test.mjs chat browser: a late project creation receipt KILLED
60-static-style packages/webui/tests/chat.test.mjs chat assets, GET purity KILLED
61-cli-adapter-option packages/webui/tests/chat.test.mjs configured Console process injects chat KILLED
62-palette packages/webui/tests/chat-browser.test.mjs chat browser: list/create named projects KILLED
63-caret packages/webui/tests/chat-browser.test.mjs chat browser: thread drafts, receipts and cursor history KILLED
64-readonly-submit packages/webui/tests/chat-browser.test.mjs chat browser: uncertain writes retain draft KILLED
65-send-post-path packages/webui/tests/chat-browser.test.mjs chat browser: thread drafts, receipts and cursor history KILLED
66-instance-receipt packages/webui/tests/chat.test.mjs chat createThread receipt requires an instance even when its id is valid KILLED
67-receipt-fields packages/webui/tests/chat.test.mjs chat write receipts expose only the fields belonging to their operation KILLED
68-bidi-controls packages/webui/tests/chat-browser.test.mjs chat browser: list/create named projects KILLED