Files

1 line
3.3 KiB
JSON

{"body":"## Filbert review: row 175 round 3 (#1673), approve\n\nRequest 29276. Candidate manifest `2e30f2a1e66701c509044100c9771fefc1b0cdac60c17a3f1a0dab7ed3e29d5f` on base `9e74925c2` (candidate commit 989699f7c). This re-reviews my round 1 approve (29264, `dc5c0361a310`). I did not review the superseded request 29275.\n\n**Verdict: approve.** There are no findings. One doc-only follow-up is below; Dewey's BUILD.md records it too.\n\n### What I ran\n\n- Built `~/filbert-scratch/r175-r3/wt`: `9e74925c2`, then `git apply --index build.patch`.\n - `sha256sum -c` on the manifest: 25/25 OK. The manifest file hashes to `2e30f2a1...3e29d5f`.\n - The cached diff's patch-id `c1cf0ed66006` equals that of `git diff 9e74925c2 989699f7c`.\n- Base drift: `git log 9e74925c2..refactor` on the 25 paths is empty.\n- `git range-diff d63cfca22..7b27ab3f9 9e74925c2..989699f7c`:\n - Both round 1 commits are `=`, so what I approved in round 1 carries over unchanged.\n - One new commit, 989699f7c, touches 5 files, +16/-6.\n - The TOOLS.md hunk is still the single one at :277-281.\n- Tests, one file at a time, scratch TMPDIR, slot grant sage-1105 after my /proc CLEAR: 7 files, 179/179 pass, 0 fail, 0 skip, every rc 0 (23:52:09Z-23:55:56Z). Counts are awk sums over the spec logs.\n - Files: project tester-init and project; cli tester-reads, host and stack-release (93/93); bus tester-writes and tester.\n - The other 18 files from round 1 run no line this commit changes, and round 1's 205/205 covered them on the same two commits.\n- Dewey's 309/309 singles, cli 390/390, project 40/40 and 28/28 mutants (m11 included) are their receipts. I ran only the N1 mutant below.\n\n### The new commit against round 1's notes\n\n- **N1** packages/project/src/paths.mjs:55: `relative(area, repo) === '' || !contains(area, repo)` now refuses the area root itself with `tester-project-area`.\n - `relative` is already imported (:2).\n - `projectRepo` returns an `absolute()` path, and `area` comes from `join`, so a trailing slash or a `.` segment can't slip past the equality.\n - The new case at tester-init.test.mjs:54 is the root exactly. My mutant dropped `relative(area, repo) === ''` from :55, and it was killed: tester-init failed 1 of 3, rc 1. I restored the file and the tree was clean afterwards.\n - projectRepo's own overlap check still uses the shared `contains` with `rel === ''`, which is right there: two equal paths do overlap.\n- **N2** tester-reads.test.mjs:105-106 adds `bus start acme` and `bus stop` to the exit-4 list. The cli README's list says so too.\n- **N3** broker.mjs:1288-1289 is a comment only. It's accurate: `name.set` gates on `s.human` and `s.tester`, and `project.create` on `s.tester`, and neither reads `reader`.\n- cli README :187-192: the area-root wording matches the code.\n\n### Doc-only follow-up\n\n- **F1** docs/TOOLS.md:452, from row 179: \"Until row 175 lands, `scripts/mosaic` doesn't dispatch `plugins`\" goes stale once this row lands. What matters then is the window's target copy. A copy from before this landing needs `node <copy>/packages/cli/src/cli.mjs plugins set`, and a later one takes `mosaic plugins set`. Dewey's BUILD.md records the same. Decision 137: TOOLS.md is a .md file, and the only test that reads it is stack-release.test.mjs, which reads a refusal string and not this sentence. So it doesn't block.\n"}