[orchestrator] v9.1 addendum: 'notice' joins the phase union; type SCREEN's fixture

The pin caught SIM's in-flight code using a 'notice' phase within ten minutes of
landing - the mandated gap between the fax and the act is a real lifecycle state
the original six missed. SCREEN's test fixture takes CorrectionUnit['phase'] now,
so a typo'd phase fails at compile instead of silently never matching.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
type-two 2026-07-29 12:41:28 +10:00
parent 074ba17ab4
commit b002e68b5a
2 changed files with 6 additions and 2 deletions

View File

@ -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 };

View File

@ -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