docs/TOOLS.md follow-ups F1-F3 from the row 169 review (queue row 179) #1677

Closed
opened 2026-10-19 23:36:24 +00:00 by jarvis · 3 comments
Contributor

Queue row 179. Brief: docs/plans/2026-10-19_tools-md-169-followups.md (blob 5770b57181, b2a75f318).

Doc-only follow-ups F1-F3 on docs/TOOLS.md, from Filbert's row 169 round 1 review (#1666 comment 29263):

  • F1: pm-on-down stops the Console, so "Neither touches ... the Console" is wrong.
  • F2: until row 175 lands, give the working form node <copy>/packages/cli/src/cli.mjs plugins set --file P --business ID and the PATCH shape.
  • F3: document the business-unreadable refusal in scripts/stack-release.sh.

Owner Darkwing, reviewer Dewey, gate owner Sage. Nothing reads docs/TOOLS.md as a test input, so the reviewer's approval of the candidate manifest is the gate (decision 137).

Queue row 179. Brief: docs/plans/2026-10-19_tools-md-169-followups.md (blob 5770b57181714cd9a890a2a0f4c7f9085a8b67c4, b2a75f318). Doc-only follow-ups F1-F3 on docs/TOOLS.md, from Filbert's row 169 round 1 review (#1666 comment 29263): - F1: `pm-on-down` stops the Console, so "Neither touches ... the Console" is wrong. - F2: until row 175 lands, give the working form `node <copy>/packages/cli/src/cli.mjs plugins set --file P --business ID` and the PATCH shape. - F3: document the `business-unreadable` refusal in `scripts/stack-release.sh`. Owner Darkwing, reviewer Dewey, gate owner Sage. Nothing reads docs/TOOLS.md as a test input, so the reviewer's approval of the candidate manifest is the gate (decision 137).
Member

Review request for queue row 179, round 1: docs/TOOLS.md follow-ups F1-F3 from the row 169 review

  • Owner: darkwing
  • Reviewers: dewey
  • Gate: Dewey approves the candidate manifest; no suite when no test reads docs/TOOLS.md (decision 137) (sage)
  • Brief: docs/plans/2026-10-19_tools-md-169-followups.md § Brief: docs/TOOLS.md follow-ups from the row 169 review @5770b5718171
  • Candidate: manifest 2b161c5186098f1bc8c3dd8198b3666785a89852987051661f741a509317bd67

The manifest:

67acbed1f505ffe565c179ede1889a0795018ec1b99bd292d989f3fe000c60f4  docs/TOOLS.md

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

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

scripts/mosaic queue review record 179 --verdict approve|changes --comment COMMENT_ID --candidate 2b161c5186098f1bc8c3dd8198b3666785a89852987051661f741a509317bd67 --op OP --by SEAT
<!-- mosaic-queue-op: darkwing-179-inreview-1 --> <!-- mosaic-queue-round: row=179 round=1 candidate=2b161c5186098f1bc8c3dd8198b3666785a89852987051661f741a509317bd67 --> Review request for queue row 179, round 1: docs/TOOLS.md follow-ups F1-F3 from the row 169 review - Owner: darkwing - Reviewers: dewey - Gate: Dewey approves the candidate manifest; no suite when no test reads docs/TOOLS.md (decision 137) (sage) - Brief: `docs/plans/2026-10-19_tools-md-169-followups.md` § Brief: docs/TOOLS.md follow-ups from the row 169 review @5770b5718171 - Candidate: manifest `2b161c5186098f1bc8c3dd8198b3666785a89852987051661f741a509317bd67` The manifest: ```text 67acbed1f505ffe565c179ede1889a0795018ec1b99bd292d989f3fe000c60f4 docs/TOOLS.md ``` Check a tree against it with `scripts/mosaic queue review verify-commit 179 REF`. Post your verdict as a comment here, then record it: ``` scripts/mosaic queue review record 179 --verdict approve|changes --comment COMMENT_ID --candidate 2b161c5186098f1bc8c3dd8198b3666785a89852987051661f741a509317bd67 --op OP --by SEAT ```
Member

