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.
8.4 KiB
Row 124 / #1618 — round 2
This packet supersedes the root round-1 candidate; the root packet is retained
unchanged. Base: 23533625d, a descendant of landed 640f4cef5. All changes from
9098c33f7 to this base are documentation, queue and logs; no product drift.
Detached build: /mnt/storage/src/mosaic-stack-rocko-124-r2.
Review 28920 and sage-0728
- (a) Store's timedTables includes usage_records. The new store.test.mjs case
usage_records refuses non-canonical timestamps atomicallyproves the bad timestamp throws invalid-timestamp, leaves no row, and canonical time works. store-red.log records the expected missing-exception failure before the fix. Mutant 65 removes this exact table entry and must fail that test. - (b) transcript.test.mjs runs its full guard table on pi and claude-code:
cut lines, fatal UTF-8, missing/negative/fractional/unsafe counters, oversized
file/line, symlink session and hardlink. Root-directory symlinks are checked
on both harnesses. The added
claude-code refuses a symlinked project directorytest exercises the separate project-directory descent. Mutant 66 is Dewey's d1: replace that open's DIR with O_RDONLY | O_DIRECTORY, dropping only O_NOFOLLOW. No product change to the transcript source was required. - Doc fix: MIGRATION.md says "their approved window" for Mos.
Dewey's complete verdict and probes were read from agents/dewey/work/queue-124-review/. Notes 1–4 are non-blocking: unread state can yield an unknown without a harness invocation; transcript growth eventually makes future turns unknown; full baseline cursors grow quadratically; two sources can double-report one turn. They remain follow-ups, with no new source kind or accounting semantics in this round.
Gate and process boundaries
Slot sage-0728; busy check CLEAR/exit 0 at 2026-10-18T15:44:38Z. TMPDIR=/mnt/storage/scratch/rocko-124/tmp. DOCKER_HOST=unix:///nonexistent.sock. No Docker, live file/store/unit action. The same five packages and two shell readers as r1 run again; source readers and exclusions remain those recorded in r1 BUILD.md and sage-0714.
First gate passed plugins and bus, then stopped at harness: the new worktree was missing the existing node_modules symlink and pi was not found. Kept suite-harness-first-dependency.log and gate-first-dependency.log, added only the ignored node_modules symlink to canonical installed dependencies, and resumed at harness. No failing assertion was bypassed and no source/test changed for this environment correction. This is not a known flake.
Mutants rerun all 64 prior cases plus 65 and 66. The runner requires exact-once edits, checks syntax, starts a new process group, kills descendants/groups on timeout and restores source in finally. Timeout/import/syntax failures do not count as kills. Results and suite counts are recorded below after completion.
Public landing still waits for Mos (decision 123); the fixture-only 3g→3h migration does not authorize activation. Mos owns the separate offline window.
Final verification
2026-10-18T15:52:09Z
| Suite | Passed | Failed | Skipped |
|---|---|---|---|
| plugins | 64 | 0 | 0 |
| bus | 363 | 0 | 0 |
| harness | 110 | 0 | 0 |
| cli | 244 | 0 | 0 |
| webui | 146 | 0 | 0 |
927 package tests passed; land-work 86/0, config 24/0. No tracked flake recurrence.
| Mutant | Owning killing test file | Result |
|---|---|---|
| 01-dir-no-follow | packages/plugins/tests/transcript.test.mjs | KILLED |
| 02-file-no-follow | packages/plugins/tests/transcript.test.mjs | KILLED |
| 03-regular-single-link | packages/plugins/tests/transcript.test.mjs | KILLED |
| 04-stat-size-before-read | packages/plugins/tests/transcript.test.mjs | KILLED |
| 05-stream-size-bound | packages/plugins/tests/transcript.test.mjs | KILLED |
| 06-snapshot-stability | packages/plugins/tests/transcript.test.mjs | KILLED |
| 07-fatal-utf8 | packages/plugins/tests/transcript.test.mjs | KILLED |
| 08-cut-line | packages/plugins/tests/transcript.test.mjs | KILLED |
| 09-line-byte-bound | packages/plugins/tests/transcript.test.mjs | KILLED |
| 10-record-bound | packages/plugins/tests/transcript.test.mjs | KILLED |
| 11-directory-entry-bound | packages/plugins/tests/transcript.test.mjs | KILLED |
| 12-root-confinement | packages/plugins/tests/transcript.test.mjs | KILLED |
| 13-harness-validation | packages/plugins/tests/transcript.test.mjs | KILLED |
| 14-json-object | packages/plugins/tests/transcript.test.mjs | KILLED |
| 15-assistant-id | packages/plugins/tests/transcript.test.mjs | KILLED |
| 16-usage-object | packages/plugins/tests/transcript.test.mjs | KILLED |
| 17-nonnegative-safe-integers | packages/plugins/tests/transcript.test.mjs | KILLED |
| 18-conflicting-duplicates | packages/plugins/tests/transcript.test.mjs | KILLED |
| 19-claude-kinds | packages/plugins/tests/transcript.test.mjs | KILLED |
| 20-pi-kinds | packages/plugins/tests/transcript.test.mjs | KILLED |
| 21-dedup-identical | packages/plugins/tests/transcript.test.mjs | KILLED |
| 22-baseline-required | packages/bus/tests/usage.test.mjs | KILLED |
| 23-rewritten-history | packages/bus/tests/usage.test.mjs | KILLED |
| 24-no-new-usage-unknown | packages/bus/tests/usage.test.mjs | KILLED |
| 25-turn-idempotence | packages/bus/tests/usage.test.mjs | KILLED |
| 26-unknowns-beside-totals | packages/bus/tests/usage.test.mjs | KILLED |
| 27-log-unknown | packages/bus/tests/usage.test.mjs | KILLED |
| 28-safe-parse-code | packages/bus/tests/usage.test.mjs | KILLED |
| 29-business-scoped-view | packages/bus/tests/usage.test.mjs | KILLED |
| 30-loader-only-source | packages/bus/tests/usage.test.mjs | KILLED |
| 31-run-grouping | packages/bus/tests/usage.test.mjs | KILLED |
| 32-thread-transcript-root | packages/bus/tests/usage.test.mjs | KILLED |
| 33-exact-large-totals | packages/bus/tests/usage.test.mjs | KILLED |
| 34-runner-role-check | packages/bus/tests/usage-broker.test.mjs | KILLED |
| 35-bound-delivered-turn | packages/bus/tests/usage-broker.test.mjs | KILLED |
| 36-no-path-in-request | packages/bus/tests/usage-broker.test.mjs | KILLED |
| 37-reader-usage-allowed | packages/bus/tests/usage-broker.test.mjs | KILLED |
| 38-view-bound-business | packages/bus/tests/usage-broker.test.mjs | KILLED |
| 39-runtime-injection | packages/bus/tests/usage-runtime.test.mjs | KILLED |
| 40-await-usage | packages/bus/tests/usage-runtime.test.mjs | KILLED |
| 41-runner-begin | packages/harness/tests/runner.test.mjs | KILLED |
| 42-runner-end | packages/harness/tests/runner.test.mjs | KILLED |
| 43-cli-unknown | packages/cli/tests/usage.test.mjs | KILLED |
| 44-cli-json | packages/cli/tests/usage.test.mjs | KILLED |
| 45-dispatch | packages/cli/tests/usage.test.mjs | KILLED |
| 46-read-adapter | packages/cli/tests/usage.test.mjs | KILLED |
| 47-settings-unknown | packages/webui/tests/usage-browser.test.mjs | KILLED |
| 48-settings-four-kinds | packages/webui/tests/usage-browser.test.mjs | KILLED |
| 49-settings-section | packages/webui/tests/usage-browser.test.mjs | KILLED |
| 50-settings-safe-labels | packages/webui/tests/usage-browser.test.mjs | KILLED |
| 51-http-arguments | packages/webui/tests/usage.test.mjs | KILLED |
| 52-http-shape | packages/webui/tests/usage.test.mjs | KILLED |
| 53-migration-step | packages/bus/tests/usage-migration.test.mjs | KILLED |
| 54-migration-chain | packages/bus/tests/comment-migration.test.mjs | KILLED |
| 55-nonblocking-open | packages/plugins/tests/transcript.test.mjs | KILLED |
| 56-entry-name-validation | packages/plugins/tests/transcript.test.mjs | KILLED |
| 57-source-output-validation | packages/bus/tests/usage.test.mjs | KILLED |
| 58-turn-sum-precision | packages/bus/tests/usage.test.mjs | KILLED |
| 59-source-failure-is-unknown | packages/bus/tests/usage.test.mjs | KILLED |
| 60-all-enabled-sources | packages/bus/tests/usage.test.mjs | KILLED |
| 61-instance-group | packages/bus/tests/usage.test.mjs | KILLED |
| 62-model-group | packages/bus/tests/usage.test.mjs | KILLED |
| 63-provider-group | packages/bus/tests/usage.test.mjs | KILLED |
| 64-account-unassigned | packages/bus/tests/usage.test.mjs | KILLED |
| 65-usage-timestamp | packages/bus/tests/store.test.mjs | KILLED |
| 66-claude-project-no-follow | packages/plugins/tests/transcript.test.mjs | KILLED |
66/66 killed; no survivors, timeouts or invalid runs. All 38 hashes and staged blobs restored; clean-index reconstruction matches all 38 paths. Final cwd/argv node/chromium sweep is empty; every runner has exited. No Docker network was created. Candidate manifest SHA-256: e09313aba4d155a1c5af7bfb227ec397e96c0d57444782cd0b48593102bcc684.