Repository navigation
fix(ci): use Node and pnpm releases that reject compromised CA keys - #113
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 real behavior proof before merge. What this changesThis PR updates Node to 26.12.1 and pnpm to 12.15.0 and regenerates pnpm’s toolchain lock entries. Example: A developer installs the repository’s pinned package manager.
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Merge readiness⛔ Blocked before merge - 3 items remain Keep open: main retains the older toolchain pins, and this focused security update has no definite introduced code defect. Priority: P1 Before merge
Findings
Tests
Agent review detailsHow this fits togetherThe Node pin selects the runtime for documentation builds, while the package-manager pin and lockfile select the native pnpm executable used by developer commands and package downloads. flowchart TD
A[Repository toolchain pins] --> B[Node docs runtime]
A --> C[Native pnpm executable]
B --> D[Documentation build]
C --> E[TLS verification]
E --> F[Registry metadata and package downloads]
Technical reviewBest possible solution: Land the existing centralized pin update once the selected native artifacts’ security behavior is established. Do we have a high-confidence way to reproduce the issue? No runtime reproduction was performed; the old pins are verified in main, Node’s official release documents the security fix, and pnpm’s reported incident results lack inspectable output. Is this the best way to solve the issue? Updating the existing pins and regenerating only their lock entries is the smallest complete repository change, provided the chosen native pnpm artifacts actually enforce the intended rejection. AGENTS.md: not found in the target repository. Codex review notes: model internal, reasoning medium; reviewed against f92275521956. Merge-risk optionsMaintainer options:
Provenance checked
TestingProof path: none. SecurityNeeds attention: No introduced exploit is established, but the native TLS authority boundary needs final-effect verification. EvidenceSecurity concerns:
What I checked:
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:54 PM ET / 22:54 UTC. |
Problem and change
The selected pnpm12 release has an independent native TLS verifier that can accept the compromised eMudhra keys. Use native pnpm12.15.0 for package downloads through its independently fixed Rust TLS verifier. This combined candidate also retains the prepared fixed Node patch selections within the existing supported majors. Update the existing package-manager owner and regenerate its toolchain lock with the released package; the workspace dependency documents remain byte-identical.
Validation and remaining scope
The frozen install passes. The macOS Swift build, signing, and reminder integration gates cannot run on the Linux arm64 worker and remain required. The qualified native pnpm frozen install passes. Independent review is clean through P2;
git diff --checkpasses. Official Linux arm64 pnpm12.15.0 rejects all36 incident trust cases, including explicit old CA inputs, and passes ordinary npm and private-CA controls. Platform-specific and hosted gates remain required.Native macOS proof and provider-owned action/runner runtimes remain separate obligations.