Skip to content

Commit ce00908

Browse files
test(cli): move the audit-mail-bodies archive test budget onto the 10 s grid (#25492)
<!-- claude-projects-attribution: {"github_login":"os-sales"} --> _Requested by **Sales** · [project thread](https://claude.ai/code/project/chan_01D5bWFY3rFzgJcytD5gD4Uu?thread=cmsg_01D5bWFY3rFzgJcytD5gD4UuACdPWFJTLDcTrByFCHLzqb)_ 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.com/claude-code) https://claude.ai/code/session_016g7nYP9wdNx1GDa5XDr7Uy Co-authored-by: Claude <noreply@anthropic.com>
1 parent 5497d4a commit ce00908

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

‎packages/cli/src/commands/migrate/audit-mail-bodies.archive.integration.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.
2-
// test-budget: 85 — spawns the real producer once per single-cause fixture: two served-shape boots that run the real Archiver, and six spawns of the source CLI (dry run, --apply, re-run over the archive fixture; --apply on a project with no archive; a dry run with a runtime archive row; --apply with a declared archive that cannot connect); 67.8 s, the slower of two local runs on a shared container, x 1.25, no CI reading yet
2+
// test-budget: 90 — spawns the real producer once per single-cause fixture: two served-shape boots that run the real Archiver, and six spawns of the source CLI (dry run, --apply, re-run over the archive fixture; --apply on a project with no archive; a dry run with a runtime archive row; --apply with a declared archive that cannot connect); 67.8 s, the slower of two local runs on a shared container, x 1.25, no CI reading yet
33

44
/**
55
* [#24899] `os migrate audit-mail-bodies` masks the mail-log bodies the

0 commit comments

Comments
 (0)