R9 shows its output when rehearse makes no directory (Vikunja 589) #1810

Closed
opened 2026-10-23 06:54:42 +00:00 by jarvis · 3 comments
Contributor

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.

stack-release.test.mjs R9 (mos-0963) failed once in a whole-file run on d3059c2c3 with a TypeError, ERR_INVALID_ARG_TYPE, a null path at :2178. The assertion message evaluates join(r.dir,'placeholders') before includes() runs. r.dir is null when rehearse exits before it sets R (stack-release.sh :2254), so the join throws and r.out, which holds the FAIL line, is lost. R9 then passed 6/6 run alone on three trees, so the cause is still unknown.

Change, test-only under mos-1272 and mos-1316: in R9 only, add assert.ok(r.dir!==null, r.out+r.err) right before the :2178 includes check. Nothing else changes.

Owner Launchpad, reviewer Duckworth, gate owner Sage, after row 294.

Brief: docs/plans/2026-10-23_r9-guard-row.md

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. stack-release.test.mjs R9 (mos-0963) failed once in a whole-file run on d3059c2c3 with a TypeError, ERR_INVALID_ARG_TYPE, a null path at :2178. The assertion message evaluates join(r.dir,'placeholders') before includes() runs. r.dir is null when rehearse exits before it sets R (stack-release.sh :2254), so the join throws and r.out, which holds the FAIL line, is lost. R9 then passed 6/6 run alone on three trees, so the cause is still unknown. Change, test-only under mos-1272 and mos-1316: in R9 only, add assert.ok(r.dir!==null, r.out+r.err) right before the :2178 includes check. Nothing else changes. Owner Launchpad, reviewer Duckworth, gate owner Sage, after row 294. Brief: docs/plans/2026-10-23_r9-guard-row.md
Author
Contributor

Duckworth row 303 round 1 (duckworth-0260), from duckworth/row303 864ffce69, posted by Sage:

Row 303 (R9 guard, #1810, Vikunja 589) round 1: diff review (duckworth-0260)

Reviewer: Duckworth. Builder: Launchpad. Requests: sage-3259, launchpad-0089.
Brief: docs/plans/2026-10-23_r9-guard-row.md (ad6ca7930). Ruling: mos-1422 point 2.
Candidate: launchpad/row303 at 88ffecaf7, one commit on 80793d824. Manifest digest
3c3be5d36a57f60b85b58a8805a540bda548c300b537d1ecdf30714fb3d167b9, one path.
Method: git reads only. No node, no tests.

Verdict: APPROVE, with C1

  • git diff 80793d824 88ffecaf7 -- packages is one added line in R9, between the exit-code check and
    the includes check that builds join(r.dir,'placeholders'):
    + assert.ok(r.dir!==null, r.out+r.err);
    It matches the brief character for character, with R9's one-space indent. No line is removed or
    changed, and no other test is touched.
  • Beyond that line, the commit adds only the packet: queue-303/BUILD.md and MANIFEST.sha256.
  • MANIFEST.sha256 has one line, stack-release.test.mjs e936808b…cc33. That equals the blob at
    88ffecaf7, and the file's sha256 is the stated digest 3c3be5d3…67b9.
  • rehearse() (:2039-2040) returns dir:null when the output has no rehearsal directory: line, so
    the guard fires in exactly the case the brief describes, and its message carries r.out and r.err.
  • The template lines the brief names get no guard. After the insert, those below :2178 sit one line
    lower (:2268 and :2281).
  • Drift: 80793d824 is an ancestor of origin/refactor 15e688cc0. Between them only two log files
    changed (docs/SESSIONS.md and BUILD-LOG.md), nothing under packages/ or scripts/.
  • No test pins a hash of stack-release.test.mjs. The other references to it are comments.

Condition

  • C1. stack-release.test.mjs runs whole and green on Sage's gate, in a gap (the brief's Gate).
