Repository navigation
test(spec): the two type-graph test files declare their measured CI budget - #24015
Merged
objectstack-fleet[bot] merged 1 commit intoOct 16, 2026
Merged
Conversation
…udget scoped-context.test.ts and connector-author-shape.test.ts each build one ts.createProgram over the spec entry barrels and read every probe from it. Each now carries one header line in the third test-budget class, "compiles the package type graph once", at the slowest of the 9 hourly runs on 2026-10-16 that executed the spec local project, x 1.25, rounded up to the next 10 s: 17.1 s and 21.8 s, so 30 s each. No assertion, timeout or project changes. Claude-Session: https://claude.ai/code/session_01LFqdRsuM5nkqoJdHd5ztVk 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): |
Contributor
Author
Review: ACCEPT · #23180 (ruling
|
This was referenced Oct 16, 2026
objectstack-fleet
Bot
deleted the
claude/issue-23180-type-graph-budgets
branch
October 16, 2026 19:45
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.
Part of #23180
Clause-②: no
Two
packages/spectest files each gain one header line in the third test-budget class,compiles the package type graph once. This is item 3 of ruling record6212133431(#23821, letter A). The number follows item 2 of ruling record6181973363: the measured CI reading x 1.25, rounded up to the next 10 s. Both files declare 30 s. #23180 stays open for its other rows; this PR covers only these two.src/contracts/scoped-context.test.ts// test-budget: 30 — compiles the package type graph once: …(slowest reading 17.1 s, run38865071010)src/integration/connector-author-shape.test.ts// test-budget: 30 — compiles the package type graph once: …(slowest reading 21.8 s, run38904808867)The reason in each line says why the file belongs to the class: every probe is compiled in one
ts.createProgramover the spec entry barrels it imports. The first read pays that program's type-graph resolution, and every later probe reads the same program. Each file has exactly onets.createProgram(call (:117and:131after this PR).The CI reading: 2026-10-16, Test Core (1/6)
Source: the vitest module lines of
@objectstack/spec:test(thelocalproject, which holds both files) in theTest Core (1/6)job of every hourly scheduledci.ymlrun on 2026-10-16 UTC, from00:02Zto17:01Z(18 runs). Each log was read with the MCPget_job_logstool. It returns the last 5000 of about 22,100 lines, and both module lines sat inside that window in every executed run.Executed runs (9). In each, the
localproject'sStart atfalls inside the job's own window, so the lines are this run's measurement.connector-author-shapescoped-context38833767749(01:11)38838260718(02:01)38848429828(04:01)38858901527(06:02)38865071010(07:06)38877591164(09:01)38891051243(11:01)38904808867(13:02)38936452003(17:01)Not used (9): cache replays.
38827152315(00:02),38853598892(05:01) and38928622617(16:01): the replayedlocalsummary readsStart at23:09:27, 04:45:28 and 15:41:37, all before the job began.38843417737(03:01): the log prints@objectstack/spec:test: cache hit, replaying logs.38912391826(14:01) and38920490313(15:01): theTest Coreaggregator lists@objectstack/specamong its cache-replayed packages, and itscheck-liveness.test.ts (local)row readsreplayed log.38870924976(08:01),38884415435(10:01) and38897680323(12:01): thelocalsummary is not in the readable tail, which begins 1.2 to 1.4 minutes into the job. So it printed before that point. An executedlocalproject took 349 to 530 s in the runs above, so only a replay finishes that early. PR test(spec): re-measure the two declared test budgets over 11 executed hourly runs #23937 also counted these three runs as replayed.Arithmetic. I took the slowest of the 9 executed readings, as PR #23937 did:
connector-author-shape: 21.773 s x 1.25 = 27.22 s, rounded up to 30.scoped-context: 17.059 s x 1.25 = 21.32 s, rounded up to 30.The ruling estimated about 30 s from 16.7 s and 18.1 s. Today's slowest connector reading (21.8 s) is higher, but it still rounds to 30.
Verification
All local checks ran at
15e9714ffd, the head of this PR.declaredBudgetInTree('@objectstack/spec', FILE), the reader--diffuses, returns{"seconds":30,"cls":"compiles the package type graph once","line":2}for both.node scripts/measure-test-shard-timings.mjs --self-test:measure-test-shard-timings: self-test OK, exit 0.os-verify-lock:pnpm --filter @objectstack/spec exec vitest run --project local --maxWorkers=2on the two paths gaveTest Files 2 passed (2),Tests 19 passed (19)andVERDICT command-exit 0. That is 8 + 11 tests, the same counts the CI module lines show.pnpm --filter @objectstack/spec typecheckunderos-verify-lockgaveVERDICT command-exit 0(check:test-typecheck: OK — … 52 file(s) / 242 error(s) / 132 pinned signature(s) held).Test Coreruns the suite.node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderived 76 commands against merge base61a680956.check:doc-formula-expressionsandcheck:lean-entry-closurefirst exited 3 (unbuilt@objectstack/lintand@objectstack/objectql). Both exited 0 when re-run after a scoped build, which makes 75.check:dual-build-cjs-loadsexited 3 and is NOT MEASURED. It needs every package'sdist, and it reads no test file. CI runs it.--ran:✓ dispatch-gates --ran: 76 derived famil(ies) accounted for — 75 run, 1 NOT-MEASURED (1 DERIVED from a recorded exit 3).check-governed-merges --branch:0 of 2 path(s) hit the register, 2 changed lines.Acceptance notes
expectis byte-identical. Nothing is deleted, no timeout is raised and no project is moved (ruling record6181973363, item 5).@objectstack/spec'sfiles[]shipsdistandsrc/**/*.zod.tsfrom source, never a*.test.ts.npm pack --dry-runat this head lists 2094 files with 0*.test.ts; the controlssrc/integration/connector.zod.tsanddist/index.jsare present. Nothing publishes, so this PR takesskip-changesetrather than a changeset, as PRs test(spec): re-measure the two declared test budgets over 11 executed hourly runs #23937 and test(spec): three src/ test-budget rows trimmed, two at a one-program floor left listed #23819 did.6181973363, the line rises only through a PR that re-measures and says why in the line.Generated by Claude Code