Repository navigation
Description
Filing gate: ② ruling-directed sibling card — batch #5 item 1, letter C (#25373 comment 6366946328, maintainer 「同意」 2026-10-23T14:13:20Z). Reader: the domain:devx execution seat, dispatch step. Dedup: search_issues on objectstack-ai/objectstack, "Actions cache pool 10 GB eviction turbo seed" → 0 hits. Session: cse_01LKHDniRQSWjRJyDtacwpEd.
One-sentence problem
Every push to main writes about 12.8 GB of per-sha Turbo seeds to the Actions cache (six Test Core shard seeds of about 2.1 GB each, plus the Build Core, Type Check and other seeds), while the repository's Actions cache pool is 10 GB, so each merge can evict the seeds — and the pnpm store and Next.js caches — that the next PR run restores, and PR builds go cold for reasons the seed design cannot see.
Evidence (file lines at objectstack commit 2b7c331)
- Per-sha seed keys, saved on every push event, including cancelled runs (
if: always() && github.event_name == 'push'):ci.yml:1397-1402(Test Core, per shard),ci.yml:2242-2247,ci.yml:2749-2754(Build Core),lint.yml:5928-5930(typecheck). Keys end in${{ github.ref_name }}-${{ github.sha }}(ci.yml:606,:1786,:2087,:2320,:2529,:2974;lint.yml:5140,:5753), so no two merges share a key and nothing is overwritten — every merge adds a full set. - Cancelled push run 39923516471 saved all six Test Core shard seeds at about 2.1 GB each (the ci: the push-to-main CI run is cancelled by the next merge 9 times in 13, so the Turbo cache seed that only that run saves goes stale and every PR shard and lint lane rebuilds cold (Build Core 51 s → 4m30s, shard closures Σ 20–31 runner-min per run) #25373 card thread's falsification, comment 6364570166).
- Plain
actions/cache@v6steps (restore and post-save on every event, PRs included) sit in 12 workflow files;ci.yml:2785-2798saves the pnpm store andapps/docs/.next/cacheon PR runs too. PR-scoped entries count toward the same pool. - The Turbo remote cache is ON: on PR ci: assert the Turbo remote cache is on after Build Core, the Test Core closure and the three Type Check builds #25419 (card ci: no job asserts the Turbo remote cache is actually on — TURBO_TOKEN is withheld whenever the signing secret is empty, turbo then prints "Remote caching disabled" and builds cold with nothing red; add the assertion to Build Core and the closure builds #25374) Build Core printed "Remote caching enabled" with 76/76 remote hits, and Type Check · workspace 71/71 (
TURBO_TOKEN/TURBO_TEAM,ci.yml:749-750). For the tasks the remote cache serves, the per-sha.turbo/cacheseed in the Actions pool may be redundant weight. - Pool usage is NOT measured yet.
GET /repos/objectstack-ai/objectstack/actions/cache/usageandGET /repos/objectstack-ai/objectstack/actions/cachesare refused from a cloud seat container (egress proxy 403 on Actions cache paths, 2026-10-23T14:17Z).
Governing text
ci.yml:597-610andlint.yml:5101-5145— the seed discipline comments (main writes, PR and merge_group restore by prefix). This card changes what and how much is written, not the restore order, unless the measurement shows the seeds are redundant with the remote cache.- AGENTS.md lines 371–372 are about the local worktree cache, not CI.
- Ruling 6366946328: "Raising the pool limit is a billing item and comes back to the maintainer."
Change (in order; the dev pins what the measurement supports)
- Measure first. Read
actions/cache/usageand the 100 largest entries ofactions/caches(sorted bysize_in_bytes, desc), from a localghor a one-off read step in aworkflow_dispatchjob withactions: read. Record in the PR: pool total, the share held by*-turbo-*keys, byrefs/pull/*refs, and bypnpm-store/nextjskeys, plus the age of the oldest live Test Core seed. If the pool is well under 10 GB and seeds survive at least 5 merges, stop and say so — the card closes with the reading. - Then shrink, cheapest first, choosing from: (a) drop the
.turbo/cacheActions seed for jobs whose tasks the remote cache already serves (Build Core, Type Check), keeping the seed only where the remote cache misses; (b) save the Test Core seeds from one shard-independent job, or prune.turbo/cacheto the run's own hashes before save, to cut the per-shard size; (c) stop PR runs from saving the Next.js cache (restore-only on PRs, as the Turbo seed already is). - Never raise the pool limit in this card. If after (a)–(c) the pool is still over budget, return the billing option to the maintainer as a needs-user-decision with the measured numbers.
Acceptance
- The PR records the before-measurement (pool total and the four shares above) and the after-measurement taken after ≥ 5 merges to main.
- After: pool total ≤ 8 GB at steady state, and over the next 10 PR runs whose closure matches main, the shard "Build this shard's dependency closure" step median is ≤ 1.7 min and Build Core's build step is ≤ 2.5 min (the speed acceptance moved here from ci: the push-to-main CI run is cancelled by the next merge 9 times in 13, so the Turbo cache seed that only that run saves goes stale and every PR shard and lint lane rebuilds cold (Build Core 51 s → 4m30s, shard closures Σ 20–31 runner-min per run) #25373 by the ruling).
- Or, if step 1 shows the pool is not the cause: a comment with the reading, and the card closes
not_plannedwith the measured cause named for a follow-up card.
Risks
- Dropping a seed the remote cache does not actually cover makes those jobs colder; the dev keeps the remote-cache hit counts from the
assert-turbo-remote-cachelines (ci: assert the Turbo remote cache is on after Build Core, the Test Core closure and the three Type Check builds #25419, once landed) before and after. - Actions cache eviction is least-recently-used; a measurement taken right after a burst of merges can overstate pressure — take two readings at least an hour apart.
Work estimate
Lane domain:devx · 1 PR (.github/workflows/ci.yml, .github/workflows/lint.yml; possibly .github/workflows/*.yml for the Next.js save gate) · Clause-②: no · Metadata-protocol: none · Tier H (governed surface — the PR waits for a GOVERNED_APPROVERS approval before ready). Size M. Serial: lands after #25373's PR (same ci.yml concurrency/save region) and after #25419 (needs its remote-cache assert lines for the before/after reading).
Related: #25373 (ruled sibling), #25374 / PR #25419 (remote cache assert), #5401 (closed).
Maintainer directive (verbatim, untranslated)
同意
— the maintainer, 2026-10-23T14:13:20Z, on director batch #5 item 1 (letter C = land the staged concurrency change as a coverage fix and file a separate card for the cache pool).
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 23, 2026
Claim: PM loop round 3 · 2026-10-23T18:23Z
Session:
session_01SawdJgiuoz8deqVdM51jAE(card thread, dispatched by seat sessionsession_01LKHDniRQSWjRJyDtacwpEd)Account:
os-elon-muskBranch:
claude/project-thread-53z7nt(the harness-pinned branch for the card thread; it names no issue, so this claim is the identity record)Worktree:
objectstack-issue-25452Domain:
domain:devxSeat:
domain:devx#1(seat post #6023)File surface: .github/workflows/ci.yml, .github/workflows/lint.yml (possibly other workflow files for the Next.js save gate); Tier H (stop on breach; explain in the report)
Container & model:
M,mode:thread,model: default tier,effort: highClause-②: no
Metadata-protocol: none
Responsibility: domain:devx seat 1 (#6023) reviews; Tier H — GOVERNED_APPROVERS approval before ready
Thread-read: none
Serial constraints cleared: cleared — #25454 (concurrency, merged 18:20Z) and #25419 (remote-cache assert, merged 18:10Z) are on main; #25465 (DTS skip) also landed 18:20Z
Dispatched under the maintainer's 「同意」 to the director's ruling batch 1, item 5A (devx dispatches p1–p3). This card is also covered by the maintainer's 「同意,立卡」 for the CI performance audit cards, where the card says so. Dispatch order:
/mnt/project-files/pm-devx-seat/dispatch-25452.md.objectstack-fleet commentedon Oct 23, 2026
ACCEPT (seat review) → PR #25523 ·
domain:devxseat 1 ·session_01LKHDniRQSWjRJyDtacwpEd· 2026-10-23T18:55Zfcae6e3a53: two files.scripts/ci/prune-turbo-cache.mjsis new (+381) with a 25-case self-test, wired into Build Core..github/workflows/ci.yml(+29 / -1) adds a prune step before Test Core's "Save Turbo cache (main only)", and the save now runs only when the prune sayssave=true..turbo/cache, and the bareLinux-turbo-test-restore fallback carries that lineage across shards; PR run 39999049930 shard 1 restored shard 3's 2.50 GB seed. This is card change (b).--summarizerun summary (.turbo/runs/, whichci.ymlwrites on both the package and the slice legs), plus the closure build's summary that the ci: assert the Turbo remote cache is on after Build Core, the Test Core closure and the three Type Check builds #25419 assertion moved to$RUNNER_TEMP/turbo-remote-cache. All three files of every other entry are deleted. A file of unknown shape is kept and counted, so a turbo layout change cannot silently empty the seed. With no run summary (cancelled, or an empty shard) there is no save, and the previous seed stays newest. Every run-time path exits 0, so the shard attestation is unaffected.--self-testat this head is OK (25 cases, 5 batteries). CI is all green: 34 success, 11 skipped.actions/cache/usageand the largest entries) is pending. The maintainer has been asked to run twoghreads locally; this is not a landing blocker. The after-reading (≥ 5 merges, pool ≤ 8 GB at steady state, closure medians) is owed after landing..github/workflows/ci.yml). A GOVERNED_APPROVERS approval is the review record; hotlong and os-zhuang are requested.objectstack-fleet commentedon Oct 24, 2026
After-reading, first signal (devx seat, 2026-10-24 01:05Z; #25523 merged 00:35Z). Two push runs so far; the acceptance asks for ≥ 5.
041a120b61), Test Core 1/6:prune-turbo-cache: … kept 3 task entries named by 2 run summariesanddropped 17001 file(s) the run did not use: 2912.4 MB -> 0.8 MB on disk. It then savedLinux-turbo-test-1-main-041a120b61…. Shard 2 also saved.NOT SAVED -- no readable run summary. Those are empty shards on an affected-only push, which is the designed no-save path, and the previous seed stays newest.Still owed for the acceptance: the pool total at steady state (≤ 8 GB) and the PR shard-closure and Build Core medians over 10 PR runs, after ≥ 5 merges. The seat reads them on the next check.
Generated by Claude Code
objectstack-fleet commentedon Oct 24, 2026
Final after-reading (devx seat, 2026-10-24 08:10Z; #25523 merged 00:35Z, interim 6377899689). Seven push runs to
mainsince landing, all 42 Test Core jobs read.Seeds: met. Every saved seed is under 49 MB, and no prune step failed.
041a120b9c43e19fba9e0c37e0734559ba6912c1393769728801f2bbNOT SAVED -- no readable run summary, the designed path. No shard that ran tests skipped its save.keptline reports0 have no entry.PR timings over 10 PR runs since landing. The runs are 40072679921, 40066454701, 40065311088, 40063381603, 40062740824, 40062506129, 40062326459, 40059926372, 40058336591 and 40058057228. I skipped two
action_requiredruns, one cancelled run and two runs with Build Core skipped.Build this shard's dependency closure: met. The median over 60 shard jobs is 1.23 min (target ≤ 1.7), and the max is 6.68 min. Shards 3–5 carry the long tail at 200–400 s. The slowest shard's median per run is 4.45 min.Build packages (excluding docs): not met as read. The median is 3.28 min (target ≤ 2.5), and the max is 6.32 min.main". All ten PRs change source, and two of them are the release PR, which bumps every version.started_at−created_at) has a median of 2 s and a max of 3 s.Still open: the pool total (target ≤ 8 GB at steady state).
actions/cache/usagereturns 403 from the seat's container, and the two localghreads asked of the maintainer have not arrived. On the arithmetic, about 0.27 GB per full merge leaves the 10 GB pool more than 30 merges of headroom. But the old 2.4 GB entries age out on GitHub's clock, and only the usage read can confirm that.The seat recommends closing #25452 once the pool read is in. If the pool read is still missing, the card can close on the seed evidence above, with the pool figure recorded when it arrives. That choice is the maintainer's.
Generated by Claude Code
hotlong commentedon Oct 24, 2026
Pool reading (the two local
ghreads asked of the maintainer) · 2026-10-24 14:25ZRead by the cloud ops seat at the maintainer's request, from a local
gh:GET /actions/cache/usageand every entry ofGET /actions/caches(31 entries, sorted by size).mainwas at2c523d0100. This is reading 1; the card's risk note asks for a second at least an hour later.Pool total: 10.30 GB in 31 entries. That is over the ≤ 8 GB acceptance and at the 10 GB limit.
cache/usageanswered 11.01 GB in 30 entries; the listing taken seconds later is used below.*-turbo-*keysrefs/pull/*refspnpm-storekeysnextjskeysgh-readonly-queue/*)refs/heads/mainEviction is running. Of the 31 live entries, 29 were created in the last 1.5 h. The 2 older ones (13.4 h) are
pnpm-store-v3andcorepackonmain, which every run reads. The oldest live Test Core seed is 1.3 h old (Linux-turbo-test-6-main-49653f91…). Live Test Core seeds cover 3mainshas, short of the card's "survive at least 5 merges".What #25523 fixed holds. The 7 live Test Core seeds total 0.27 GB, 0.8–48 MB each.
Where the weight is now:
mainrefs alike:ci.yml:2918-2923is a plainactions/cache@v6, which post-saves on every event.main: 2.79 GB.turbo-build-core571 MB,turbo-pack-smoke2 × 557 MB,turbo-typecheck2 × 555 MB.Linux-pnpm-store-v3-d2b76958…is stored 5 times (4 merge-queue refs and 1 PR ref), about 1.47 GB of duplicates, plusspec-shape-gate's own 489 MB store.pnpm-store-v3step is a plainactions/cache@v6in about 12 places acrossci.ymlandlint.yml.gh-readonly-queue/main/pr-*ref is used by its one run.main's seeds out.Against the acceptance:
Per the card's step 3, the billing option comes back to the maintainer only after (a)–(c). (a) and (c) have not been done, and the per-ref pnpm/Next.js saves on
merge_groupand PR events look like the cheapest next cut.Nothing was changed; both calls are reads.
40 remaining items
objectstack-fleet commentedon Nov 5, 2026
coordinator#1 · hotlong · session_6eb9ec2e0e3f410b91239dab7a337b9e
两次缓存池读数,间隔 65 分钟,都在
1d4103779c之后 · 2026-11-05T14:42Z维护者 2026-11-05 让协调席代做本卡的读数(「按推荐做」)。读数命令就是卡上写的两条
gh api。bc8945f13dfa9c0aa2a0active_caches_size_in_bytesactive_caches_count说明(只是读数,不下结论,判读交给车道)
created_at晚于 13:31Z 计算)。同一窗口里 main 只合了 3 个提交。ref都是refs/heads/main,没有 PR 分支的缓存。Linux-nextjs2.72 GB(4 个)、turbo-pack-smoke0.82 GB(14 个)、turbo-typecheck-main0.66 GB(18 个)、turbo-build-core-main0.64 GB(11 个)、turbo-type-check-ui-main0.61 GB(15 个)、turbo-lint-ui-main0.56 GB(13 个)。两份完整的
--paginate列表(key、size、ref、last_accessed、created)分别放在后面两条评论里。objectstack-fleet commentedon Nov 5, 2026
coordinator#1 · hotlong · session_6eb9ec2e0e3f410b91239dab7a337b9e
读数 1 完整列表 · 2026-11-05T14:43Z
key · size_in_bytes · ref · last_accessed_at · created_at
objectstack-fleet commentedon Nov 5, 2026
coordinator#1 · hotlong · session_6eb9ec2e0e3f410b91239dab7a337b9e
读数 2 完整列表 · 2026-11-05T14:43Z
key · size_in_bytes · ref · last_accessed_at · created_at
objectstack-fleet commentedon Nov 6, 2026
coordinator#1 · hotlong · session_6eb9ec2e0e3f410b91239dab7a337b9e
2026-11-06T14:56Z
State:
pm:awaiting-maintainer→pm:queue. The measurement this card waited on is posted: two cache-pool readings 65 minutes apart, both after1d4103779c, with full key lists (2026-11-05 14:42–14:44Z). Both readings are over the 10 GB pool. The call (shrink or retire the per-sha seeds) is thedomain:devxlane's, so the card goes back to the queue.🤖 Generated with Claude Code
objectstack-fleet commentedon Nov 8, 2026
domain:devx#3 · os-project-manager · session_01FEkQ5njkh3xbcDN6EtSfw7
Maintainer ruling recorded · 2026-11-08T11:01Z · #25452 is now in devx bounds
Ruling-ref: the maintainer's tap on 整体解除 (2026-11-08T10:59Z, decision card
cmsg_01TenzsRopZj4jMbvjX8uz1XPQwuwKJ4wbCdbisMvLwz77), recorded on #20163.ci.ymlconstraint that kept this card out of thedomain:devxlane is lifted lane-wide.ui/.github/**stays out of bounds.ci.yml.Linux-nextjs2.72 GB the largest prefix), and PR ci: prune each Test Core Turbo seed to its own run's tasks before saving it #25523 (pruning the Test Core seeds) has merged. What remains is step 2 (a), dropping the.turbo/cacheseed where the remote cache serves, and (c), making the Next.js cache restore-only on PRs.The current devx seat is going off duty, so this card stays
pm:queuefor the next devx seat.objectstack-fleet commentedon Nov 8, 2026
domain:devx#2 · zhuangjianguo · session_01QsR2jTo666XXx9e1Gm21C6
Claim: PM loop round 6 · 2026-11-08T21:47Z
Session:
session_01QsR2jU13BVJrAhzrBEZomQ(card thread, dev) · seatsession_01QsR2jTo666XXx9e1Gm21C6Account:
zhuangjianguoBranch:
claude/project-thread-f8jm6nWorktree:
objectstack-issue-25452Domain:
domain:devxSeat:
domain:devx#2File surface:
.github/workflows/*.ymlsave and restore steps for the per-sha.turbo/cacheActions seeds and the Next.js cache (ci.yml,lint.yml, and whichever workflow savesLinux-nextjs), plus the pins and self-tests that read them. Tier H, hand-merged. ⛔ No pool-limit change, noui/.github/**.Container & model: M,
mode:thread,model: default tier(no path-derived mandate),effort: highClause-②: no
Metadata-protocol: none
Responsibility: the Actions cache pool | 10.92 / 10.73 GB over a 10 GB pool on 2026-11-05 (6660842058), with Test Core and dogfood seeds already pruned (PR #25523, PR #30241) | every PR run's restore hit rate and every main push's seed save
Thread-read: 6720663979
Premise: holds; the maintainer ruling 6720663979 leaves step 2 (a) and (c), and its serial condition (#22034) cleared at
8210894cSerial constraints cleared: #22034 (PR #31644,
8210894c) and #31519 (PR #31611,df91a35d) both landed inci.yml. No other open devx PR edits workflow files.Scope: step 1 is a read-only seed and remote-cache table, posted before code. Then one PR for step 2 (a) and (c). The PR says
Fixes #25452. Brief:/mnt/project-files/issue-25452/brief.md. Summons: the maintainer's 「开一个 devx 车道」 (this project, 2026-11-08T11:03Z).objectstack-fleet commentedon Nov 8, 2026
domain:devx#2 · zhuangjianguo · session_01QsR2jU13BVJrAhzrBEZomQ
Step 1 reading (read-only, before code) · 2026-11-08T21:57Z · ⛔ not a claim
Tree:
objectstack-ai/objectstackmainatcd43416f. Pool data: hotlong's two readings 65 minutes apart (6660842058, full lists 6660862422 and 6660886860). Job logs: push run 42522030859 (8c9260f7, a full uncovered run) and PR runs 42524973022 (#31637) and 42524366873 (#31668).Headline: neither remaining step changes the pool, and the pool's weight is entries no run can restore
eae9a588e7) made the Next.js cache restore-only on PRs: onmainthe save step is gated(push || schedule) && cache-hit != 'true'(ci.yml"Save Next.js cache"). Both 11-05 readings hold 0refs/pull/*entries. A restore-only PR leg loses nothing because it already is one.TURBO_TOKENreaches onlymerge_groupandmainruns (everyTURBO_TOKEN:line inci.ymlandlint.ymlcarries that gate). Ruling [Decision] Pull-request CI runs get no Turbo remote-cache token at all 13 sites, so every PR build is cold: grant a read path, or keep PRs on the Actions-cache seed alone #26070 → A (6417142465) keeps it that way, and ruling [Decision] #25452 change (a) assumed the Turbo remote cache serves PR builds, but ruling #26070 → A keeps PRs on the Actions-cache seeds alone: drop, prune or keep the build-core / typecheck / pack-smoke seeds? #26957 → A (6458731814) already turned "drop" into "prune". Every seed below has a restorer that holds no token, or one that reads only the local cache. The 11-08 recap (6720663979) names (a) and (c) as what remains. (c) landed on 10-28, (a) was rewritten to prune on 10-28 (PR ci: prune the build-core, typecheck and pack-smoke Turbo seeds before saving them #27067), and the recap reverses neither.*-main-SHAseed is dead once the next push saves a newer one. In reading 2, 0 of 196 non-newest entries were accessed after a newer entry of their prefix existed. Between the two readings, 89 keys were evicted, and every prefix's newest entry in reading 1 is either still in reading 2 or has a newer successor there (0 live entries lost). The pnpm store and corepack were the oldest live entries, about 13 hours old and still hit. So the pool runs over 10 GB, but LRU eviction drops only dead entries.Seed table
Live counts are from reading 2 (
fa9c0aa2a0). "Per entry" is the saved size the prune printed on push run 42522030859 (8c9260f7) where marked (log), else the mean entry in reading 2.turbo-test-K-main(K = 1..8)ci.yml·test·actions/cache/save64 cached, 65 totalfrom the seedturbo-dogfood-K-main(K = 1..3)ci.yml·dogfood· saveupgrade-harness-optin.yml(labelled PRs, no token). Also thedogfood#teststep, which never reads the remote (its comment), so the seed is the only cache a queue or push run can replay that task's entry fromturbo-build-core-mainci.yml·build-core· save0 remote hit(s), 41 local hit(s), 78 miss(es)on both PR runs (no token). It is also the fallback prefix of 13 other restore stepsturbo-typecheck-mainlint.yml·typecheck-workspace· saveturbo-ui-deps-mainci.yml·ui-deps· saveui-coverage-nightly.ymlturbo-type-check-ui-mainci.yml·type-check-ui· saveturbo-lint-ui-mainci.yml·lint-ui· saveturbo-pack-smoke-SHApublish-smoke.yml·pack-smoke(after each Release run,mainref) andpack-smoke-optin.yml(labelled PRs) · saveTURBO_TOKENturbo-create-scaffold-smoke-SHAos-create-smoke.yml· plainactions/cacheAn uncovered push run saves up to 17 seeds of 30 to 70 MB each, about 0.6 GB in all. Reading 2 carries 24 shas created over 2.4 hours, 10 of them with 13 or more seeds. The 17 newest entries, one per prefix, are 0.58 GB together.
Next.js cache:
ci.yml·build-docs· "Save Next.js cache" (actions/cache/save). Its key hashespnpm-lock.yaml,apps/docs/**JS and TS, andcontent/**/*.mdx, so every uncovered push that touches docs writes a new key. Reading 2 holds 4 entries, 0.64 to 0.71 GB each, 2.72 GB in all, all onrefs/heads/main. Only the newest is ever restored (PRs restore by the lockfile prefix). Build Docs is skipped on covered pushes (queue-verdictcovered).Predicted pool, by change (computed from reading 2, total 10.73 GB in 217 entries)
refs/heads/mainonly)scheduleonly (every 4 h), not on pushRemote-cache risk per dropped seed: none, because no seed is dropped. (A) and (B) drop no seed a run can restore. (A)'s own risk is a delete landing while a concurrent job is still downloading that entry: that restore misses, which is not fatal. Keeping 2 per prefix covers it.
What it means for the card
mainseed.not_plannedwith the measured cause named") fits this reading.objectql,metadata-protocol), so most of the closure rebuilds whatever the pool holds. That is the measured cause of the slow PR builds the speed acceptance names, and it is not the pool.Options for the seat (four axes)
actions: writethat deletes all but the newest 2 entries per seed prefix onrefs/heads/main. It meets "≤ 8 GB" (about 2.5 GB). Cost: a new mechanism and a write-scoped token onmainruns, to move a number with no measured harm behind it. Outside the card's listed (a) to (c), so it needs the maintainer's word.scheduleonly. About 1.3 to 2.0 GB saved, does not reach 8 GB alone, and PR docs builds would restore a cache up to 4 h older. Not recommended alone.NOT MEASURED
Nothing was changed. Every call above was a read.
objectstack-fleet commentedon Nov 9, 2026
domain:devx#2 · zhuangjianguo · session_01QsR2jTo666XXx9e1Gm21C6
Closed
not_planned· 2026-11-09T00:51Z · maintainer chose "Close it, no code"Ruling-ref: the maintainer's pick on the decision card in the devx seat 2 project thread (2026-11-09T00:51Z): "Close it, no code" (card message
cmsg_018ETKaNwMZCNRYD7D8Q9UbbK5DTcBN1Ex9eprzLgYb4xE). The seat recommended it. The evidence is the step-1 reading 6727676728 (devsession_01QsR2jU13BVJrAhzrBEZomQ, claim 6727578727), which the seat checked against its sources.main. PR ci: restore the Next.js cache on every run, save it on push and schedule only #26984 merged 2026-10-28: the Next.js cache is restored on every run and saved on push and schedule only. Both 11-05 pool readings (6660842058) hold onlyrefs/heads/mainentries.TURBO_TOKENreaches onlymerge_groupandmainruns (ruling [Decision] Pull-request CI runs get no Turbo remote-cache token at all 13 sites, so every PR build is cold: grant a read path, or keep PRs on the Actions-cache seed alone #26070 → A). Ruling [Decision] #25452 change (a) assumed the Turbo remote cache serves PR builds, but ruling #26070 → A keeps PRs on the Actions-cache seeds alone: drop, prune or keep the build-core / typecheck / pack-smoke seeds? #26957 → A had already turned "drop" into "prune" (PR ci: prune the build-core, typecheck and pack-smoke Turbo seeds before saving them #27067). Every seed prefix has a tokenless or local-only restorer, and PR Build Core read0 remote / 41 local / 78 misson two PR runs.objectql,metadata-protocol) rebuild most of the closure, and PR runs have no remote cache by ruling [Decision] Pull-request CI runs get no Turbo remote-cache token at all 13 sites, so every PR build is cold: grant a read path, or keep PRs on the Actions-cache seed alone #26070 → A (PR Build Core 6m50s with 78 misses). The only lever is that ruling, so no follow-up card is filed.actions: writethat keeps the newest 2 entries per prefix (predicted pool about 2.5 GB), and option B, Next.js saved on schedule only (saves 1.3–2.0 GB). Either can come back as its own card.No PR was opened.
pm:dispatchedcomes off.