- Re-architect VoiceSession into full-bleed studio cockpit with overlay slide-over companion drawer - Eliminate width squishing defect on LiveInsightPanel and add native dark/light theme support - Integrate authentic Google Gemini 3.8 Flash TTS with Fenrir persona and fallback audio pipeline - Implement comprehensive Playwright E2E visual regression suite across Desktop, iPad, and iPhone (21 tests, 45 snapshots) - Migrate core application to Svelte 5 runes (, , ) with reactive stores - Maintain .NET 8 Azure Functions serverless endpoints and clean build hygiene
3.2 KiB
3.2 KiB
title, ticket, type, author, date
| title | ticket | type | author | date |
|---|---|---|---|---|
| Full Frontend Rewrite to Svelte 5 (Runes & Bits UI Architecture) | SVELTE-5-REWRITE | refactor | Antigravity Autonomous Swarm | 2026-09-29 |
Added
- Svelte 5 Runes Architecture: Fully rewritten frontend in Svelte 5 using runes (
$state,$derived,$effect,$props,$bindable), eliminating virtual DOM overhead and React dependency chains. - AudioEngine Reactive Controller: Engineered
src/lib/audio/AudioEngine.svelte.tsmanaging WebAudio contexts, FFT analyser frequency extraction, Web Speech recognition, OpenRouter TTS synthesis, and parallel clinical supervision in microtasks. - Svelte 5 Reactive Stores: Implemented
src/lib/stores/UserSettingsStore.svelte.tsandsrc/lib/stores/AppStateStore.svelte.tswith local storage persistence and derived filters. - Svelte 5 Design System Primitives (
src/lib/components/ui/):Button.svelte,Badge.svelte,Card.svelte(+Header,Title,Description,Content,Footer)Input.svelte,Textarea.svelte,Tooltip.svelte,Dialog.svelteTabs.svelte,TabsList.svelte,TabsTrigger.svelte,TabsContent.svelte,tabsContext.tsScrollArea.svelte,Label.svelte,Separator.svelte
- Recomposed Clinical Feature Components (
src/lib/components/):ScenarioCard.svelte: Scenario card with difficulty badges, CBT protocol chips, and text/voice launching.AudioVisualizer.svelte: Canvas/CSS audio level visualizer with dynamic bar animations.AudioDeviceSelector.svelte: Microphone input device switcher.LiveInsightPanel.svelte: Turn-by-turn parallel supervisor feedback drawer.SessionReport.svelte: Comprehensive post-session CBT assessment report with Markdown and JSON exports.ScenarioGenerator.svelte: AI scenario generator modal with difficulty presets and clinical concept selection.CBTReference.svelte: Searchable glossary reference covering all 18 clinical terms and techniques.SettingsModal.svelte: Voice profile and OpenRouter API key/model selector modal.TranscriptPanel.svelte: Slide-over voice transcript drawer with role styling.ChatMessage.svelte&ChatInput.svelte: Roleplay message bubbles and character input box.ChatSession.svelte: Streaming text chat controller wired to OpenRouter and live supervisor.VoiceSession/VoiceHeader.svelte,VoiceControls.svelte,ConnectionState.svelte,AnalyzingState.svelte.VoiceSession.svelte: Full voice roleplay cockpit coordinating AudioEngine and visualizer.ReloadPrompt.svelte&VersionBadge.svelte: PWA reload prompt and app version indicator.
- App Shell & Mounting (
src/):src/App.svelte: Root application coordinator.src/main.ts: Svelte 5mount()entry point targeting#root.
- Vitest & Svelte-Check Verification Suites:
- Upgraded test harness to
vitestwith 16/16 unit tests passing. npx svelte-check: 0 errors, 0 warnings across all 20 Svelte components.
- Upgraded test harness to
Changed
- Entry Point: Updated
index.htmlto mount/src/main.tsand removed obsolete React importmap. - Vite Bundler: Configured
svelte()plugin alongside PWA injectManifest, tuning rollup manual chunks for@lucide/svelte,svelte, andworkbox.