diff --git a/packages/verify/src/dashboard-window.test.ts b/packages/verify/src/dashboard-window.test.ts index bf112f8057b..ea10cea76c7 100644 --- a/packages/verify/src/dashboard-window.test.ts +++ b/packages/verify/src/dashboard-window.test.ts @@ -1,4 +1,5 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. +// test-budget: 100 — spawns the real producer once per single-cause fixture: four in-process boots of the real stack (the fixture app, the drop and zero negative-control apps, the day-turn app), each running the family's proofs once on a frozen clock; slowest CI reading 73.29 s (run 40200279306, refresh PR #25960's window (hourly runs 40200279306 to 40272142430)) x 1.25, rounded up; read before this file paid its first boot at module scope // // The dashboard date-window family — what it reads from the metadata, what it // proves on a real stack, and the controls that keep its green honest: @@ -32,6 +33,7 @@ import { defineStack } from '@objectstack/spec'; import { DATE_RANGE_PRESETS } from '@objectstack/spec/data'; import { bootStack, type VerifyStack } from './harness.js'; +import { warmUpBoot } from './boot-warm-up.testkit.js'; import { deriveDashboardWindowCases, runDashboardWindowProofs, @@ -39,6 +41,11 @@ import { type DashboardWindowReport, } from './dashboard-window.js'; +// The boot's first load, paid during collection rather than in the first +// case's clock (see `boot-warm-up.testkit.ts`). The first boot below uses the +// default options. +await warmUpBoot(); + // Booting the full in-process stack runs well past vitest's 5s default. const BOOT_TIMEOUT = 120_000; const RUN_TIMEOUT = 240_000; diff --git a/packages/verify/src/harness.one-composition.test.ts b/packages/verify/src/harness.one-composition.test.ts index 547c352083c..424d525ac2c 100644 --- a/packages/verify/src/harness.one-composition.test.ts +++ b/packages/verify/src/harness.one-composition.test.ts @@ -1,4 +1,5 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. +// test-budget: 30 — spawns the real producer once per single-cause fixture: each case boots the real stack as its own subject (the instance rule, a re-boot, a refused boot), the first load paid at module scope; slowest CI reading 17.89 s (run 40200279306, refresh PR #25960's window (hourly runs 40200279306 to 40272142430)) x 1.25, rounded up /** * #22301 item 1, ruling A — ONE composition rule: for one configuration, diff --git a/packages/verify/src/harness.required-providers.test.ts b/packages/verify/src/harness.required-providers.test.ts index 568d83e084a..8d6b9326ed0 100644 --- a/packages/verify/src/harness.required-providers.test.ts +++ b/packages/verify/src/harness.required-providers.test.ts @@ -29,6 +29,12 @@ import { afterEach, describe, expect, it } from 'vitest'; import { CAPABILITY_PROVIDERS } from '@objectstack/core'; import { composeStacks, defineStack } from '@objectstack/spec'; import { bootStack, type VerifyStack } from './harness.js'; +import { warmUpBoot } from './boot-warm-up.testkit.js'; + +// The boot's first load, paid during collection rather than in the first +// case's clock (see `boot-warm-up.testkit.ts`). The first boot below requires +// `approvals`, so its provider is loaded here too. +await warmUpBoot({}, { requires: ['approvals'] }); const APPROVALS = 'com.objectstack.service.approvals'; const REALTIME = 'com.objectstack.service.realtime'; diff --git a/packages/verify/src/held-session-vendor-admin-doors.pin.test.ts b/packages/verify/src/held-session-vendor-admin-doors.pin.test.ts index 60e8b57e712..5741dfa690a 100644 --- a/packages/verify/src/held-session-vendor-admin-doors.pin.test.ts +++ b/packages/verify/src/held-session-vendor-admin-doors.pin.test.ts @@ -1,4 +1,5 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. +// test-budget: 50 — spawns the real producer once per single-cause fixture: one in-process boot of the real stack with SCIM and SSO on, then sign-ins per door under each held state armed in turn; slowest CI reading 32.65 s (run 40200279306, refresh PR #25960's window (hourly runs 40200279306 to 40272142430)) x 1.25, rounded up /** * ADR-0069 D3 at the platform-admin doors better-auth serves itself, on a real diff --git a/packages/verify/src/parent-write-reach.test.ts b/packages/verify/src/parent-write-reach.test.ts index 1d59294fa43..dbd50c76ff9 100644 --- a/packages/verify/src/parent-write-reach.test.ts +++ b/packages/verify/src/parent-write-reach.test.ts @@ -1,4 +1,5 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. +// test-budget: 80 — spawns the real producer once per single-cause fixture: three in-process boots of the real stack (the fixture app and the negative and attribution controls under parentWriteReachSecurity, and one without it), each running the family's proofs once; slowest CI reading 63.34 s (run 40200279306, refresh PR #25960's window (hourly runs 40200279306 to 40272142430)) x 1.25, rounded up; read before this file paid its first boot at module scope // // The parent-derived write reach family — what it reads from the metadata, // what it proves on a real stack, and the controls that keep its green honest: @@ -21,6 +22,7 @@ import { describe, it, expect, beforeAll, afterAll } from 'vitest'; import { defineStack } from '@objectstack/spec'; import { bootStack, type VerifyStack } from './harness.js'; +import { warmUpBoot } from './boot-warm-up.testkit.js'; import { deriveParentWriteReachCases, runParentWriteReachProofs, @@ -29,6 +31,11 @@ import { type ParentWriteReachReport, } from './parent-write-reach.js'; +// The boot's first load, paid during collection rather than in the first +// case's clock (see `boot-warm-up.testkit.ts`). The boots below differ only in +// their app and its security source, which the warm-up does not share. +await warmUpBoot(); + // Booting the full in-process stack runs well past vitest's 5s default. const BOOT_TIMEOUT = 120_000; const RUN_TIMEOUT = 180_000; diff --git a/packages/verify/src/unique-scope.test.ts b/packages/verify/src/unique-scope.test.ts index 3715a8476e3..97878f3e9de 100644 --- a/packages/verify/src/unique-scope.test.ts +++ b/packages/verify/src/unique-scope.test.ts @@ -1,4 +1,5 @@ // Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license. +// test-budget: 80 — spawns the real producer once per single-cause fixture: eight in-process boots of the real stack over six fixtures (single-posture, walled, the within control and the indexes[] attribution control that each plant then re-open one database file, the across control, the attribution control), each running the family's proofs once; slowest CI reading 61.38 s (run 40200279306, refresh PR #25960's window (hourly runs 40200279306 to 40272142430)) x 1.25, rounded up; read before this file paid its first boot at module scope // // The unique-scope family — what it reads from the metadata, what it proves on // a real stack, and the controls that keep its green honest: @@ -31,6 +32,7 @@ import { join } from 'node:path'; import { defineStack } from '@objectstack/spec'; import { bootStack, type VerifyStack } from './harness.js'; +import { warmUpBoot } from './boot-warm-up.testkit.js'; import { deriveUniqueScopeCases, runUniqueScopeProofs, @@ -38,6 +40,11 @@ import { type UniqueScopeReport, } from './unique-scope.js'; +// The boot's first load, paid during collection rather than in the first +// case's clock (see `boot-warm-up.testkit.ts`). The first boot below uses the +// default options. +await warmUpBoot(); + // Booting the full in-process stack runs well past vitest's 5s default. const BOOT_TIMEOUT = 120_000; const RUN_TIMEOUT = 180_000;