Skip to content

node-repo-pack-verify: set aside a sibling module-pack call's receipts (--declared) - #2706

Merged
rbuergi merged 2 commits into
mainfrom
ci/pack-verify-declared
Aug 29, 2026
Merged

rbuergi merged 2 commits into
mainfrom
ci/pack-verify-declared

Conversation

@rbuergi

@rbuergi rbuergi commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Why

Plugins #932 calls `node-repo-module-pack.yml` twice in one run — the floor the gates compose (AI + Markdown.Collaboration) and the other 29. Artifacts are run-wide: both calls upload `module-pack-receipt-`, so each call's `All selected bundles built` downloaded the OTHER call's receipts (`module-pack-receipt-*`) and read them as built but never selected. Both lane contexts went red on Plugins run 33275630504 and the two required gates behind them followed (`Every need this gate builds on must have succeeded`).

What

  • `node-repo-pack-verify.py --declared`: the caller's own `modules:` input (JSON entries, names, or empty). A receipt for a module this call did not declare belongs to a sibling call — set aside and NAMED in the notes, never counted. Inside the declared set the accounting is unchanged (a declared module built without being selected is still red), and a selected module the caller never declared is refused (selector ≠ matrix).
  • `node-repo-module-pack.yml`: the verify step passes `--declared "$DECLARED"` (already in its env).
  • Empty `--declared` keeps the old behaviour — callers on older refs are unaffected.

Self-test

`python3 .github/scripts/node-repo-pack-verify.py --self-test` — the sibling receipt passes and is named; declared-but-unselected still fails; undeclared selection fails; the three `--declared` shapes parse. All 18 cases green.

🤖 Generated with Claude Code

… set aside a sibling call's

Plugins #932 calls node-repo-module-pack.yml twice in one run (the floor the gates compose, and
the rest). Both calls' receipts upload as module-pack-receipt-<module> into the run-wide artifact
namespace, so each verifier's download-artifact pattern module-pack-receipt-* collected the OTHER
call's receipts too and read them as 'built but never selected' — both 'All selected bundles
built' contexts went red on run 33275630504, and the two required gates behind them followed.

The verifier now takes --declared, the caller's own modules: input. A receipt for a module this
call never declared belongs to a sibling call: it is set aside and NAMED in the notes, never
counted. Inside the declared set the accounting is exactly as strict as before, and a SELECTED
module the caller never declared is refused outright (the selector and the matrix disagreeing).
Empty --declared keeps the old behaviour, so callers on older refs are unaffected.

Self-test: the sibling receipt must pass and be named; a declared-but-unselected build must
still fail; an undeclared selection must fail; the three --declared shapes parse.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 29, 2026 22:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR hardens the node-repo-module-pack reusable workflow’s receipt verification to handle the case where the workflow is invoked twice in the same run (artifacts are run-wide), by letting the verifier ignore receipts that belong to a sibling invocation via a new --declared input.

Changes:

  • Add --declared support to node-repo-pack-verify.py so verification only counts receipts from the caller’s declared module matrix and names sibling-call receipts in notes.
  • Pass the caller’s declared inputs.modules through to the verifier in node-repo-module-pack.yml.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
.github/workflows/node-repo-module-pack.yml Passes --declared "$DECLARED" to scope receipt verification to this workflow call’s matrix.
.github/scripts/node-repo-pack-verify.py Implements --declared parsing and sibling-receipt filtering during verification, plus corresponding self-tests.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@github-actions

github-actions Bot commented Aug 29, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 3)

689 tests   497 ✅  4m 56s ⏱️
  5 suites  192 💤
  5 files      0 ❌

Results for commit 14f0cea.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Aug 29, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 5)

1 528 tests   1 528 ✅  6m 21s ⏱️
    8 suites      0 💤
    8 files        0 ❌

Results for commit 14f0cea.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Aug 29, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 2)

941 tests   941 ✅  5m 13s ⏱️
  6 suites    0 💤
  6 files      0 ❌

Results for commit 14f0cea.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Aug 29, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 0)

913 tests   913 ✅  5m 18s ⏱️
  6 suites    0 💤
  6 files      0 ❌

Results for commit 14f0cea.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Aug 29, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 4)

   10 files     10 suites   5m 55s ⏱️
3 453 tests 3 453 ✅ 0 💤 0 ❌
4 087 runs  4 087 ✅ 0 💤 0 ❌

Results for commit 14f0cea.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Aug 29, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 1)

788 tests   784 ✅  7m 20s ⏱️
  6 suites    4 💤
  6 files      0 ❌

Results for commit 14f0cea.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Aug 29, 2026 •

Copy link
Copy Markdown
Contributor

Test Results

   41 files     41 suites   35m 5s ⏱️
8 312 tests 8 116 ✅ 196 💤 0 ❌
8 946 runs  8 750 ✅ 196 💤 0 ❌

Results for commit 14f0cea.

♻️ This comment has been updated with latest results.

Copilot: --declared filtered well-formed receipts by module but left `broken` unfiltered, so a
malformed receipt uploaded by a sibling module-pack call would still red this verifier — the same
cross-call interference through a different list. Broken entries are keyed by their file stem
(the module the receipt is for); one outside the declared matrix is the sibling's finding and is
set aside with the others. A corrupt receipt of a DECLARED module still fails.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@rbuergi
rbuergi merged commit 6a260ed into main Aug 29, 2026
24 checks passed
@rbuergi
rbuergi deleted the ci/pack-verify-declared branch October 10, 2026 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants