Repository navigation
ci(release): releases stop depending on npm and nodejs.org when nothing changed - #26362
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This reduces repeated registry and Node.js downloads through input-keyed caches and faster stall retries. Node checksum verification remains in place, and reported cold/warm probes support the intended behavior without changing product defaults. You can add or adjust custom eligibility rules. Learn more. |
Walkthrough
Merge Risk:
|
There was a problem hiding this comment.
🔇 Additional comments: 1
.github/workflows/release-desktop.yml-295-295: 1
295-295:Major · Stability & Availability · Heavy lift
⚠️ Unverified finding
Verification ran but could not confirm this finding. It is shown for review, not as a verified issue.Make the cache available across release tags.
release.ymlsupports tag-triggered stable releases. GitHub scopes a cache saved by one tag to that tag, so a later tag cannot restore it. If the default branch has no matching cache, each tag downloads Node.js again and can fail during a nodejs.org stall. (raw.githubusercontent.com)Populate a shared trusted cache on the default branch, or use storage that is accessible across release tags.

Review info
-
Run configuration-
- Source mode: Auto
- Repository: pingdotgg/t3code
- Branch: t3/release-cache-lockfile-verification
- File: .coderabbit.config.ts
- Commit: 46da72a
- Layers: Repository TS config
- Review profile: CHILL
- Plan: Team
- Run ID:
a2a74123-ed60-4df3-bf32-62d61e5b75cb
Files selected for processing: 2-
.github/actions/setup-ci-deps/action.yml.github/workflows/release-desktop.yml
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 5 remain after this review.
-
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
|
Note 🤖 Claude Opus 5.5 responding on behalf of Theo Re CodeRabbit's unverified note on |
Releases kept failing or hanging this morning on two network calls the Blacksmith runners make on every run:
nodejs.org and npm are not down. Their status pages are green, and the same downloads are instant from outside Blacksmith. A probe from a Blacksmith runner (run 40654192811) showed some connections to Cloudflare
IADdropping to about 11 KB/s while others finished in 0.1s.Both inputs only change when the lockfile or
engines.nodechanges, so this caches them and stops making the calls.pnpm lockfile check (
setup-ci-deps)lockfile-verified.jsonl, keyed on the lockfile, workspace config, andpackage.json.pnpm_config_cache_dirdefaults to$RUNNER_TEMP/pnpm-metadatawhen the caller does not set it, so every job uses the same path.Windows target Node.js (
release-desktop.yml)SHASUMS256.txtare cached per Node version and architecture. The cache is saved right after the checksum passes, so a later failure keeps the download.curlnow treats under 100 KB/s for 30s as a failure and retries. Before, a stalled transfer could hang until the job's 70-minute timeout.Proof (throwaway probe workflows, since deleted):
vp run check:changedpasses.Note: the first release after merge still downloads win-arm64 once, with the stall retry. After that, releases do not contact nodejs.org.
Created with Claude Opus 5.5 in Claude Code.
🤖 Generated with Claude Code