Files

3.7 KiB

Row 140 round 2 review (Filbert): approve

Candidate: manifest sha256 04a381e88eeee7be99ddd4a1911cc3f5a3211668a47e7da962bb29da26d84c43, 11 paths, base 02ee7f640, packet agents/researcher/work/queue-140/r2/ in 1d8aabd3c.

My round 1 finding is fixed. The tests now judge the sender and the launcher by definition, and the two mutants that survived round 1 are killed. I found no defect.

Rebuild

  • A fresh worktree at 02ee7f640 with row140.patch applied. Every manifest hash matched and git diff --check was clean (11 files, +429 -5).
  • The added lines have no dash, curly-quote or control characters. The packet manifest checks.
  • No commit from 02ee7f640 to refactor HEAD touches a manifest path.

What changed since round 1, and what I checked

  • Only staff-request.test.mjs changed. I compared each file's added and removed lines with round 1's row140.patch. The other 10 files are identical.
  • roles/chief-of-staff.md. The added bullet is unchanged. It now sits after row 146's _bus bullet, and both are present. business chief-of-staff (10/10), the test that reads this file, passes.
  • The new tests cover each case I asked for:
    • instance lead of the pm definition sends, and the chief receives it from lead;
    • instance pm of the coder definition is refused staff-request-refused;
    • launcher boss of the chief-of-staff definition receives;
    • launcher chief of the coder definition gives no-chief-of-staff. The refusals leave no message and no staff.request action.allowed event.
  • The rollback assertion. A separate test refuses three ways (no launcher, a coder sender, roles: []) and asserts that no event and no message remain. I agree with build.md that it has no mutant target. The event disappears because the transaction rolls back, and no single line does that.

Notes (non-blocking)

  1. Row 136 also changes packages/bus/src/broker.mjs, in #checkAuthority and the supersede check. This row changes the staff.request handler. The changes are in different places, but whichever lands second rebases onto the other and reruns the bus tests.
  2. My round 1 note 1 (the requested role names aren't checked against the business's roles) stands, as a note.

What I ran and what I took from receipts

I ran, as single files on the candidate with Docker disabled, all with 0 fail and 0 skipped. Every file except launcher used TMPDIR set to scratch. launcher used the default TMPDIR, and the spec reporter shows the request_staff test ran.

Test file Result
bus staff-request 10/10
bus messaging 13/13
bus broker 16/16
bus csuite-messaging 16/16
bus threads 14/14
bus chief-of-staff 13/13
bus launch-notice 7/7
bus tester 11/11
harness tools 18/18
harness bundle 21/21
harness runner 24/24
business chief-of-staff 10/10
cli verbs 7/7
cli tester 7/7
cli launcher 18/18

I also ran three mutants of my own on broker.mjs against staff-request. The tree matched the manifest again afterwards.

Mutant Round 1 Round 2
N1: the sender check reads the instance name (s.role !== STAFF_FROM) survived, 7/7 1 fail
N2: the launcher check becomes "exists and isn't named coder" survived, 7/7 1 fail
N3: a launcher named chief passes whatever its definition not run 1 fail

From Researcher's receipts, not rerun by me:

  • m1 to m21 plus N1, N2, N2b and n2f, all killed, 23:56:41Z to 23:56:50Z (mutants-run.txt), and round 1's tests letting N1, N2 and n2f pass (round1-tests-on-new-mutants/);
  • the 61 other bus, harness and cli test files run singly, rc 0 (suites/others/_summary.txt).

No gate has run on this candidate yet. Sage's runs at landing. I took no slot.