SMOKESCREEN (v6.0 "Orchestrator Edition") stable. High-fidelity incident theatre simulation. Core loop (Onboarding -> Declare -> Resolve) functional.
- Deconstructed God Hook:
useIncidentStatesplit into domain hooks (useOnboarding,useChaosEvents). - Audio Engine Refactor: Manual pooling replaced by unified
AudioEngineutility. - Store Refactor: Complex logic (node healing, slow-burn) and Gemini API calls extracted to
incidentServiceandreportService. - Test Coverage: Added unit tests for
ChatPane,OutageMap,SystemLog,DeploymentStatus, and core hooks (useSync,useClientStats). - Dead Code Purge: Removed unused components (
AccessDenied) and redundant logic.
- Timer Race Conditions:
useIncidentStateanduseIncidentChatuse rawsetInterval. Risk of stale closures. Needs robust sync. - OutageMap Scaling: SVG dimensions (2754x1398) hardcoded. Coordinate mapping needs dynamic viewport calculation.
- Chat Logic Coupling:
IntersectionObserverlogic for unread tracking insideChatPane. Extract touseUnreadTrackerhook.
- Fix Timers: Migrate
setIntervalto synchronized tick system oruseIntervalhook. - Dynamic Map: Implement coordinate scaling in
OutageMapfor varied screen sizes. - Store Refactor: Extract node management logic from Zustand into dedicated utilities.
- Expand Tests: Target
useWindowManageranduseTerminalfor next test suite.
- BEM: Strictly follow BEM for SCSS.
- No Globals: Use context/Zustand for state. No global window variables.
- Type Safety: Zero
any. Use interfaces insrc/contexts/types.ts. - Session State: All UI state persists locally in user sessions (no query parameter syncing).
Generated: 2026-05-12