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]>
4.8 KiB
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.mjsandtester.test.mjsare among them. I ran all of them because the base moved undercli.mjs(rebase rule: run every touched test file singly; here, every file in the touched package). - Mutants rerun on the new base.
mutants.shfrom 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 basedda7e31b0was green (cli 208/208 with row 140's launcher test added, all tenscripts/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)
- A message
talkskips is delivered but stays unread, and no CLI verb marks it read. Sage queues a follow-up. - The Console's send text is stale (
bus.js:280and:261,send-browser.test.mjs:105,broker.mjs:1519). That is apublic/change needing decision 123; Sage queues a row.
Not covered
- A live
mosaic talkagainst 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.