Spaces:
Sleeping
Sleeping
Commit History
-
Revert implicit flowType — use PKCE so Supabase exchanges code server-side
With flowType implicit, Supabase set our extension URL as Google's redirect_uri directly, meaning we received a raw Google auth code that can't be exchanged client-side. With PKCE (default), Supabase handles the exchange via its own callback and redirects to our extension URL with a Supabase-issued code that exchangeCodeForSession can handle. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>28baf74 -
Fix Google OAuth in Chrome extension: implicit flow + PKCE fallback
- Set flowType:'implicit' in Supabase client so tokens come in the URL hash, which is what launchWebAuthFlow captures (PKCE sends a code that requires a server-side exchange, not usable in an extension callback) - Handle both implicit (hash access_token) and PKCE (query code) in callback so it works regardless of Supabase project settings Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>254e7f6
-
Major feature update: Google Meet recording, cumulative mirror feed, UX overhaul
Backend: - Fix talk ratio inflation for multi-speaker Google Meet calls (use all_other_segs) - Add user_perspective field to InsightGenerator — user now feels personally seen - Mirror feed is now cumulative: items persist, evolve, and grow across sessions (v4) - Expose per-speaker WPM timeline in /api/sessions for history chart - Bump _MF_VERSION to 4 to force feed regeneration with new cumulative logic Frontend: - Google Meet WebRTC recording: content-meet.js + meet-webrtc-injector.js + offscreen audio pipeline - Speaker timeline chart in History tab (who spoke when, WPM per participant) - ProfileView: Portrait section moved above Mirror Feed (it's the centrepiece) - ProfileView: Recurring Themes section added (coaching areas flagged across sessions) - ResultsView: Summary tab removed, summary_sentence block removed - ResultsView: "Your Perspective" section added (user_perspective from InsightGenerator) - ResultsView: Visual 3-segment talk split bar (You / Others / Silence) - Results…5748a9d
-
Profile intelligence, context-aware baselines, and Mirror Feed
Core additions: - Personality synthesis with paragraph + 5 scored dimensions (PersonalitySynthesizer) - Context-specific baselines: population norms per context type → personal context average once 3+ same-context sessions exist. Eliminates false-positive coaching (e.g. high talk ratio in evaluative contexts no longer flagged as domination) - Mirror Feed: per-session highlight feed on profile page, collapsed with peek effect - Reflect tab: pre-computed session Q&A (generate_reflection_questions) - Transcript quotes extracted and passed to profile synthesis for grounded narratives - Onboarding flow (3-step, localStorage gated) - Session delta: flags dimension score changes ≥8pts after each new session - Blind spots: top 3 context gaps the mirror hasn't seen - Profile completeness bar with depth label - Context detector pipeline stage (ContextDetector via Groq) - Voice enrollment UI (EnrollView) with 1–3 round recording - Auth UI (AuthView), Supabase client, API client - SSE-based pr…d4c6e81