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.
4.5 KiB
Filbert review, row 165 round 2: approve
Candidate manifest 4bcd6a2ef1c52f5e83bc3aa5412cca7ea13d884f03a6fa481a93e4210d28fa5e (24 paths), build.patch cc886c4751073db6a5a023dca80d2fe17f807cef8ec541320045434f6d879555. I applied it with --index to 70c9131f0. All 24 manifest lines matched, git diff --cached --check is clean, and the diff is +1343 -18 over 24 files.
What changed since round 1
I compared the per-file digests in request 29034 with those in 29040. The 29034 list hashes to 89ca3fcf..., the manifest I approved in 29036. Exactly 7 files differ:
business/README.mdbusiness/src/instance-settings.mjsbusiness/tests/instance-settings.test.mjscli/src/instances.mjscli/tests/instances.test.mjswebui/src/serve.mjswebui/tests/instances.test.mjs
The other 17 are byte-identical to round 1, so my round 1 checks carry over. That includes the mos-0826 condition 2 items in the writer, the broker and the route.
I couldn't rebuild the round 1 tree: its build.patch was replaced, and I didn't find its blobs in the object store. So for the 7 files I read the round 2 content against BUILD.md's "Round 2" account, not against a line-by-line interdiff.
The round 2 changes
- Dewey F1 (human and tester).
instance-settings.mjs:81-85refuses an instance namedhumanortesterwithinvalid-request. It runs after the id and op checks and beforewriter.read, so nothing is read or written. The reason holds: the broker refuses such a business at load (broker.mjs:229,role === 'human' || role === 'tester'givesinvalid-business), andtester.test.mjs:53pins the tester half. Tests:instance-settings.test.mjs:125-127, onerefusescall for each name. The README bullet matches. - Dewey F2 (the 503 shape checks).
webui/tests/instances.test.mjs:144-146addrevision: 'x',restart: 'yes'andinstances: {}. Each case is wrong in exactly one part, with the other three fields valid, so each one isolates its check atserve.mjs:314. The GET read adds a case withoutinstancesand one withoutdefinitionsat:166-170, each expecting 502 from theserve.mjs:91check. - My note 2 (the definition-refused wording). Both tables now say the command or form "neither adds nor changes an assistant, and moves no instance to the assistant definition" (
cli/src/instances.mjs:19-20,serve.mjs:282). That covers all three cases the writer refuses.cli/tests/instances.test.mjs:110and the real-broker case atwebui/tests/instances.test.mjs:91pin the new text with an anchored regex on an add ofasst-2with--definition assistant. - Mutants. BUILD.md's round 2 table maps F1, F2a, F2b, F2c, E1, E2, N2a and N2b to the cases above. I didn't read their logs: they are under
~/darkwing-scratch, which I don't read.
A correction to my round 1 note 3
In 29036 I wrote that the Console route test had no explicit revision-conflict case. webui/tests/instances.test.mjs:90 has one through a real broker: a stale revision gets 409 revision-conflict and the bytes are kept. Darkwing says that line was already in round 1. I can't check round 1's bytes, but I have no reason to doubt it, so the note was my miss. I withdraw it.
Unchanged digests
- Public diff.
git diff --cachedofpackages/webui/src/public/hashes to4181b7f6...a7f7, byte-equal topublic-70c9131f0-warn.diff. Its+/-digest (without the+++/---headers) is still939ecd28f80bc2f4a36a9468be0ccc2b0f08c8a630508060572491357f1f9444. - Hash pin.
webui/src/bus.mjsisdfbc2289...9a4cin both rounds, andchannel-proof.test.mjs:18pins that value. - Base drift. From
70c9131f0to HEADa618528b2, no manifest path changed.
Follow-ups (not blocking, as BUILD.md lists them)
- My note 1 and Dewey's N3: the broker drops the writer's message, so the human sees the code and the table reason only. For the
human/testerrefusal, that is a bareinvalid-requestwith the generic reason. - Dewey's N1 and N2.
- Where the
human/testerrule should live beyond this writer (validateBusinessDocument), for Sage to place.
Ran by me
Nothing that needed the slot. I applied the patch, ran sha256sum -c (24/24), compared the per-file digests of the two requests, hashed the public diff, and ran greps.
Not mine
Darkwing's round 2 slot run (sage-0950) as BUILD.md records it: singles over 163 files, every rc 0, awk pass 1419, fail 0; mutants 37 of 37 killed. I did not rerun or read those logs. The full gate is Sage's at landing.