Unclaimed files left in the canonical checkout. Inventory: canonical-cleanup-inventory.md (commit-as-evidence groups). detect-secrets scan clean on 2026-11-02: hits are sha256 pins, git object ids, test sentinels already in tracked tests and unit-file lines.
3.9 KiB
Row 179: docs/TOOLS.md follow-ups from the row 169 review
Brief docs/plans/2026-10-19_tools-md-169-followups.md (b2a75f318). Filbert raised the follow-ups in
the row 169 round 1 review (#1666 comment 29263). Owner Darkwing, reviewer Dewey, gate owner Sage.
Files
| File | What |
|---|---|
build.patch |
the change, git diff ce5807989 -- docs/TOOLS.md |
candidate-manifest.sha256 |
one line, docs/TOOLS.md |
- Base:
ce5807989(origin/refactor at 23:32Z, after the row 169 landing264756a30). Itsdocs/TOOLS.mdis sha256 31e80ff21e78...f091, the blob the brief's line numbers refer to. - Candidate
docs/TOOLS.mdsha256 67acbed1f505ffe565c179ede1889a0795018ec1b99bd292d989f3fe000c60f4. - Manifest digest 2b161c5186098f1bc8c3dd8198b3666785a89852987051661f741a509317bd67.
git patch-id --stable: 35e385ff93cb3fd13b7da54375eb95bd455431c4.- Diff:
docs/TOOLS.mdonly, 22 insertions and 7 deletions, all in the three spots F1-F3 name.
The change
- F1, at :454 (now :467-469):
pm-onand apm-on-failedrun leave the Console running, andpm-on-downstops it. None of them touches the copy or the store. Checked against the landedscripts/stack-release.sh:do_pm_onstops and starts the bus alone (stop_bus).pm_on_failusesstop_bustoo and exits 1 on a phase-1 pass. Only thepm-on-downpath runssystemctl --user stop "$CONSOLE_UNIT", then exits 2. - F2, at :426 and :446.
- Step 2 of the two-phase section gives the working form
node <copy>/packages/cli/src/cli.mjs plugins set --file P --business ID.<copy>is the pointer's copy, because the bus accepts the human proof only from its own tree. - It gives the PATCH shape
{"revision":"<64 hex>","plugins":{"<kind>":<value>|null}}, where the revision comes from thepluginsread and null removes a kind. A kind the patch doesn't name keeps its setting, aspackages/cli/src/plugins.mjsandpackages/business/src/plugin-settings.mjssay. - One line says row 175's fixed
mosaic plugins setreplaces the form once that row lands. Row 175 hasn't landed (sage-1098), so the form stays in. - Rollback step 7 points to that step for the null set.
- Step 2 of the two-phase section gives the working form
- F3, in activate step 5 and rollback step 7.
business-unreadablecovers a copy older thaneaeb5ebf2, which has noplugins/src/kinds.mjs, and a file the target's loader refuses.- The code is
plugin_checksatscripts/stack-release.sh:267and:275.do_activateanddo_rollbackboth run it, with and without--plan(:804, :806, :816, :818). git log --diff-filter=A -- packages/plugins/src/kinds.mjsgiveseaeb5ebf2. The live copy5fa9cc8f2contains it (merge-base --is-ancestor), as Sage found. TOOLS.md doesn't name the live copy, since that fact changes with each re-pin.
The added lines pass tools/unslop-hook/unslop-check.js and add no em dash. TOOLS.md has the
same 5 em dashes it had at the base.
Gate
The brief's grep, grep -rn "TOOLS.md" packages/*/tests scripts/test-*.sh, finds one line:
packages/cli/tests/stack-release.test.mjs:428: ... (e)=>`... TOOLS.md step 4`],
That is an expected refusal message string, not a read. A wider
git grep -ln "TOOLS.md" -- '*test*' '*spec*' outside v1/, agents/ and docs/ finds the same file
and nothing else. No test reads the file, so under decision 137 (Mos 10-16) Dewey's approval of
the candidate manifest is the gate, and I ran no suite.
Review
Dewey approved round 1 (#1677 comment 29271, rev 2062) on manifest 2b161c51. Their rebuild on
ce5807989 matched the manifest, the TOOLS.md sha256 and the patch-id.
Note N1 isn't a finding. A host that can't find the business file fails ENOENT at
stack-release.sh:267 and refuses business-unreadable too. The lead clause in F3 covers that
case, but the list after it reads as complete. I'm leaving it unless there's another round.
Row 175 r2 also changes TOOLS.md, at :277. This patch applies to that tree with line offsets only. Whichever row lands second rebases.