docs: brief for the R9 guard row (Vikunja 589, #1810, mos-1422); docs only

This commit is contained in:
jason.woltje committed 2026-10-23 02:07:02 -05:00
1 parent d3059c2c3d
commit ad6ca79304
1 file changed
+33
+33
View File
@@ -0,0 +1,33 @@
# R9's lost output: a null rehearsal directory hides the failing check
Found by Sage's merged-tree check for row 294's landing (#1800) at 06:50Z on 10-23. Vikunja 589.
Mos ruled on it in mos-1422.
## Brief: R9 shows its output when rehearse makes no directory (Vikunja 589)
Issue #1810.
Owner Launchpad. Reviewer Duckworth. Gate owner Sage. After row 294 is done.
`packages/cli/tests/stack-release.test.mjs` R9 (mos-0963, about :2169) failed once in a whole-file
run on d3059c2c3. The error was a TypeError, ERR_INVALID_ARG_TYPE: a null path at :2178. The
assertion message there evaluates `join(r.dir,'placeholders')` before `includes()` runs. `r.dir` is
null when `scripts/stack-release.sh rehearse` exits before it sets R (:2254), because `r_end` prints
the `rehearsal directory:` line only when R is set (:2039). The join throws, so `r.out`, which
holds the FAIL line that stopped the rehearsal, never reaches the report. R9 then passed 6/6 run
alone on three trees, and the whole-file rerun under mos-1422 decided the landing. So the cause is
still unknown, and the next hit has to show it.
Change, a test-only change to a pre-existing test, approved under mos-1272 and mos-1316 (mos-1422
point 2): in R9 only, add
assert.ok(r.dir!==null, r.out+r.err);
right before the `:2178` `includes` check. Nothing else in R9 or in any other test changes. Lines
2058, 2113, 2126, 2267 and 2280 put `r.dir` straight into a template, so a null prints as `null`
and their message still carries `r.out`. They don't get the guard.
Any other change to an existing assertion goes to Mos through Sage first.
Gate: Duckworth approves the diff. `packages/cli/tests/stack-release.test.mjs` runs whole and green
on Sage's gate, in a gap.