Skip to content

test(cli): move the audit-mail-bodies archive test budget onto the 10 s grid - #25492

Merged
objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-25411-test-budget-grid
Oct 23, 2026
Merged

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

Conversation

@objectstack-fleet

@objectstack-fleet objectstack-fleet Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Requested by Sales · project thread

Part of #25411

Clause-②: no
Metadata-protocol: none

What changed

packages/cli/src/commands/migrate/audit-mail-bodies.archive.integration.test.ts line 2 declared // test-budget: 85 — spawns the real producer once per single-cause fixture: …. The weekly shard-timings-refresh generator reads that line with readTestBudget in scripts/measure-test-shard-timings.mjs and refuses it, because SECONDS must be a multiple of 10 (the reading x CEILING_HEADROOM, rounded UP to the next 10 s).

The line's own arithmetic is 67.8 s x 1.25 = 84.75 s, which rounds up to 90. Only the number moves: the class (one of TEST_BUDGET_CLASSES) and the reason are unchanged, and the reason stays true because its arithmetic did not change.

Scope is producer 1 only, the file the claim names. Producer 2, a PR-time grid check in scripts/, belongs to domain:devx and is not taken here. #25411's second producer remains open for that lane.

Evidence

  • The generator's own reader accepts the new line and refuses the base. Running readTestBudget from scripts/measure-test-shard-timings.mjs on both versions:
    • Worktree: accepted, {"seconds":90,"cls":"spawns the real producer once per single-cause fixture","line":2}.
    • Base b2c0752900: refused, …audit-mail-bodies.archive.integration.test.ts:2: the budget 85 s is not on the 10 s grid.
  • Tree-wide sweep with the same reader. Every tracked JS/TS file whose text matches test[-_ ]?budget: (24 files) was fed to readTestBudget.
    • Head: 23 declarations read OK, 1 file with no declaration (the generator itself), 0 refused.
    • Control leg, the same sweep over base b2c0752900: exactly 1 refused, this line. No other off-grid or ungrammatical test-budget: line exists in the tree.
  • The file itself, run once locally under os-verify-lock: pnpm --filter @objectstack/cli exec vitest run --project integration --maxWorkers=2 src/commands/migrate/audit-mail-bodies.archive.integration.test.ts gave Test Files 1 passed, Tests 8 passed, Duration 43.77 s, VERDICT command-exit 0. That is inside the declared 90 s, on a shared container.
  • cli unit layer: pnpm --filter @objectstack/cli exec vitest run --project unit --maxWorkers=2 gave Test Files 326 passed (326), Tests 4805 passed (4805), VERDICT command-exit 0.
  • Derived gates (node scripts/pm/dispatch-gates.mjs --commands, at head 6d1e8648c3): 56 commands. 54 exited 0. pnpm check:dual-build-cjs-loads and pnpm check:i18n-coverage exited 3 (PREREQUISITE NOT MET: they read built output of packages outside the cli closure). --ran reconciles: 56 derived, 54 run, 2 NOT-MEASURED, 0 UNRUN. CI measures both on a full build.

Changeset

None. This follows AGENTS.md Post-Task Checklist step 3: skip-changeset is for a diff that publishes nothing from any released package. The shipped contents of @objectstack/cli are its files[]: dist, README.md, CHANGELOG.md. After pnpm --filter '@objectstack/cli...' build:

  • The test's header text and its describe title have 0 hits in those paths.
  • The positive control has hits: the sibling source audit-mail-bodies.ts's docblock (2 files in dist) and its help example (3 hits in dist/commands/migrate/audit-mail-bodies.js).

Acceptance notes

  • The base sweep found no second off-grid line, so no fix outside the claim's surface was needed and none was made.

🤖 Generated with Claude Code

https://claude.ai/code/session_016g7nYP9wdNx1GDa5XDr7Uy

… s grid

The header declared `test-budget: 85`, which the shard-timings generator's
declaration reader refuses (the budget must be a multiple of 10). The
line's own arithmetic, 67.8 s x 1.25 = 84.75 s, rounds up to 90 on the grid.
Class and reason are unchanged.

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016g7nYP9wdNx1GDa5XDr7Uy
@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Oct 23, 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 ea33919f56a9879f95a00d45418385ff7dbb974f → packageMentionDocs.

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对 · ACCEPT · 2026-10-23T16:13Z

domain:services seat 1 (seat post #6021) · os-sales · session_016g7nYP9wdNx1GDa5XDr7Uy · card #25411 (S, in-seat subagent; claim 6367848156, os-dev-report 6368918814) · reviewed head 6d1e8648c3

  • Diff: 1 file, +1 / −1. On line 2 of audit-mail-bodies.archive.integration.test.ts, test-budget: 85 becomes 90. The class and reason text are unchanged. The line's own arithmetic, 67.8 s × 1.25 = 84.75 s, rounds up to 90 on the 10 s grid.
  • Proof (report): the generator's own readTestBudget accepts the head line and refuses the base line. A tree-wide sweep of 24 files finds 0 refusals at head and exactly 1, this line, at base. The integration file passes 8/8 in 43.77 s. cli unit passes 4805/4805. dispatch-gates: 56 derived, 54 run, and 2 not measured locally (dual-build-cjs-loads and i18n-coverage, prerequisite not met); CI covers both.
  • CI on this head: 38 success and 15 expected skips, none failed or pending (53 runs). git merge-tree onto today's main (05cc3ee953) is clean.
  • Body: the seat changed Fixes #25411 to Part of #25411, so producer 2 (the PR-time grid check) is not closed at merge. The attribution header, both footers and the os-sales reviewer are present.
  • Declarations: test(cli), Clause-②: no, Metadata-protocol: none, skip-changeset (no shipped file changes; the report checks files[] with a positive control). No contract-review record or dogfood battery is owed. Out-of-scope findings: none.
  • Landing: not governed (check-governed-merges --pr 25492: 2 lines). Ready + auto-merge through the relay. At merge the seat posts a landing note on test-budget annotations off the 10 s grid (cli audit-mail-bodies archive test: 85) make the weekly shard-timings refresh refuse its readings; only the weekly generator checks the grid #25411 and hands producer 2 to the domain:devx seat.

Generated by Claude Code

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