Files

3.6 KiB

Row 152 round 1 review (Filbert): approve

Candidate: manifest sha256 c333f4beffec1d901ca23200365698e42003c8256a609ad662429d15e63747c1, 7 paths, base 56639c99b, packet agents/dewey/work/queue-152/ in ecf1cec07.

I found no defect, and the tests the brief asks for are there: a target inside and outside launch.instances, in both the bus result and talk. The notes below don't block.

Rebuild

  • A fresh worktree at 56639c99b with build.patch applied. Every manifest hash matched and git diff --check was clean (7 files, +89 -13).
  • The added lines have no dash, curly-quote or control characters. The packet manifest checks.
  • No commit from 56639c99b to refactor HEAD touches a manifest path.

What I checked and found correct

  • launchable is well defined. business.mjs checkLaunch requires launch.instances to be a non-empty distinct list of declared instances whenever a launch block exists, so launch.instances.includes(to) never reads a missing list. The same check refuses launch.by inside instances, so false for launch.by itself is true to the data, as BUILD.md says.
  • The change is additive. waiting keeps row 146's four keys and adds one. told, the routing and the stored message are unchanged; only the notice body is chosen by launchable. The new bus test shows the message is stored for coder, a later claim delivers it, and no second notice goes out.
  • talk. In waitingLines the w.role === w.launcher line still comes first, so the launcher case doesn't change. The launch-block line comes before the told line and prints no restart line. A restart only starts launch.by, which still couldn't launch the role, so that's right.
  • The call: launch.by is still told. I agree with BUILD.md "The call".
    • I checked point 1: nothing under packages/webui/src reads waiting or launchable. So without a notice, a Console sender would see no reply at all.
    • Point 2 holds: roles/chief-of-staff.md line 22 already has "tell the sender why not with a message in_reply_to the waiting message", and the new text asks only for that branch. No contract change is needed.
    • Mutant B4 pins the call.
  • Docs. The bus README, the cli README paragraph (sage-0481) and TOOLS.md match the code and the test strings.

Notes (non-blocking)

  1. An older bus without launchable. As Dewey notes, no test sends a waiting without the key, so a !w.launchable mutant would survive. The === false check and its comment carry it today.
  2. A tester's message to a role outside the launch block prints the launch-block line, not "a tester's message tells nobody to launch it", because the launchable check comes first. Both lines are true, and the launch-block one says more. No test covers this ordering.

What I ran and what I took from receipts

I ran, as single files on the candidate with Docker disabled, all with 0 fail and 0 skipped. Every file except runner used TMPDIR set to scratch. runner used the inherited TMPDIR.

Test file Result
bus launch-notice 8/8
bus messaging 13/13
bus threads 14/14
bus broker 16/16
bus chief-of-staff 13/13
bus csuite-messaging 16/16
bus tester 11/11
cli verbs 9/9
cli tester 7/7
cli follow 6/6
business chief-of-staff 10/10
harness runner 24/24

I ran no mutants of my own.

From Dewey's receipts, not rerun by me:

  • B1 to B6 and C1 to C2, 8 of 8 killed, 00:41:24Z to 00:41:36Z (BUILD.md, mutants-run.log).
  • The gate from 00:42:47Z to 00:46:38Z, all 0 fail (gate-run.log): bus 276, cli 215, business 108, webui 113, and every scripts/test-*.sh.

I took no slot.