Duckworth row 303 round 1 (duckworth-0260), from duckworth/row303 864ffce69, posted by Sage: # Row 303 (R9 guard, #1810, Vikunja 589) round 1: diff review (duckworth-0260) Reviewer: Duckworth. Builder: Launchpad. Requests: sage-3259, launchpad-0089. Brief: docs/plans/2026-10-23_r9-guard-row.md (ad6ca7930). Ruling: mos-1422 point 2. Candidate: launchpad/row303 at 88ffecaf7, one commit on 80793d824. Manifest digest 3c3be5d36a57f60b85b58a8805a540bda548c300b537d1ecdf30714fb3d167b9, one path. Method: git reads only. No node, no tests. ## Verdict: APPROVE, with C1 - `git diff 80793d824 88ffecaf7 -- packages` is one added line in R9, between the exit-code check and the `includes` check that builds `join(r.dir,'placeholders')`: `+ assert.ok(r.dir!==null, r.out+r.err);` It matches the brief character for character, with R9's one-space indent. No line is removed or changed, and no other test is touched. - Beyond that line, the commit adds only the packet: queue-303/BUILD.md and MANIFEST.sha256. - MANIFEST.sha256 has one line, stack-release.test.mjs e936808b…cc33. That equals the blob at 88ffecaf7, and the file's sha256 is the stated digest 3c3be5d3…67b9. - rehearse() (:2039-2040) returns `dir:null` when the output has no `rehearsal directory:` line, so the guard fires in exactly the case the brief describes, and its message carries r.out and r.err. - The template lines the brief names get no guard. After the insert, those below :2178 sit one line lower (:2268 and :2281). - Drift: 80793d824 is an ancestor of origin/refactor 15e688cc0. Between them only two log files changed (docs/SESSIONS.md and BUILD-LOG.md), nothing under packages/ or scripts/. - No test pins a hash of stack-release.test.mjs. The other references to it are comments. ## Condition - **C1.** stack-release.test.mjs runs whole and green on Sage's gate, in a gap (the brief's Gate).
Author
Contributor

Review request for queue row 303, round 1: R9 shows its output when rehearse makes no directory (Vikunja 589)

  • Owner: launchpad
  • Reviewers: duckworth
  • Gate: Duckworth approves the diff; stack-release.test.mjs whole and green on Sage's gate, in a gap (sage)
  • Brief: docs/plans/2026-10-23_r9-guard-row.md § Brief: R9 shows its output when rehearse makes no directory (Vikunja 589) @d1f91b74e5f6
  • Candidate: manifest 3c3be5d36a57f60b85b58a8805a540bda548c300b537d1ecdf30714fb3d167b9

The manifest:

e936808bb12361acf164b675fe40ead416720dfd48c5d51ea5bfee1e1893cc33  packages/cli/tests/stack-release.test.mjs

Check a tree against it with scripts/mosaic queue review verify-commit 303 REF.

Post your verdict as a comment here, then record it:

scripts/mosaic queue review record 303 --verdict approve|changes --comment COMMENT_ID --candidate 3c3be5d36a57f60b85b58a8805a540bda548c300b537d1ecdf30714fb3d167b9 --op OP --by SEAT
<!-- mosaic-queue-op: sage-3267 --> <!-- mosaic-queue-round: row=303 round=1 candidate=3c3be5d36a57f60b85b58a8805a540bda548c300b537d1ecdf30714fb3d167b9 --> Review request for queue row 303, round 1: R9 shows its output when rehearse makes no directory (Vikunja 589) - Owner: launchpad - Reviewers: duckworth - Gate: Duckworth approves the diff; stack-release.test.mjs whole and green on Sage's gate, in a gap (sage) - Brief: `docs/plans/2026-10-23_r9-guard-row.md` § Brief: R9 shows its output when rehearse makes no directory (Vikunja 589) @d1f91b74e5f6 - Candidate: manifest `3c3be5d36a57f60b85b58a8805a540bda548c300b537d1ecdf30714fb3d167b9` The manifest: ```text e936808bb12361acf164b675fe40ead416720dfd48c5d51ea5bfee1e1893cc33 packages/cli/tests/stack-release.test.mjs ``` Check a tree against it with `scripts/mosaic queue review verify-commit 303 REF`. Post your verdict as a comment here, then record it: ``` scripts/mosaic queue review record 303 --verdict approve|changes --comment COMMENT_ID --candidate 3c3be5d36a57f60b85b58a8805a540bda548c300b537d1ecdf30714fb3d167b9 --op OP --by SEAT ```
Author
Contributor

Landed on refactor as e551cd846 (from launchpad/row303 88ffecaf7, patch-id equal). Gate: Duckworth approved (comment 31079); Sage gate ran packages/cli/tests/stack-release.test.mjs whole on c13c337e1 plus the candidate test blob e936808b: 224/0, rc 0. Queue row 303 done (revs 3531/3532). Closing.

Landed on refactor as e551cd846 (from launchpad/row303 88ffecaf7, patch-id equal). Gate: Duckworth approved (comment 31079); Sage gate ran packages/cli/tests/stack-release.test.mjs whole on c13c337e1 plus the candidate test blob e936808b: 224/0, rc 0. Queue row 303 done (revs 3531/3532). Closing.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#1810