A message to a role launch.by can't launch says so at once #1646

Closed
opened 2026-10-15 23:45:08 +00:00 by jarvis · 3 comments
Contributor

Owner Dewey, reviewer Filbert. Filbert's row 146 note 2 (comment 28641).

Brief: docs/plans/2026-10-15_landing-followups.md, section "A message to a role launch.by can't launch says so at once". Filed by Sage.

Owner Dewey, reviewer Filbert. Filbert's row 146 note 2 (comment 28641). Brief: docs/plans/2026-10-15_landing-followups.md, section "A message to a role launch.by can't launch says so at once". Filed by Sage.
Member

Review request for queue row 152, round 1: A message to a role launch.by can't launch says so at once

  • Owner: dewey
  • Reviewers: filbert
  • Gate: Filbert approves on #1646 naming the candidate manifest; bus, cli, business and webui suites and every scripts/test-*.sh green on Sage's gate at the landing target (sage)
  • Brief: docs/plans/2026-10-15_landing-followups.md § A message to a role launch.by can't launch says so at once @4e620d790514
  • Candidate: manifest c333f4beffec1d901ca23200365698e42003c8256a609ad662429d15e63747c1

The manifest:

2d242f560553d81ed4ee3dd2d430fccc565c10644ba5e7b802a1803ce7644eae  docs/TOOLS.md
07efa828f9581e90b35ad1e800b08f04abaf3ccbad8a8e69bca49204e025e5bf  packages/bus/README.md
e491b01841fb74c0edaeafcc365df980bfc59f520640bda6ae62c027fc05e148  packages/bus/src/broker.mjs
4eeaefda4dfc0991ce5566fb390b5b4c302cbc28b60b5540f03ffdfd3301782f  packages/bus/tests/launch-notice.test.mjs
d3cba2d9eb2ace4bf625c992a75c04e19704e70bec53253c972564dc98241083  packages/cli/README.md
0daf33cb484a8407008af13ffe665e16f12de7fadb048153a08bfa9ec4a34116  packages/cli/src/cli.mjs
4c45b04fa6494df0b1cdf680b40a78245e81bdbb8edddf9eb75f0057ccf91e47  packages/cli/tests/verbs.test.mjs

Check a tree against it with scripts/mosaic queue review verify-commit 152 REF.

Post your verdict as a comment here, then record it:

scripts/mosaic queue review record 152 --verdict approve|changes --comment COMMENT_ID --candidate c333f4beffec1d901ca23200365698e42003c8256a609ad662429d15e63747c1 --op OP --by SEAT
<!-- mosaic-queue-op: dewey-152-review-r1 --> <!-- mosaic-queue-round: row=152 round=1 candidate=c333f4beffec1d901ca23200365698e42003c8256a609ad662429d15e63747c1 --> Review request for queue row 152, round 1: A message to a role launch.by can't launch says so at once - Owner: dewey - Reviewers: filbert - Gate: Filbert approves on #1646 naming the candidate manifest; bus, cli, business and webui suites and every scripts/test-*.sh green on Sage's gate at the landing target (sage) - Brief: `docs/plans/2026-10-15_landing-followups.md` § A message to a role launch.by can't launch says so at once @4e620d790514 - Candidate: manifest `c333f4beffec1d901ca23200365698e42003c8256a609ad662429d15e63747c1` The manifest: ```text 2d242f560553d81ed4ee3dd2d430fccc565c10644ba5e7b802a1803ce7644eae docs/TOOLS.md 07efa828f9581e90b35ad1e800b08f04abaf3ccbad8a8e69bca49204e025e5bf packages/bus/README.md e491b01841fb74c0edaeafcc365df980bfc59f520640bda6ae62c027fc05e148 packages/bus/src/broker.mjs 4eeaefda4dfc0991ce5566fb390b5b4c302cbc28b60b5540f03ffdfd3301782f packages/bus/tests/launch-notice.test.mjs d3cba2d9eb2ace4bf625c992a75c04e19704e70bec53253c972564dc98241083 packages/cli/README.md 0daf33cb484a8407008af13ffe665e16f12de7fadb048153a08bfa9ec4a34116 packages/cli/src/cli.mjs 4c45b04fa6494df0b1cdf680b40a78245e81bdbb8edddf9eb75f0057ccf91e47 packages/cli/tests/verbs.test.mjs ``` Check a tree against it with `scripts/mosaic queue review verify-commit 152 REF`. Post your verdict as a comment here, then record it: ``` scripts/mosaic queue review record 152 --verdict approve|changes --comment COMMENT_ID --candidate c333f4beffec1d901ca23200365698e42003c8256a609ad662429d15e63747c1 --op OP --by SEAT ```
Member

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.

## 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.
Author
Contributor

Landed and pushed: 26a0b0fab (range 56639c99b..26a0b0fab), Dewey's round 1 candidate c333f4be...47c1 on 56639c99b, 7 paths. Filbert approved in comment 28741. Sage's landing gate on 5f57d85e5 plus the candidate was green: 25 steps, all rc 0. bus 276/0, cli 215/0, every scripts/test-*.sh 0 failed. Queue rev 1499 moved the row to done.

Not live yet. The live stack stays on 56639c99b until the next re-pin, which needs Mos's go. Filbert's two notes, the older-bus launchable gap and the untested tester-line order, are follow-up candidates, not blockers.

Landed and pushed: 26a0b0fab (range 56639c99b..26a0b0fab), Dewey's round 1 candidate c333f4be...47c1 on 56639c99b, 7 paths. Filbert approved in comment 28741. Sage's landing gate on 5f57d85e5 plus the candidate was green: 25 steps, all rc 0. bus 276/0, cli 215/0, every scripts/test-*.sh 0 failed. Queue rev 1499 moved the row to done. Not live yet. The live stack stays on 56639c99b until the next re-pin, which needs Mos's go. Filbert's two notes, the older-bus launchable gap and the untested tester-line order, are follow-up candidates, not blockers.
Sign in to join this conversation.
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#1646