diff --git a/packages/mosaic/src/commands/install-ordering-guard.spec.ts b/packages/mosaic/src/commands/install-ordering-guard.spec.ts index 1b935efe..184915d0 100644 --- a/packages/mosaic/src/commands/install-ordering-guard.spec.ts +++ b/packages/mosaic/src/commands/install-ordering-guard.spec.ts @@ -201,10 +201,34 @@ describe('guardClaudeSettingsWiring', () => { // red-first). Instead it proves the wiring is genuinely delegated: the // no-deps call must agree with an explicit call to the same real // predicate, not some other hardcoded value. - const reallyActivatable = leaseEnforcementActivatable(); - const outcome = guardClaudeSettingsWiring(fixtureJson()); + // + // The predicate is observed on BOTH sides of the guard call because it is + // not deterministic under load. `defaultCapabilityProbe` executes + // `dist/cli.js` out-of-process with a 2s timeout; in a full-package run + // with every spec file scheduled at once, one observation can beat that + // timeout while the next does not. Comparing a single before-observation + // against the guard's own internal call therefore failed intermittently + // in the full suite while passing in isolation — the test was reporting + // machine load as a wiring defect. + // + // So the guard call is bracketed by two observations and only a pair that + // agrees is used as ground truth. A disagreeing pair proves the + // environment moved mid-test rather than that the wiring is wrong, and is + // retried. This does not weaken the assertion: a delegation failure is + // stable and survives every attempt, while load noise does not. Three + // attempts that never hold still is itself a failure, so an environment + // that is permanently unstable is reported rather than skipped. + let before = false; + let outcome: ReturnType | undefined; + for (let attempt = 0; attempt < 3 && outcome === undefined; attempt += 1) { + before = leaseEnforcementActivatable(); + const candidate = guardClaudeSettingsWiring(fixtureJson()); + if (leaseEnforcementActivatable() === before) outcome = candidate; + } + expect(outcome, 'activation probe never held still across three attempts').toBeDefined(); + if (outcome === undefined) return; - if (reallyActivatable) { + if (before) { expect(outcome.exitCode).toBe(0); expect(outcome.wired).toBe(true); } else { diff --git a/packages/mosaic/src/commands/launch.ts b/packages/mosaic/src/commands/launch.ts index 62cde72e..82d2a687 100644 --- a/packages/mosaic/src/commands/launch.ts +++ b/packages/mosaic/src/commands/launch.ts @@ -1172,7 +1172,6 @@ interface RuntimeLaunchContext { readonly runtimeCheck?: (runtime: RuntimeName) => void; /** Test seam: receives the fully composed final runtime invocation. */ readonly finalExecutor?: (runtime: RuntimeName, args: string[], env: NodeJS.ProcessEnv) => void; - readonly recordLaunch?: boolean; } function minimalLaunchEnv(declared: Readonly>): NodeJS.ProcessEnv { @@ -1295,8 +1294,7 @@ function launchRuntime( cliArgs.push(...args); } console.log(`[mosaic] Launching ${label}${modeStr}${missionStr}...`); - if (context.recordLaunch !== false) - recordLaunch('claude', cliArgs, yolo, context.fleet, launchEnv); + recordLaunch('claude', cliArgs, yolo, context.fleet, launchEnv); if (process.env['MOSAIC_LAUNCH_ID']) { launchEnv['MOSAIC_LAUNCH_ID'] = process.env['MOSAIC_LAUNCH_ID']; }