diff --git a/fktry/src/audio/compliance.test.ts b/fktry/src/audio/compliance.test.ts index 2f8700b..a635559 100644 --- a/fktry/src/audio/compliance.test.ts +++ b/fktry/src/audio/compliance.test.ts @@ -14,7 +14,7 @@ import { COMPLIANCE_HZ, RATIFY_TRIAD } from './sfx'; function unit( id: number, - phase: string, + phase: CorrectionUnit['phase'], // v9.1: the union is pinned now — a typo'd phase fails here kind: CorrectionUnit['kind'] = 'checksum-warden', ): CorrectionUnit { return { id, kind, pos: { x: 0, y: 0 }, phase, progress: 0 }; diff --git a/fktry/src/contracts.ts b/fktry/src/contracts.ts index 9b8a68d..f8309e3 100644 --- a/fktry/src/contracts.ts +++ b/fktry/src/contracts.ts @@ -168,7 +168,11 @@ export interface CorrectionUnit { pos: Vec2; /** v9.1 PINNED (SCREEN string-matches this; a free string was a silent-miss trap): * the full lifecycle vocabulary. SIM: request additions via NOTES, never invent. */ - phase: 'approach' | 'audit' | 'tether' | 'prescan' | 'stasis' | 'leaving'; + phase: 'notice' | 'approach' | 'audit' | 'tether' | 'prescan' | 'stasis' | 'leaving'; + // 'notice' = the mandated gap between the fax and the act — the unit exists, + // is visible on approach vectors, but has not begun. (Added v9.1 when the pin + // caught SIM's in-flight code already using it — the union earned its keep in + // its first ten minutes.) progress: number; // 0..1 of current phase target?: number; // warden: audited entity; gunship: the PARITY ANCHOR rect?: { x: number; y: number; w: number; h: number }; // gunship sector / auditor stasis