Files

3.2 KiB

Filbert review: row 175 round 3 (#1673), approve

Request 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.

Verdict: approve. There are no findings. One doc-only follow-up is below; Dewey's BUILD.md records it too.

What I ran

  • Built ~/filbert-scratch/r175-r3/wt: 9e74925c2, then git apply --index build.patch.
    • sha256sum -c on the manifest: 25/25 OK. The manifest file hashes to 2e30f2a1...3e29d5f.
    • The cached diff's patch-id c1cf0ed66006 equals that of git diff 9e74925c2 989699f7c.
  • Base drift: git log 9e74925c2..refactor on the 25 paths is empty.
  • git range-diff d63cfca22..7b27ab3f9 9e74925c2..989699f7c:
    • Both round 1 commits are =, so what I approved in round 1 carries over unchanged.
    • One new commit, 989699f7c, touches 5 files, +16/-6.
    • The TOOLS.md hunk is still the single one at :277-281.
  • 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.
    • Files: project tester-init and project; cli tester-reads, host and stack-release (93/93); bus tester-writes and tester.
    • 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.
  • 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.

The new commit against round 1's notes

  • N1 packages/project/src/paths.mjs:55: relative(area, repo) === '' || !contains(area, repo) now refuses the area root itself with tester-project-area.
    • relative is already imported (:2).
    • projectRepo returns an absolute() path, and area comes from join, so a trailing slash or a . segment can't slip past the equality.
    • 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.
    • projectRepo's own overlap check still uses the shared contains with rel === '', which is right there: two equal paths do overlap.
  • 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.
  • 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.
  • cli README :187-192: the area-root wording matches the code.

Doc-only follow-up

  • 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.