Repository navigation
Conversation
The prune from #853 keeps the newest entry of every series on every live ref. On 2026-10-05 that alone came to 7.97 GB (130 entries), and the saves between two prunes took the repository past 10 GB, where GitHub evicts by last read, fixed keys included. The chipdb saved on fix/ci-chipdb-cache on 2026-10-04 was gone by the next morning, and the LED one-hot run on #852 rebuilt it (2 m 54 s). Two changes: - cache-prune.js: after the existing rules, while the kept entries are over BUDGET_BYTES (8e9), drop setup-zig's per-run entries on refs other than main, least recently read first. Nothing else is dropped for the budget: not a fixed key, not main, and not a chipdb whose key ends in a run id (one branch saves chipdb-...-regymm-<run id>). A chipdb hit saves about three minutes; a Zig cache hit tens of seconds at most. - actions-cache-prune.yml: also run on workflow_run after brain-ci and CI complete. The hourly schedule started 2 runs in 9 slots between 18:41Z and 03:46Z. brain-ci's jobs hold 8.59 GB and CI's 1.85 GB of 10.84 GB. Eight new tests (22 in all); 13 of 13 mutants of the budget rule are killed. On the 162-entry list of 2026-10-05 the plan drops 43 entries (3.06 GB), 10 of them (0.72 GB) for the budget, and keeps 119 (7.78 GB), including all 5 chipdb entries and all 9 entries on main. Refs #844 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
X Brain Health CheckScore: 100.0/100 X Brain is above merge threshold |
This was referenced Oct 5, 2026
gHashTag
force-pushed
the
ci/cache-budget
branch
from
October 5, 2026 04:03
5ea1f1c to
25150f1
Compare
🧪 Brain Stress Test ResultsScore: not measured (no stress test prints a Score: line) X Stress test passed |
dmitrii-f-t27
force-pushed
the
ci/cache-budget
branch
from
October 10, 2026 00:42
25150f1 to
6ab73d0
Compare
Summary by t27-beesThis PR adds an 8 GB budget to the cache pruner and triggers it after the two heaviest workflows (brain-ci and CI) complete. The budget drops only Worth a look
Read: 3 files, +143 -11, the whole diff. Head |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #844. Follows #853.
What happened
#853's prune keeps the newest entry of every series on every live ref. Measured on 2026-10-05:
testjobPast 10 GB GitHub evicts whatever was read least recently, fixed keys included. The chipdb saved on
fix/ci-chipdb-cacheon 2026-10-04 was gone by the morning, and the LED one-hot run on #852 (37260180318) rebuilt it:Cache not found, chipdb step 2 m 54 s, then saved again.Change
cache-prune.js). After the existing rules, while the kept entries are overBUDGET_BYTES(8e9), drop setup-zig's per-run entries on refs other thanmain, least recently read first (last_accessed_at, falling back tocreated_at). Nothing else is ever dropped for the budget: no fixed key, nothing onmain, and no chipdb, including one whose key ends in a run id (fix/trinet-node-core-readssaveschipdb-…-regymm-<run id>, which the run-id pattern alone would have treated as per-run).Why Zig entries and not the chipdb: a chipdb hit saves about 3 min (2 m 54 s above); a Zig cache hit saved 29.5 s on Health Check (17.5 s warm vs 47.0 s cold, ci(brain): check out before setup-zig so the Zig cache survives #890) and 1.7 s net on CI's Build & Test.
actions-cache-prune.yml). Also run onworkflow_runwhen brain-ci or CI completes, so the prune follows the two workflows that save the most rather than an hourly slot that fired 2 times in 9. The existing concurrency group (cancel-in-progress: false) keeps one run going and at most one pending.The rules are tested on this pull request by
actions-cache-prune-test.ymlfrom #853.Controls
node --test: 22 of 22 (8 new).runnot passing the budget,mainunprotected, fixed keys unprotected, any per-run key spendable, most-recent-first order,created_atinstead of the last read, dropped entries left inkeep, bytes not decremented,<instead of<=, and a 10 GB orInfinitydefault.pull/8845,pull/8863,fix/codegen-corpus-sample2). Keep 119 (7.78 GB), including all 5 chipdb entries and all 9 onmain.speed prepush(run-syntax and workflow-path gates): ok.cache-prune-test.yml. It duplicated ci(cache): prune Actions cache entries nothing can restore #853'sactions-cache-prune-test.yml, so I removed it with a force-push. The branch is one commit.Not measured
workflow_runonly fires for a workflow file on the default branch, so the new trigger cannot run before merge. The first evidence will be prune runs whose event isworkflow_run.fix/*branch with an open PR (push and pull_request): 45 of 146 commits between 2026-10-02 and 2026-10-05, about 0.5 GB of extra Zig entries each time. That is ci: each workflow once per PR commit, and no PR blind to a push path (S37) #875's DOUBLE_GLOB and remains the owner's call.🤖 Generated with Claude Code