feat(ui): redesign voice cockpit with clinical companion drawer, Svelte 5 migration, and Gemini 3.8 voice

- 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
This commit is contained in:
jpremill committed 2026-09-29 23:35:05 -04:00
1 parent c82b112624
commit 1feea40684
148 files changed
+11230 -1706

No files matched your search

+37
View File
@@ -0,0 +1,37 @@
/**
* Headless CBT Session Simulation Helper
*
* Simulates a multi-turn roleplay dialogue with clinical turn-by-turn evaluation
* to test prompt behaviors and scoring rubrics.
*/
import { SCENARIOS, SYSTEM_ANALYSIS_PROMPT } from '../constants';
interface SimulatedTurn {
role: 'user' | 'model';
text: string;
}
export function generateMockDialogue(): SimulatedTurn[] {
const scenario = SCENARIOS[0]; // Workplace Critical Review
return [
{ role: 'model', text: scenario.initialMessage },
{
role: 'user',
text: "I hear that you're concerned about the deployment delay, Marcus. I want to look at the root cause together so we can fix the pipeline rather than rush into another failure."
},
{
role: 'model',
text: "Look, root causes don't satisfy the board. But fine—walk me through why the rollback happened and what you're doing right now to secure the release."
},
{
role: 'user',
text: "The schema migration failed because of a missing index under high load. We've added the migration lock and tested it on staging. I will personally supervise the maintenance window at 8 PM."
}
];
}
console.log('🧪 CBT Simulation Test Harness initialized.');
console.log(`Loaded scenario: "${SCENARIOS[0].title}"`);
console.log('Mock dialogue generated for test runs:');
console.log(JSON.stringify(generateMockDialogue(), null, 2));