Repository navigation
fix(ci): pin Node releases with incident key rejection - #247
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. What this changesThis PR pins CI, hydration, and release jobs to Node 22.23.4, 24.22.1, and 26.12.1. Example: A runner has Node 24.22.0 cached when a release job starts.
Review scores
ProductKind: Maintenance · Worth it: Yes · Fix scope: Complete Merge readiness✅ Ready for maintainer review Keep this PR open: main still uses broad Node selectors, and the focused security update preserves runtime coverage without an identified patch defect. Priority: P1 Before mergeNone. FindingsNone. Agent review detailsHow this fits togetherGitHub Actions selects Node before dependency installation, validation, workspace hydration, and package publishing. flowchart TD
A[Workflow trigger] --> B[Exact Node selector]
B --> C[setup node cache or download]
C --> D[Patched Node runtime]
D --> E[Install and validate]
E --> F[Hydrate or publish]
Technical reviewBest possible solution: Land the focused runtime pins while retaining the existing supported release lines and workflow permissions. Do we have a high-confidence way to reproduce the issue? Main’s major-version selectors and the pinned setup-node implementation establish the older-cache selection path; no target code was executed during this review. Is this the best way to solve the issue? Exact patch selectors are the smallest complete change for the stated managed-job boundary and preserve the existing runtime matrix. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 8cf3053c5e14. Provenance checked
TestingProof path: unit tests only. SecurityNone. EvidenceWhat I checked:
Likely related people:
LabelsLabel changes:
Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment Reviewed October 21, 2026, 5:43 PM ET / 21:43 UTC. |
What Problem This Solves
Managed CI, hydration and release jobs can select cached Node versions that trust the compromised eMudhra keys.
User Impact
Pin Node 22.23.4, 24.22.1 and 26.12.1 within the existing release lines. Installed products and the Actions runner require separate updates.
Why This Change Was Made
Exact fixed patches prevent old cache entries from satisfying setup-node, including its fallback after manifest-resolution failure.
Evidence
On Linux arm64: typecheck, lint, build and tests passed (976 passed, two skipped). Independent review and
git diff --checkpassed. Official Linux arm64 release binaries rejected all 12 incident chains in eight trust modes, with ordinary HTTPS controls passing. Other platform executions remain hosted CI proof.