Files
jason.woltjeandClaude Sonnet 5.5 2118b3fdbb researcher: row 142 round 2 packet, candidate rebased onto dda7e31b0 (#1636)
Row 145 added 3 lines to cli.mjs after the approved round 1 base; same change, new base, regenerated
candidate manifest, TOOLS.md line rewrapped. Every cli test file passes singly; 6/6 mutants killed on the new base.
Packet only; the candidate is row142.patch and is not applied to the tree. Nothing pushed.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-15 18:05:45 -05:00

4.8 KiB
Raw Permalink Blame History

Row 142 (#1636) round 2: mosaic talk prints only the reply to its own message

Seat: Researcher. Reviewer: Filbert. Gate owner: Sage. Brief: docs/plans/2026-10-15_q167-north-star-rows.md, section "mosaic talk prints only the reply to its own message". Round 1: ../build.md. Filbert approved round 1 on #1636 (comment 28627). This packet exists because the approved manifest no longer matches the landed base, and it carries one doc-only fix.

Why round 2

Row 145's commit 467a313c7 added 3 lines to packages/cli/src/cli.mjs after my round 1 base (8e2c5c2d0). The landed cli.mjs blob therefore no longer equals the one Filbert approved. Nothing in my change moved; only the base did.

Base: dda7e31b0 (detached worktree /mnt/storage/scratch/researcher/q142r2). Canonical HEAD was d5a9bf4c3 at packet time; git diff --name-only dda7e31b0 HEAD -- packages roles scripts docs/TOOLS.md package.json is empty (the commits after dda7e31b0 touch BUILD-LOG.md, docs/ and agents/ only). row142.patch (this directory) is my diff on dda7e31b0: 4 files, +44 −24. Round 1's patch applied to dda7e31b0 with no conflict (git apply --check clean). It passes git apply --cached --check on dda7e31b0 and round-trips to the candidate tree 519d27488e29c5172264613e2e171679afcefcf7 (temp GIT_INDEX_FILE, trees equal). candidate-manifest.sha256 lists the 4 files (sha256 of the manifest: bb635c953d880719cea43712915378d579bb83d36d4b28669d587c2e9b95638c). Secrets and binary scan of the patch: nothing. Nothing is pushed; I hold no Gitea credential; the in-review move and review request are Sage's.

What differs from round 1

File Round 1 blob Round 2 blob Why
packages/cli/src/cli.mjs 6a70d46c… b1f269ce… the base now holds row 145's 3 lines; my hunks are the same two code hunks and one comment hunk as in round 1
docs/TOOLS.md e3c2337e… 596e232a… one line rewrapped (below)
packages/cli/README.md 666a8b14… 666a8b14… unchanged
packages/cli/tests/verbs.test.mjs d40868d4… d40868d4… unchanged

The code change is round 1's, line for line: in the talk receive loop, if (!follow && m.in_reply_to !== sent.id) continue; before the print and before message.read, and the timeout message ending "…and mosaic inbox shows it".

Doc-only fix (Filbert's non-blocking note 3). The talk sentence in docs/TOOLS.md had a line of 110 characters ("--follow and follow print and read everything. stop sends SIGTERM to a run's runner after checking it in"). I rewrapped it so no added line is longer than 75 characters. No wording changed.

Verification

  • Every cli test file, one at a time on the candidate tree (cli-single/, 19 files, all rc=0): app 30, boot-status 3, cli 12, config 6, follow 6, format 3, git-socket 18, host 41, launcher 17, launch-limits 1, limits 4, notifier 26, other-tree 4, stack-copy 12, tester 6, thread-launch 8, trackers-boot 1, transport 3, verbs 6. verbs.test.mjs (the three rewritten tests), follow.test.mjs and tester.test.mjs are among them. I ran all of them because the base moved under cli.mjs (rebase rule: run every touched test file singly; here, every file in the touched package).
  • Mutants rerun on the new base. mutants.sh from round 1, unchanged, 2026-10-15T23:03:18Z to 23:03:43Z (mutants-run.txt, mutants/). Three controls (verbs, follow, tester) pass 6/6 each. All 6 mutants fail their tests by assertion: m1 and m2 and m3 and m4 fail 2 tests each, m5 and m6 fail 1 each, as in round 1. The worktree is restored (the candidate's 4 files are the only diff).
  • The full gate (cli suite and every scripts/test-*.sh) was not rerun for this packet. Sage's instruction (sage-0406) is that the gate runs at landing, and the diff against round 1's gated tree is the base's own change plus a rewrapped doc line. I did run the whole cli suite's files singly, above. The row 140 gate I ran at 22:59 to 23:03Z on the same base dda7e31b0 was green (cli 208/208 with row 140's launcher test added, all ten scripts/test-*.sh), which says the base itself is healthy; it is not evidence for this candidate.

Filbert's other non-blocking notes (not in this packet)

  1. A message talk skips is delivered but stays unread, and no CLI verb marks it read. Sage queues a follow-up.
  2. The Console's send text is stale (bus.js:280 and :261, send-browser.test.mjs:105, broker.mjs:1519). That is a public/ change needing decision 123; Sage queues a row.

Not covered

  • A live mosaic talk against a running bus; the evidence is the in-process broker tests, as in round 1.
  • The carried row 132 notes (the change_organization "replaces" wording versus the broker's per-instance merge; a revision-only call refused by the writer, not the schema) are unrelated to this row.