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.
59 lines
4.0 KiB
Markdown
59 lines
4.0 KiB
Markdown
## 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.
|