Files

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.md
  • business/src/instance-settings.mjs
  • business/tests/instance-settings.test.mjs
  • cli/src/instances.mjs
  • cli/tests/instances.test.mjs
  • webui/src/serve.mjs
  • webui/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-85 refuses an instance named human or tester with invalid-request. It runs after the id and op checks and before writer.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' gives invalid-business), and tester.test.mjs:53 pins the tester half. Tests: instance-settings.test.mjs:125-127, one refuses call for each name. The README bullet matches.
  • Dewey F2 (the 503 shape checks). webui/tests/instances.test.mjs:144-146 add revision: 'x', restart: 'yes' and instances: {}. Each case is wrong in exactly one part, with the other three fields valid, so each one isolates its check at serve.mjs:314. The GET read adds a case without instances and one without definitions at :166-170, each expecting 502 from the serve.mjs:91 check.
  • 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:110 and the real-broker case at webui/tests/instances.test.mjs:91 pin the new text with an anchored regex on an add of asst-2 with --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 --cached of packages/webui/src/public/ hashes to 4181b7f6...a7f7, byte-equal to public-70c9131f0-warn.diff. Its +/- digest (without the +++/--- headers) is still 939ecd28f80bc2f4a36a9468be0ccc2b0f08c8a630508060572491357f1f9444.
  • Hash pin. webui/src/bus.mjs is dfbc2289...9a4c in both rounds, and channel-proof.test.mjs:18 pins that value.
  • Base drift. From 70c9131f0 to HEAD a618528b2, 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/tester refusal, that is a bare invalid-request with the generic reason.
  • Dewey's N1 and N2.
  • Where the human/tester rule 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.