- Convert to React Flow with one persistent instance and edge labels
- Reset roving focus when focusPath changes to prevent stale tabIndex
- Export NODE_WIDTH/NODE_HEIGHT from layout module to prevent drift
- Change kindLabel to Record<FigureNodeKind, string> for compile safety
- Remove redundant role='button' from native button element
- Remove all unsafe non-null assertions in storyboard-navigation
- DiscussionPanel: update MCP link to anthropic.com/engineering/code-execution-with-mcp
- DiscussionPanel: update Cloudflare link to blog.cloudflare.com/code-mode-mcp/
- Add DiscussionPanel.test.tsx covering title, badge, onClose, hosted-automation
detail, and mcp-agent-scale link targets
- DiscussionPanel: relabel MCP link to 'Anthropic MCP' for accuracy
- close_overlay now sets evidenceModeOverride to 'hidden' instead of
clearing it, preventing beat-default evidence from reopening on
repeated Escape; only 'reset overrides' clears it
- Add regression test for repeated Escape after force-close
- Update existing overlay-priority tests for new 'hidden' semantics
- F1: Preload replayEvidence on mount so evidence drawer shows records in replay mode
- F2: close_overlay forces evidenceModeOverride to hidden when beat-default is open
- F3: Add CSS transitions (opacity, scale, border, background) for beat-driven elements
- F4: Fix planned time from 20 to 15 minutes for defense presentation
- F5: Fix stale speaker notes by keying textarea on beat.id
- F6: Lazy-initialize startedAt via useReducer initializer instead of module-level Date.now()
- F7: Fix MCP evidence pointer to Anthropic + Cloudflare
- S1: Remove global html/body overflow:hidden; scope to .presentation-route
- S2+P1: Add CSS selectors for data-stage-theme, data-chat-theme, data-chat-mode
- S3: Add distinct visual treatments per SceneView type (positioning, boundary, lifecycle, architecture, authoring, evaluation)
- S4+P2: Move discussion index to reducer state; Escape closes all overlays; remove miswired button
- P3: Add 8 missing Q&A discussion branches across lifecycle, authoring, architecture, evaluation, workflow-demo
- P4: Force replay now restores replay evidence
- P5: Add scene progress display and scene reset to presenter controls
- P6: Fix default dock mode to use composition.chatMode
- P7: Wrap decodeURIComponent in try-catch for malformed hashes