Repository navigation
ci: stacked PRs stop evicting the shared pnpm cache - #31937
Conversation
A PR based on a branch other than the default saved a ~1 GB pnpm store that only its own reruns can read, which evicted shared entries. These PRs still restore and install; pushes, releases, and default-base PRs save as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Stacked PRs stop uploading pnpm stores while retaining cache restoration and dependency installation. The change is confined to disposable CI caching; default-base PRs and non-PR workflows retain their existing behavior. You can add or adjust custom eligibility rules. Learn more. |
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. |
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
**v0.1.8-nightly.20261106.4275** · 12 changes from 6 contributors **8 bug fixes and performance improvements.** <details> <summary>Full changelog</summary> ## What's Changed * fix(desktop): arm64 macOS builds no longer ship x64-only objc-js binary by @joshuarossi in pingdotgg/t3code#31285 * fix(web): keep task updates static in the timeline by @Yash-Singh1 in pingdotgg/t3code#31888 * fix(devices): keep devices listed when simulator discovery fails by @shivamhwp in pingdotgg/t3code#25971 * fix(web): dragging a sidebar thread no longer scrolls the list to the bottom by @juliusmarminge in pingdotgg/t3code#27691 * fix(web): tagging a thread by drag no longer scrolls the sidebar by @t3dotgg in pingdotgg/t3code#31924 * ci: stacked PRs stop evicting the shared pnpm cache by @t3dotgg in pingdotgg/t3code#31937 * fix(web): remote subagents no longer split from the lineage list by @t3dotgg in pingdotgg/t3code#29285 * perf(ci): release uploads stop recompressing installers and CLI archives by @t3dotgg in pingdotgg/t3code#31942 * feat(antigravity): identify as T3 Code to agy acp 1.5.1+ by @patrick-toulme in pingdotgg/t3code#31158 * ci(release): JS bundle jobs stop building an unused Linux helper by @t3dotgg in pingdotgg/t3code#31941 * feat(marketing): help search engines tell t3.codes apart from copycat sites by @t3dotgg in pingdotgg/t3code#31142 * perf(server): background service launcher uses 75% less memory by @t3dotgg in pingdotgg/t3code#29284 ## New Contributors * @joshuarossi made their first contribution in pingdotgg/t3code#31285 * @patrick-toulme made their first contribution in pingdotgg/t3code#31158 **Full Changelog**: pingdotgg/t3code@v0.1.8-nightly.20261106.4262...v0.1.8-nightly.20261106.4275 </details> Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.8-nightly.20261106.4275
Stacked PRs were evicting the shared CI cache. A PR whose base is not
mainsaves a ~1 GB pnpm store that only its own reruns can read.Measured from Blacksmith logs and cache inventory:
mainpushes.Fix:
Save pnpm storenow runs only when the event is notpull_request, or the PR base is the repo's default branch. Stacked PRs still restore and install as before. Pushes, scheduled, dispatched and called releases, and default-base PRs save as before. The filtered/full-store rule and the lockfile verification cache do not change.Verification: I evaluated the real
if:expressions with@actions/expressionsfor 15 cases (stacked and default-base PRs, push, schedule, dispatch, hits, misses, filtered installs, and tooling-only installs), 75/75 checks passed. Againstorigin/mainthe only differences are the 3 stacked-PR store saves.vp run check:changedpasses.The savings are modeled, not measured yet: if the 126 stacked-PR saves had not happened, ~126 GB less would have been uploaded in that window, and the ~17.7 GiB would have stayed free for shared entries.
Council review
Rounds: 1
🤖 Generated with Claude Code using Claude Opus 5.5.