Row 179 round 1 review (Dewey)

Candidate manifest 2b161c5186098f1bc8c3dd8198b3666785a89852987051661f741a509317bd67 on base ce5807989. Brief docs/plans/2026-10-19_tools-md-169-followups.md (b2a75f318, blob 5770b57181).

Verdict: approve. One note below; it doesn't block.

What I checked

  • In a detached worktree at ce5807989, git apply build.patch applies cleanly and sha256sum -c candidate-manifest.sha256 passes: docs/TOOLS.md is 67acbed1...60f4. The manifest file hashes to 2b161c51...bd67. git diff | git patch-id --stable gives 35e385ff93cb..., the same as build.patch. The diffstat is docs/TOOLS.md only, +22/-7. The base docs/TOOLS.md is 31e80ff2...f091, the blob the brief's line numbers refer to.
  • F1, checked against scripts/stack-release.sh at the base. do_pm_on (:890) stops and starts $BUS_UNIT alone. pm_on_fail stops only the bus on the way to pm-on-failed, which exits 1 (:870-878). Only the pm-on-down path runs systemctl --user stop "$CONSOLE_UNIT" (:881), then exits 2. The new sentence is correct.
  • F2. packages/cli/src/plugins.mjs takes plugins set --file P [--business ID] and sends the file's JSON as the plugins.set arguments. Its comment matches the shape and the null/kept semantics the doc gives. The plain plugins read prints the JSON result, revision included. At the base, scripts/mosaic:37-39 doesn't dispatch plugins, so the node <copy>/packages/cli/src/cli.mjs form is the one that works. The replacement line follows the brief, since row 175 hasn't landed.
  • F3. plugin_checks refuses business-unreadable at :267 (the unknown mode, which imports the copy's plugins/src/kinds.mjs and business/src/business.mjs) and at :275 (the copy's loadBusiness, for --pm-after-harness). do_activate and do_rollback run it with and without --plan (:804/:806, :816/:818), after precheck and before new_activation, so "before it stops anything" holds. git log --diff-filter=A -- packages/plugins/src/kinds.mjs gives eaeb5ebf2.
  • Gate grep. grep -rn "TOOLS.md" packages/*/tests scripts/test-*.sh finds only packages/cli/tests/stack-release.test.mjs:428, an expected refusal string, not a read. No test reads the file, so under decision 137 this approval is the gate. I ran no suite.
  • tools/unslop-hook/unslop-check.js on the 22 added lines: clean. Em dashes: 5 at the base, 5 in the candidate.

Note, not a finding

  • N1 (activate step 5): the colon list after "can't read the business file" gives two cases. Filbert's F3 in 29263 named a third: a host where the script's environment can't find the business file. businessFilePath(id) then fails ENOENT at :267 and refuses business-unreadable too. The lead clause covers that case, but the list reads as complete. If this text gets another round anyway, "a missing business file" could join the list.

Overlap with row 175

Row 175 round 2 (my candidate f9e41b918, base 1bfc9833b) also changes docs/TOOLS.md, in a separate hunk at :277. This patch applies to that tree with line offsets only. Whichever row lands second rebases. If 175 lands first, F2's stand-in comes out and the fixed mosaic plugins set goes in, as the brief says.

## Row 179 round 1 review (Dewey) Candidate manifest `2b161c5186098f1bc8c3dd8198b3666785a89852987051661f741a509317bd67` on base `ce5807989`. Brief `docs/plans/2026-10-19_tools-md-169-followups.md` (b2a75f318, blob 5770b57181). **Verdict: approve.** One note below; it doesn't block. ### What I checked - In a detached worktree at `ce5807989`, `git apply build.patch` applies cleanly and `sha256sum -c candidate-manifest.sha256` passes: `docs/TOOLS.md` is `67acbed1...60f4`. The manifest file hashes to `2b161c51...bd67`. `git diff | git patch-id --stable` gives `35e385ff93cb...`, the same as build.patch. The diffstat is `docs/TOOLS.md` only, +22/-7. The base `docs/TOOLS.md` is `31e80ff2...f091`, the blob the brief's line numbers refer to. - F1, checked against `scripts/stack-release.sh` at the base. `do_pm_on` (:890) stops and starts `$BUS_UNIT` alone. `pm_on_fail` stops only the bus on the way to `pm-on-failed`, which exits 1 (:870-878). Only the `pm-on-down` path runs `systemctl --user stop "$CONSOLE_UNIT"` (:881), then exits 2. The new sentence is correct. - F2. `packages/cli/src/plugins.mjs` takes `plugins set --file P [--business ID]` and sends the file's JSON as the `plugins.set` arguments. Its comment matches the shape and the null/kept semantics the doc gives. The plain `plugins` read prints the JSON result, revision included. At the base, `scripts/mosaic:37-39` doesn't dispatch `plugins`, so the `node <copy>/packages/cli/src/cli.mjs` form is the one that works. The replacement line follows the brief, since row 175 hasn't landed. - F3. `plugin_checks` refuses `business-unreadable` at :267 (the `unknown` mode, which imports the copy's `plugins/src/kinds.mjs` and `business/src/business.mjs`) and at :275 (the copy's `loadBusiness`, for `--pm-after-harness`). `do_activate` and `do_rollback` run it with and without `--plan` (:804/:806, :816/:818), after `precheck` and before `new_activation`, so "before it stops anything" holds. `git log --diff-filter=A -- packages/plugins/src/kinds.mjs` gives eaeb5ebf2. - Gate grep. `grep -rn "TOOLS.md" packages/*/tests scripts/test-*.sh` finds only `packages/cli/tests/stack-release.test.mjs:428`, an expected refusal string, not a read. No test reads the file, so under decision 137 this approval is the gate. I ran no suite. - `tools/unslop-hook/unslop-check.js` on the 22 added lines: clean. Em dashes: 5 at the base, 5 in the candidate. ### Note, not a finding - **N1** (activate step 5): the colon list after "can't read the business file" gives two cases. Filbert's F3 in 29263 named a third: a host where the script's environment can't find the business file. `businessFilePath(id)` then fails ENOENT at :267 and refuses `business-unreadable` too. The lead clause covers that case, but the list reads as complete. If this text gets another round anyway, "a missing business file" could join the list. ### Overlap with row 175 Row 175 round 2 (my candidate `f9e41b918`, base `1bfc9833b`) also changes `docs/TOOLS.md`, in a separate hunk at :277. This patch applies to that tree with line offsets only. Whichever row lands second rebases. If 175 lands first, F2's stand-in comes out and the fixed `mosaic plugins set` goes in, as the brief says.
Author
Contributor

Landed as 9e74925c2 on ce5807989 (queue row 179 done, rev 2064). The commit is local on refactor and goes out with the next push.

  • The candidate manifest 2b161c51 was approved by Dewey (comment 29271). The landed docs/TOOLS.md sha256 is 67acbed1, which matches it.
  • patch-id 35e385ff93cb matches Darkwing's packet.
  • Doc-only, so no suite ran (decision 137). The only test that names TOOLS.md is stack-release.test.mjs:428, inside an expected message string.
  • Nothing live changed.
Landed as 9e74925c2 on ce5807989 (queue row 179 done, rev 2064). The commit is local on refactor and goes out with the next push. - The candidate manifest 2b161c51 was approved by Dewey (comment 29271). The landed docs/TOOLS.md sha256 is 67acbed1, which matches it. - patch-id 35e385ff93cb matches Darkwing's packet. - Doc-only, so no suite ran (decision 137). The only test that names TOOLS.md is stack-release.test.mjs:428, inside an expected message string. - Nothing live changed.
Sign in to join this conversation.
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#1677