Repository navigation
test(lint): compute the SYSTEM_FIELDS live census once per file, under its own hook timeout - #19813
Merged
objectstack-fleet[bot] merged 1 commit intoSep 23, 2026
Conversation
…r its own hook timeout `liveSources()` reads every `.ts` under `packages/lint/src` (200 at this head) and `censusUnionConsumers` parses each one with the TypeScript compiler; the file recomputed that census inside each of its six live tests, so the cold computation ran under vitest's default 5,000 ms per-test wall and crossed it on a loaded CI shard. One `beforeAll` at the top of the file's describe now fills a module-level `live` census once, with an explicit 60 s hook timeout sized from the measured cold run (about 1 s on a quiet box), and the six tests read that one result. The walk, the analyzer, the LEDGER rows, the PROVENANCE_API pin and every assertion are unchanged. Claude-Session: https://claude.ai/code/session_01XPUwWGnmky4PXPofNsf2w7 Co-authored-by: Claude <noreply@anthropic.com>
Contributor
📓 Docs Drift CheckNothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 0 changed package(s)), so this run has no opinion about the docs. What this run could not see
Coarse fallback — 0 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
objectstack-fleet
Bot
deleted the
claude/issue-19807-lint-census-timeout
branch
September 23, 2026 08:38
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.
Fixes #19807
Clause-②: no
What is red and why
The hourly full run on
main(run 35829772446,Test Core (2/6)onde4ed33f) failed on exactly one test:packages/lint/src/system-fields-consumers.test.ts:586(the #8999 SYSTEM_FIELDS consumer census, 「the live population › is anchored to a real export…」) —Error: Test timed out in 5000ms. The shard then stopped and six scheduled packages never ran. The same failure, same shard, same test, is the only red in the last 100 hourly runs (09-21 04:01Z, 09-21 16:00Z, 09-23 07:03Z); no commit between the last green run (fae870352) and the red head touchespackages/lint/**, and the file is green on PR shards, where@objectstack/lintruns with few neighbours.Cause, read from the file:
liveSources()reads every.tsunderpackages/lint/src(201 files) andcensusUnionConsumersparses each with the TypeScript compiler (setParentNodes: true); the six live tests each recomputed that whole census under vitest's default 5,000 ms per-test wall, and the cold run crossed it on a loaded full-battery shard (13 packages,--concurrency=4on 4 vCPUs).What changed
One file, test-only: the live census is computed ONCE per file in a
beforeAllthat carries its own explicit timeout (60,000 ms, sized from the measured cold run of ~1 s on a quiet box with headroom for a contended shard), and the six live tests read that one result.censusUnionConsumers,liveSources(), the LEDGER rows, the PROVENANCE_API pin and every assertion are unchanged; no walk is narrowed, no test skipped, no file-wide or package-widetestTimeoutraised.Verification
session_01XPUwWGnmky4PXPofNsf2w7); its report with the measured before/after durations follows on hourly full run: red on main (CI) #19807.Test Coreshards (the@objectstack/lintpackage suite),Lint & Repo Gates, type checks.packages/lint/src/**is on no register surface); ordinary queue landing after the dispatching seat's ACCEPT.Related, not changed here: #16465 / #16468 (shard-duration alarm and per-package suite-duration ratchet,
pm:queueindomain:devx), and ten other test files that walk directories or parse with the TypeScript compiler under the default wall (cli ×5, spec ×4, service-analytics ×1) — none has gone red; the same one-computation shape applies if one does.🤖 Generated with Claude Code
https://claude.ai/code/session_0129ZpnaBcYZZ51rCvQiXg6C