- 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