Skip to content

Restore always-modules' default — #3225 orphaned it onto the new input and startup-failed every caller - #3226

Merged
meshweaver-cloud[bot] merged 1 commit into
mainfrom
fix/module-pack-duplicate-default
Sep 3, 2026
Merged

Restore always-modules' default — #3225 orphaned it onto the new input and startup-failed every caller#3226
meshweaver-cloud[bot] merged 1 commit into
mainfrom
fix/module-pack-duplicate-default

Conversation

@rbuergi

@rbuergi rbuergi commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

What broke

#3225 inserted the superseded-image-assemblies: input between always-modules:'s
required: false and its default: ''
. The orphaned default line attached itself to the new
input — which already declared its own — so the file carried a duplicate default key, and
always-modules silently lost its default.

GitHub refuses the entire workflow. MeshWeaver.Plugins#1268's run
33777768374 concluded
failure with zero jobs and zero contexts — a startup_failure, which renders as an ordinary
red and names nothing. Its previous head ran 29 jobs, which is how the change was isolated.

🚨 Why #3225's own verification could not catch it

I validated the lane with yaml.safe_load. PyYAML accepts duplicate mapping keys and silently
keeps the last
, so the parse succeeded, the input's spec read back correctly, and the "required
inputs unchanged" assertion passed. The check I ran could not fail on this defect — the exact
"a verification step that cannot fail is not a verification step" shape #3225 was itself written
about. Two hours of cataloguing that pattern did not stop me writing it.

actionlint finds it in one line:

.github/workflows/node-repo-module-pack.yml:289:9: key "default" is duplicated in input of
workflow_call event. previously defined at line:288,col:9 [syntax-check]

Swept every workflow in the repo with actionlint: no other duplicate-key finding.

The fix

Restore default: '' to always-modules and drop the duplicate from
superseded-image-assemblies. One line net. Both inputs verified after the change:

always-modules              -> {'type': 'string', 'required': False, 'default': ''}
superseded-image-assemblies -> {'type': 'string', 'required': False, 'default': ''}

actionlint clean on the file and repo-wide.

Follow-up worth having, not done here

check-workflow-timeouts.py and friends run in CI, but nothing runs actionlint. A lane defect that
GitHub only reports as a job-less red on a consuming repo is expensive to attribute — it took a
before/after job-count comparison across two repos to find this one. Adding actionlint to the
workflow-validation step would have caught it at the source, in the PR that introduced it. Filing
separately rather than widening this fix.

Pairs-with: none — restores the previous behaviour of an input; no public surface.
No What's New — internal CI fix.

…tup_failure

My #3225 inserted `superseded-image-assemblies:` between `always-modules:`'s
`required: false` and its `default: ''`. The orphaned line attached to the new
input, which already declared its own — so the file carried a duplicate `default`
key, and `always-modules` silently lost its default.

GitHub refuses the whole workflow: MeshWeaver.Plugins#1268's run 33777768374
concluded `failure` with ZERO jobs and ZERO contexts — a startup_failure, which
renders as an ordinary red and names nothing.

🚨 Why the change's own verification could not catch it: I validated with
`yaml.safe_load`, and PyYAML accepts duplicate mapping keys, silently keeping the
last. So the check I ran could not fail on this defect — the same "a verification
that cannot fail is not a verification" shape the change itself was about.
`actionlint` catches it in one line and is what proved this fix:

  node-repo-module-pack.yml:289:9: key "default" is duplicated in input of
  workflow_call event. previously defined at line:288,col:9 [syntax-check]

Swept every workflow in the repo with actionlint: no other duplicate-key finding.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G4xPnGYEbdu8AVvR5jytyj
Copilot AI lite review requested due to automatic review settings September 3, 2026 16:22
@meshweaver-cloud
meshweaver-cloud Bot enabled auto-merge September 3, 2026 16:23

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.

🟢 Approval recommended

The change corrects a confirmed YAML duplicate-key workflow-call input defect with a minimal, targeted fix and no remaining issues found in the edited block.

Pull request overview

Fixes a reusable workflow YAML syntax regression where always-modules lost its default: '' due to a duplicated default key introduced by inserting superseded-image-assemblies between required and default. This restores the prior input contract so consuming repos no longer hit a GitHub Actions workflow “startup_failure” (zero jobs/contexts).

Changes:

  • Restores always-modules input default: ''.
  • Removes the duplicated default: '' line so superseded-image-assemblies has exactly one default.
File summaries
File Description
.github/workflows/node-repo-module-pack.yml Fixes duplicated YAML key and restores always-modules default to prevent reusable workflow startup failures.
Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 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 Sep 3, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 0)

243 tests  ±0   243 ✅ ±0   2m 7s ⏱️ -4s
  1 suites ±0     0 💤 ±0 
  1 files   ±0     0 ❌ ±0 

Results for commit dd929e9. ± Comparison against base commit e332f32.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 3)

346 tests  ±0   344 ✅ ±0   36s ⏱️ +2s
  3 suites ±0     2 💤 ±0 
  3 files   ±0     0 ❌ ±0 

Results for commit dd929e9. ± Comparison against base commit e332f32.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 1)

459 tests  ±0   459 ✅ ±0   56s ⏱️ -12s
  1 suites ±0     0 💤 ±0 
  1 files   ±0     0 ❌ ±0 

Results for commit dd929e9. ± Comparison against base commit e332f32.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 5)

    4 files  ±0      4 suites  ±0   1m 48s ⏱️ +10s
1 404 tests ±0  1 404 ✅ ±0  0 💤 ±0  0 ❌ ±0 
1 405 runs  ±0  1 405 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit dd929e9. ± Comparison against base commit e332f32.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 2)

578 tests  ±0   386 ✅ ±0   2m 38s ⏱️ -1s
  3 suites ±0   192 💤 ±0 
  3 files   ±0     0 ❌ ±0 

Results for commit dd929e9. ± Comparison against base commit e332f32.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 4)

2 201 tests  ±0   2 201 ✅ ±0   2m 22s ⏱️ -11s
    3 suites ±0       0 💤 ±0 
    3 files   ±0       0 ❌ ±0 

Results for commit dd929e9. ± Comparison against base commit e332f32.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Test Results

   15 files  ±0     15 suites  ±0   10m 28s ⏱️ -16s
5 231 tests ±0  5 037 ✅ ±0  194 💤 ±0  0 ❌ ±0 
5 232 runs  ±0  5 038 ✅ ±0  194 💤 ±0  0 ❌ ±0 

Results for commit dd929e9. ± Comparison against base commit e332f32.

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