Repository navigation
fix: generate CI with a Node patch that rejects compromised keys - #121
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 changes before merge. What this changesThis PR pins generated CI, supplied examples, and repository workflows to patched Node releases and updates the hydration pnpm version. Example: Run plugin-inspector init --ci --package-manager pnpm.
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Merge readiness⛔ Needs changes before merge - 1 item remains Keep this PR open: it makes a focused security update that is absent from main, and inspection found no introduced correctness defect. Priority: P1 Before merge
FindingsNone. Tests
Agent review detailsHow this fits togetherThe init CLI renders a GitHub Actions workflow for plugin authors; repository workflows and checked-in CI examples separately select runtimes for installation and inspection. flowchart LR
A[Plugin author] --> B[Init CLI]
B --> C[Workflow renderer]
C --> D[Generated workflow]
E[Supplied CI examples] --> F[Patched Node runtime]
D --> F
F --> G[Plugin inspection]
Technical reviewBest possible solution: Land the focused runtime-selection update after the required consumer smoke, keeping publication and existing consumer-runtime updates in their documented release paths. Do we have a high-confidence way to reproduce the issue? Source establishes the old runtime selections and the exact generated-output change; official Node changelogs confirm the selected patches contain the key-blocking fix, but no target code or TLS reproduction was run during this review. Is this the best way to solve the issue? Updating the existing renderer and corresponding examples is the smallest complete repository-level repair, while preserving package-manager preparation, supported engine ranges, and consumer overwrite protection. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against c9f7110819b2. Provenance checked
TestingProof path: in-process harness. SecurityNone. EvidenceWhat I checked:
Likely related people:
LabelsLabel changes:
Label justifications:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
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, 6:28 PM ET / 22:28 UTC. |
What Problem This Solves
Generated plugin CI, supplied CI examples, and this repository’s workflows can select Node runtimes that accept the compromised eMudhra keys.
User Impact
Newly generated workflows select Node24.22.1. Existing supported Node majors select their fixed patches; the hydration workflow also selects native pnpm12.15.0, whose independent TLS verifier rejects the affected keys. Existing generated workflows and installed consumer runtimes require their own updates.
Why This Change Was Made
Update the existing generator and all supplied examples together, including immutable GitLab and CircleCI images. Keep the public engine compatibility range and existing release gates.
Evidence
The real CLI initialization regression fails on the base and passes with this change.
npm run check, package contents, workflow actionlint, andgit diff --checkpass in the isolated Linux arm64 worker. Independent review is clean through P2. Official Node and native pnpm releases were independently qualified against all disclosed incident keys, including explicit old-CA modes and positive controls; the CircleCI image’s Node binary matches the qualified release. Native macOS/Windows and provider-owned runner/action runtimes remain separate coverage obligations. Package publication and Crabpot’s source-pin followthrough are separate release gates; this PR does not publish a new package.