Skip to content

ci(sync): pin only the cli and mcp browser closures in Cachix - #3

Merged
khwstolle merged 2 commits into
mainfrom
ccr-de9b2745-ebotvg
Oct 10, 2026
Merged

khwstolle merged 2 commits into
mainfrom
ccr-de9b2745-ebotvg

Conversation

@khwstolle

Copy link
Copy Markdown
Member

Problem

In Sync run 38060368920, cache-arm failed when pinning playwright-dotnet-browsers-aarch64-linux:

402 Payment Required
{"error":"Pin storage limit exceeded. Upgrade your plan or remove existing pins."}

Cachix also reports 80% storage use. The cache pins 15 closures (5 tools × 3 systems). They resolve to 10 distinct browser sets of about 0.45 GiB each, 4.06 GiB of pinned cache paths in total:

System Distinct sets Shared by
x86_64-linux 3 cli + mcp; dotnet + python; node
aarch64-darwin 3 cli + mcp; dotnet + python; node
aarch64-linux 4 cli and mcp diverged after the partial cache-arm run

Each new Playwright release adds about 0.45 GiB per system and per distinct set until the old pin revision is replaced.

Change

  • sync.yml: all three push-browsers calls pin only cli mcp. These two tools normally share one browser set per system, so the cache holds about 1.3 GiB, and about 2.7 GiB while a release replaces the old set.
  • README.md, docs/maintenance.md: document which closures the cache holds and why.

node, dotnet and python still build without runtime downloads (rule 1 in AGENTS.md): their browsers come from cdn.playwright.dev through fetchzip at build time. The first build of these packages is slower for users.

Manual step after merge

Remove the old pins in the Cachix dashboard, because CI no longer updates them and they keep their storage:

  • playwright-{node,dotnet,python}-browsers-{x86_64-linux,aarch64-linux,aarch64-darwin} (9 pins)

Validation

  • Sizes were read from the FileSize fields of the narinfo files of each pinned closure on playwright.cachix.org.
  • prettier --check passes on the changed files.
  • push-browsers.ts already accepts a tool list. Only the arguments change.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Kkw5FTWMTfd2shZr7sDG5V


Generated by Claude Code

The cache pinned 15 closures (5 tools x 3 systems), 10 distinct browser
sets of about 0.45 GiB each, 4.06 GiB in total. The cache-arm job of the
last sync failed with "Pin storage limit exceeded" (HTTP 402), and Cachix
reports 80% storage use.

CI now pins only cli and mcp, which normally share one browser set per
system (about 1.3 GiB). node, dotnet and python still build without
runtime downloads; their browsers come from cdn.playwright.dev at build
time.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Kkw5FTWMTfd2shZr7sDG5V
Copilot AI balanced review requested due to automatic review settings October 10, 2026 19:47

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The maintenance documentation incorrectly attributes storage growth to each tool rather than each distinct browser set.

1 open finding
What changed in this PR

Limits Cachix pinning to CLI and MCP browser closures to reduce storage usage.

Changes:

  • Updates all sync jobs to pin only CLI and MCP closures.
  • Documents the revised caching policy and build-time browser fetching.
File Description
.github/​workflows/​sync.yml Restricts browser pinning to CLI and MCP.
README.md Summarizes the cache scope.
docs/​maintenance.md Explains CI caching and storage usage.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/maintenance.md Outdated
Copilot AI balanced review requested due to automatic review settings October 10, 2026 20:09
@khwstolle
khwstolle merged commit 29f0add into main Oct 10, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The workflow arguments and documentation consistently implement the stated cache-reduction strategy.

0 open findings

1 resolved since last review

🧠 Review effort: Balanced

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants