Skip to content

Commit 9616ffb

Browse files
claude[bot]claude
andauthored
ci(lint): record why the ledgered-closure build is NOT a duplicate of the gate's own refresh (#10568)
`.github/workflows/lint.yml`'s "Build the ledgered packages' dependencies" step and `refreshBuiltClosure()` in scripts/check-type-check-coverage.mjs run the identical turbo command with identical filters, and #8331 was filed asking whether the workflow step is now dead weight. Re-derived on current main: it is not, and the reason is an ordering the gate documents but the workflow never mentioned. `--re-measure` checks `unbuiltClosure()` BEFORE it calls `refreshBuiltClosure()` and refuses rather than building from nothing (deliberate: a cold 7-task closure measured 3m2s on a gate people run before pushing). So the refresh owns the present-but-stale case only; it cannot rescue a closure member no earlier step built. Measured what the preceding step actually covers: of the 55 workspace packages in the ledgered dependency closure, `Build workspace packages` reaches 54 through `./packages/*`, and the 55th -- @objectstack/service-knowledge, pulled in by the ledgered knowledge-ragflow -- arrives only through `./examples/*^...`, because examples/app-todo happens to depend on it. Deleting the step would tie the lane's green to that one manifest. Comment only; no step, command, filter or ordering changed. Fixes: #8331 Claude-Session: https://claude.ai/code/session_01DdCnBGcHeufjrq7drTD3wt Co-authored-by: Claude <noreply@anthropic.com>
1 parent 90b4126 commit 9616ffb

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

.github/workflows/lint.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2511,6 +2511,36 @@ jobs:
25112511
# Measured cost of the re-measure itself: ~4 min, sequential by design
25122512
# (parallel tsc processes trade wall clock for an OOM risk on a job that
25132513
# has just built the whole workspace).
2514+
#
2515+
# ⚠️ NOT a duplicate of the closure build the gate below runs itself
2516+
# (#8331). `check:type-check-debt` calls `refreshBuiltClosure()` in
2517+
# scripts/check-type-check-coverage.mjs, which runs this exact command
2518+
# with these exact filters — but it runs it AFTER the `unbuiltClosure()`
2519+
# refusal, never before, and that order is deliberate and documented
2520+
# there: the refusal owns the NOTHING-IS-BUILT case (one ledgered
2521+
# package's 7-task closure built cold measured 3m2s, on a gate people run
2522+
# before pushing), the refresh owns only the PRESENT-BUT-STALE case
2523+
# (#8271). So the gate cannot rescue a closure member no earlier step
2524+
# built — it refuses, naming the command this step runs.
2525+
#
2526+
# What that leaves is measured, not assumed. Of the 55 workspace packages
2527+
# in the ledgered dependency closure (the gate's own enumeration, on an
2528+
# unbuilt worktree), `Build workspace packages` above already covers 54
2529+
# through `./packages/*`. The 55th is `@objectstack/service-knowledge`
2530+
# (packages/services/, pulled in by the ledgered `knowledge-ragflow`), and
2531+
# it arrives here only through `./examples/*^...` — because
2532+
# `examples/app-todo` happens to depend on it, the same accident #3037
2533+
# records one step above. Delete this step and the lane's green starts
2534+
# depending on that one manifest: drop the dependency there and
2535+
# `check:type-check-debt` refuses in CI, with a remedy message naming the
2536+
# command this step no longer runs.
2537+
#
2538+
# The drift #8331 was filed on — one precondition owned in two places — is
2539+
# LOUD in both directions now that the gate refreshes with its OWN
2540+
# filters: a narrower filter here ends in that refusal, a wider one in
2541+
# extra cache hits. Neither can make CI measure a different world than a
2542+
# local run, which is what #8271 was. Cost of keeping it: 9.5s of turbo
2543+
# cache hits (70/70) against this lane's ~249s.
25142544
- name: Build the ledgered packages' dependencies
25152545
run: pnpm exec turbo run build --filter='./packages/*' --filter='./packages/*/*'
25162546

0 commit comments

Comments
 (0)