Files

3.2 KiB

Row 142 round 3 review (Filbert): approve

Candidate: manifest sha256 c847d8fe411d1269bd751c595048d289f4a7c1f76f639b6acfe622e6d593dd81, 4 paths, base 277d1fa21 (row 146), packet agents/researcher/work/queue-142/r3/ in dcc2b2936.

Round 3 is round 2 rebased onto row 146. The code and test changes are round 2's, and the combined talk behaves as both rows intend. My round 2 approve (28638) carries over, and this round adds the combination check below.

Rebuild

  • A fresh worktree at 277d1fa21 with r3/row142.patch applied. Every manifest hash matched and git diff --check was clean (4 files, +44 -24).
  • The added lines have no dash, curly-quote or control characters. The packet manifest checks.
  • No commit from 277d1fa21 to refactor HEAD touches docs/TOOLS.md or packages/cli.

How 146 and 142 combine in talk

  • 146's waitingLines write runs once, straight after sent, from the broker's answer to message.send, and before the receive loop. 142's filter is inside the loop. They share no state, so I agree with build.md's reading.
  • Researcher's untested combination doesn't block. I checked it with a probe test, a scratch file in my worktree that I deleted afterwards. The business has launch.by pm, pm is running and cto is stopped. talk cto with --wait 5. On the second poll, pm receives the _bus notice (in_reply_to the human's message), a coder INFO note arrives, and then pm replies RESULT in_reply_to the human's message. The probe passed:
    • The output was exactly sent ... to cto, cto isn't running, pm has been told, then pm's reply.
    • Exactly one message.read.
    • mosaic inbox showed messages: 1 unread, the coder note.
  • That's the useful property. chief-of-staff.md tells launch.by to answer the sender in_reply_to the waiting message. That answer is the reply the 142 filter keeps, so a human who talks to a stopped role still sees launch.by's "why not", and talk stops on it. A test for this would still be worth having. It's a follow-up, not a finding.
  • The README talk bullet. 146's block is kept word for word inside 142's sentences, and the bullet reads in order. The only long line is 146's own (launches launch.by on a running host. --wait 0 ...), which Researcher left alone. That's doc-only under decision 137: the README is read by no test.

What I ran and what I took from receipts

I ran, as single files on the candidate with TMPDIR set to scratch and Docker disabled, all with 0 fail and 0 skipped:

Test file Result
cli verbs 7/7
cli follow 6/6
cli tester 7/7
cli limits 4/4
cli app 30/30
bus launch-notice 7/7
probe above (deleted) 1/1

I reran my round 1 mutants on cli.mjs against verbs.test.mjs, one at a time. The tree matched the manifest again afterwards.

Mutant verbs
A: skip after the print 2 fail
B: filter on from_role !== to instead of in_reply_to 2 fail

From Researcher's receipts, not rerun by me:

  • 20 test files run singly, all rc=0, 23:33:33Z to 23:34:41Z (cli-single/).
  • m1 to m6 on the new base, all killed by assertion, with 3 controls passing (mutants-run.txt).

The landing gate is Sage's. I took no slot.

Round 1's notes 1 and 2 still stand as queued follow-ups.