- Cards appear at segment end time (when phrase is spoken, not start)
- Markdown **bold** converted to <strong> via md() helper
- Video only shows in Playback panel after Process completes
- Cards display: max 3 per non-tracked type (newest on top), tracked accumulates
- Onboarding calls /summarize LLM endpoint on Begin (summary + keywords)
- Session shows LLM-generated summary + keyword pills in profile card
- Fix: JS crash from DOM access before DOMContentLoaded
- Play/pause icon toggle on transport bar
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add session page with video processing + real-time insights
Zheng, Zaoyi+1: Claude Opus 4.6
e80d8fd
- Flask backend: /session route, /process endpoint, /transcribe endpoint
- LLM-powered situation summarization via summarize_situation()
- Session page: Ken design system (warm paper, Instrument Serif)
- Video upload + playback with transport controls
- Play/pause icon toggle, scrub bar with colored insight markers
- Time-synced card reveal as video plays
- 4 card types: Jargon, Impact, Question (with suggested ask), Tracked (todo)
- Tracked cards have checkboxes that fade on complete
- Filter pills (All/Jargon/Impact/Questions/Tracked)
- Debug panel with collapsible raw JSON
- Fix: moved DOM access into DOMContentLoaded to prevent script crash
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rebrand: Lexis → Ken
Zheng, Zaoyi+1: Claude Sonnet 4.5
6323db7
- Rename all references from Lexis to Ken
- Switch from Gradio to Flask + native HTML/CSS
- Implement Ken design system (Instrument Serif, paper texture, #f4ece0)
- Full vanilla JS implementation, no React dependencies
- Pixel-perfect recreation of claude.ai/design export
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>