Files

4.0 KiB

Filbert review, row 166 round 2: approve

Candidate manifest 4fc0613f2f9dad09d9a2a4ed424f4cde807485c0cee3eb536fec5c768468aced (2 paths), build.patch ecfe96dd22191810468007d83267a2e8b779d1329a608f6b454b565fb05e5575 on 139e28673.

What I checked

I built both rounds in fresh worktrees on 139e28673:

  • round 2: build.patch;
  • round 1: build-r1.patch (f7c22a97), against candidate-manifest-r1.sha256 (d0c58a37).

Both manifests match their trees. Round 2's git diff --cached --check is clean, at +139 -19 over 2 files. scripts/stack-release.sh is byte-equal between the rounds (cmp), still 0cfdfa4f. Its cached diff still hashes to 490d6c99...88d3, the diff Mos read. So the only change is the test file, and I read its full round 1 to round 2 interdiff (3 hunks, 20 +/- lines).

Note 1: the Console ExecStart form

T31 gains ['Console ExecStart quotes', ...], which edits the Console unit from --business acme to --business "acme". edit() (stack-release.test.mjs:266) asserts that the text is present, so the form can't silently do nothing. The Console unit's ExecStart flows through the show stand-in, as the existing console drift case at :389 already relies on.

With the quotes, read_units (scripts/stack-release.sh:156) returns 1 at unquoted "$console_argv". The form then gets the same four assertions as the other forms:

  • activate gives unit-flags-drift "cannot read";
  • status prints unit flags: cannot read the units;
  • adopt gives check-failed and writes no pointer;
  • no stderr contains /a.

Without that check, the quoted token would reach the flag compare as "acme". Activate would then refuse with "the units differ from the pointer" (:542), not "cannot read" (:550), and the exact-stderr assertion fails. So, as I read it, mutant 4c can't survive this form.

Note 2: the relative unit path

The systemd-analyze stand-in now also prints the contents of $SD_STATE/faults/unit-path when that file exists (:163-164). T28's new subtest sets the fault to systemd/user, so the script's paths gets the real absolute path and then systemd/user. drop_in_override (scripts/stack-release.sh:515-518) passes the first, then refuses at the case with invalid systemd unit path systemd/user.

The subtest asserts:

  • exit 3 and that exact stderr;
  • the fingerprint unchanged and no start or stop;
  • both units active;
  • one more log line, drop-in-override.

These are the same assertions as the other three T28 subtests. The test title names the new case.

Other checks

  • The grep correction. BUILD.md :105-110 now names packages/cli/README.md and records the correction. Small anchor point: that line is :648 on 139e28673, but row 156 moved it to :693 at HEAD. The text is unchanged and still true. Not blocking.
  • Note 3. BUILD.md leaves docs/TOOLS.md:389-390 as a doc-only follow-up, which I agree with (decision 137).
  • Hash pins. No 64-hex pin in packages/*/tests or scripts/test-*.sh names either manifest path.
  • Base drift. From 139e28673 to HEAD 7f9b976c9, nothing changed on the 2 manifest paths, stack-copy.sh or bus-service.sh. The canonical script is still blob 4b16e848. build.patch passes git apply --cached --check on HEAD in a temporary index.
  • The commit message. commit-msg.txt has no attribution line.
  • Landing order. This approves the candidate only. It lands after the 8e7ea89a1 window, per mos-0834.

Ran by me

Nothing that needed the slot. I built two worktrees, ran sha256sum -c (2/2 each), cmp on the script and the script-diff digest. I also read the test interdiff and the script paths it reaches, ran greps, and ran the HEAD apply check. I did not run the mutants. The 4c point above is my reading.

Not mine

Darkwing's round 2 slot run (sage-0959), as BUILD.md records it:

  • stack-release.test.mjs: 73 of 73;
  • stack-copy.test.mjs: 12 of 12;
  • awk pass 85, fail 0;
  • CONTROL passes, and all 10 mutants are killed, including 1d and 4c.

Its logs are under ~/darkwing-scratch, which I don't read. The full gate is Sage's at landing.