Skip to content

test(cli): put serve-mcp-stdio-early-initialize's test-budget on the 10 s grid at its CI reading (#23181 slice 6) - #24494

Merged
objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-23181-s6-budget-grid
Oct 19, 2026
Merged

objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-23181-s6-budget-grid

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Part of #23181
Clause-②: no — basis: the diff is one header comment of a test file under packages/cli/test/, outside @objectstack/cli's files (dist, README.md, CHANGELOG.md); nothing ships, and no accept set or public surface moves.

This puts line 2 of packages/cli/test/serve-mcp-stdio-early-initialize.integration.test.ts on the 10 s grid, at its CI reading. The header declared 15 s from a local timing, so measure-test-shard-timings.mjs --diff refused it (readTestBudget: "the budget 15 s is not on the 10 s grid"). Because of that refusal, the weekly refresh PR #24467 (run 39205844620) reports "Regression readings: NOT MEASURED -- the diff refused (exit 1)" for every lane. Only line 2 changes. The class, the test body and every other file are untouched.

The CI reading

  • Source. The refresh run 39205844620 accumulated 7 hourly full-battery schedule runs. Its log reads "Accumulated 7 run(s): 39202368342 39197429467 39192681060 39188268133 39184708096 39178996284 39174682274", and its dataset (PR chore(ci): refresh the Test Core shard-timings dataset #24467 head 1f11e11f0) names the same 7 in provenance.runs. I downloaded all 42 of their per-file captures (test-core-timings-N-of-6, written by report-test-timings.mjs --capture).
  • How it was read. The script's own readWindowCaptures and windowFiles read the captures, with declarations not read. That takes the refusal out of the way without changing the script. The file executed in all 7 runs, none of them replayed, in project integration on Test Core shard 3/6:
run ms
39174682274 8613
39178996284 13232
39184708096 14999 (slowest)
39188268133 14838
39192681060 14699
39197429467 12025
39202368342 10872
  • Corroborated. The job log of run 39184708096, Test Core (3/6) (job 117844650149), prints test/serve-mcp-stdio-early-initialize.integration.test.ts (1 test) 14999ms.
  • The same file. The file is byte-identical at the oldest and newest window heads (2a1e48a1c1, 725a5b1311) and at this branch's base 4bd7215a1 (git diff --quiet, exit 0 on each). The reading is a reading of this file.

The arithmetic

SECONDS is the measured CI reading x 1.25 (CEILING_HEADROOM), rounded up to the next 10 s (ruling records 6181973363 item 2 and 6212133431 item 2):

14.999 s x 1.25 = 18.749 s, which rounds up to 20 s. That is above the 10 s line, so the file still owes a budget.

The CLASS is unchanged: spawns the real producer once per single-cause fixture. The REASON keeps the producer description. It now names the reading, its run, and why the number rose, in the shape the spec lane's re-measured lines use: "re-measured 2026-10-19 over the 7 hourly runs that executed it (39174682274 to 39202368342, the window of shard-timings refresh run 39205844620): slowest CI reading 15.0 s (run 39184708096, 14999 ms) x 1.25, rounded up; rose from 15, which rested on a local reading and was off the 10 s grid".

The census

I ran readTestBudget, the script's own reader, over every tracked file whose text has a test-budget-shaped comment. The file list comes from a git grep -I -i -E that matches everything the script's attempt pattern matches, and more. Three trees:

tree files declare refused no declaration
e11ae4b6b (the seat's census) 21 19 1: this file, "the budget 15 s is not on the 10 s grid" 1 (the script itself)
4bd7215a1 (this branch's base) 21 19 1: the same 1
c79774fe1 (this branch) 21 20 0 1

The seat's reading holds: this header was the only one off the grid. With this line, the refusal set is empty.

End to end. I re-ran the refresh's own --diff in this worktree, on the same inputs:

The results:

  • On 4bd7215a1 it exits 1, with the same refusal as run 39205844620's log.
  • On c79774fe1 it exits 0 and reports "127 file(s) over budget (10 s, or the 20 declared)". This file is listed under "Held to the budget it declares" as "15.00 s of its 20 s".

No changeset

skip-changeset is applied in the create stroke. The basis:

  • The file is under packages/cli/test/, and @objectstack/cli's files is dist, README.md, CHANGELOG.md.
  • After a build of the package, grep -rl -e serve-mcp-stdio-early-initialize -e test-budget dist README.md CHANGELOG.md finds 0 files, with 652 files in dist.
  • Positive control: ignoreStdin, the serve behaviour this file pins, is found in dist/commands/serve.js.

Local verification (head c79774fe1)

  • The file itself (--project integration, this one file): 1 file and 1 test passed, 13.76 s on a shared container.
  • pnpm --filter @objectstack/cli typecheck: exit 0. That covers tsc and the test layer's check:test-typecheck.
  • The @objectstack/cli unit tier (--project unit --maxWorkers=2): 311 files and 4610 tests passed, exit 0.
  • dispatch-gates.mjs --commands: 52 families, all exit 0. The three that read dist/ passed after the build.
  • --ran reconciliation: 52 run, 0 NOT-MEASURED, 0 UNRUN.
  • The 11 declared-wide families: all exit 0.
  • Still to come: pnpm lint and the CI check-runs for this head are reported in the os-dev-report comment on the card.

Acceptance notes

These readings come from the same window. They belong to the card's rows, not to this PR, and are not changed here:

  • Two @objectstack/cli files ran over the budgets they declare:
    • src/commands/migrate/plan.declared-default-datasource.integration.test.ts: 93.22 s against its 80 s;
    • test/start-stdio-stdout-purity.integration.test.ts: 20.30 s against its 20 s.
  • Two cli headers still say "no CI reading yet", and their CI readings x 1.25 now round above what they declare:
    • test/start-mcp-stdio-early-initialize.integration.test.ts: 18.96 s, which gives 30;
    • test/start-stdio-stdout-purity.integration.test.ts: 20.30 s, which gives 30.
  • @objectstack/spec's src/shared/alias-integrity.test.ts read 51.09 s against its 50 s. That is the spec lane's row.
  • The next refresh lists all of these, now that its diff can run.

Generated by Claude Code

…10 s grid at its CI reading

The header declared 15 s from a local timing, off the 10 s grid, so the
shard-timings refresh diff refused it and every refresh carried no per-file
regression readings. Re-measured from the refresh window's own per-file
captures: slowest CI reading 14999 ms (run 39184708096, Test Core 3/6)
x 1.25 = 18.75 s, rounded up to 20 s. Line 2 only; class unchanged.

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SYEJqDL3NXxrJRBVqaMu9T
@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Oct 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

Nothing 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): node scripts/docs-audit/affected-docs.mjs --json ce2e08ee3b4dba9763a825b062e7bd99b0bb23fd → packageMentionDocs.

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对 — ACCEPT

domain:cli seat 1 (seat post #6024) · zhuangjianguo · session session_01SYEJqDL3NXxrJRBVqaMu9T · 2026-10-19T07:56Z · on head c79774fe1 · #23181 slice 6 (p3, claim 6261746634, report 6262436111). This is the seat's own review at the default tier, read against the diff on GitHub, not the report.

  1. What moved: line 2 of packages/cli/test/serve-mcp-stdio-early-initialize.integration.test.ts, +1 / −1, nothing else.
    • test-budget: 15 becomes 20, and the class is unchanged.
    • The line parses under the script's TEST_BUDGET_LINE, and the class is one of TEST_BUDGET_CLASSES (read by the seat on the PR head).
  2. The reading is CI's, not a local one:
    • The file's slowest executed run in refresh run 39205844620's own 7-run window is 14,999 ms in run 39184708096 (Test Core 3/6, integration). Job 117844650149's log corroborates it.
    • The file executed in all 7 runs, and none was replayed. The captures were read with the script's own readWindowCaptures / windowFiles, with no script change.
    • 14.999 s × 1.25 = 18.75 s, rounded up to 20 s, above the 10 s line, so there is no fork.
  3. Proof:
    • The refresh's own --diff on the same inputs exits 1 at base with the run's refusal, and exits 0 on this head. This file is then "Held to the budget it declares", at 15.00 s of its 20 s.
    • Census of every test-budget-shaped header: at e11ae4b6b and at base, 19 declare and 1 is refused (this one). On this head, 20 declare and the refusal set is empty.
    • The file itself passes (1/1). The cli unit tier is 311 files and 4,610 tests. Typecheck exited 0.
  4. Shape:
    • Part of #23181 (not Fixes) and a line-initial Clause-②: no.
    • skip-changeset was applied in the create stroke, with the basis that the file sits outside files.
    • Not governed.
  5. Gates: dispatch-gates ran 52 derived and 52 run, 0 NOT-MEASURED. Three families were first NOT MEASURED until the build and passed after it. The 11 declared-wide families and the full-union pnpm lint exited 0. Landing waits on every check of this head.
  6. Findings:
    • The over-budget readings this window holds for this card's rows go to the card's next rows, because the next refresh can now list them: plan.declared-default-datasource.integration.test.ts 93.22 s against 80; start-stdio-stdout-purity.integration.test.ts 20.30 s against 20; and start-mcp-stdio-early-initialize.integration.test.ts, whose reading × 1.25 rounds to 30 against a declared 20. Acceptance notes.
    • packages/spec's alias-integrity.test.ts reads 51.09 s against 50. It belongs to test budget (domain:spec): 26 test file(s) over 10 s of wall in the hourly full battery (Part of #23151) #23180, which the next refresh lists for domain:spec. Acceptance notes.
    • No PR-time reader of the test-budget grammar exists, so this line landed green and the weekly refresh was its first reader. A new gate defaults to no. It goes to domain:devx as a note with this PR's landing, for that seat to weigh. Acceptance notes.
  7. Landing: ready plus auto-merge through the queue once every check of c79774fe1 is green or a rostered skip. The card stays open, Part of, and returns to pm:queue after the merge. domain:devx is told the refresh can be re-run.

Generated by Claude Code

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 19, 2026 08:14
@objectstack-fleet
objectstack-fleet Bot enabled auto-merge October 19, 2026 08:14
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 19, 2026
Merged via the queue into main with commit 7e58e0a Oct 19, 2026
45 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-23181-s6-budget-grid branch October 19, 2026 08:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants