Skip to content

Conversation

@jhodapp
Copy link
Member

@jhodapp jhodapp commented Dec 24, 2025

Summary

Frontend components for the AI-powered meeting recording integration, enabling coaches and coachees to manage recordings, view transcripts, and review AI-extracted action items.

Key Features

  • Settings Page: Integration configuration with Recall.ai API key management
  • Privacy Controls: Dual AI privacy level settings for coach and coachee
  • Session Transcript Tab: View transcribed meeting content with speaker diarization
  • AI Suggestions Panel: Review and accept/dismiss AI-extracted action items
  • Session Summary: AI-generated meeting summary display
  • Manual Extraction: Trigger LeMUR extraction from the UI

UI/UX Improvements

  • Session selector moved to site header for better navigation
  • Green status indicator on Transcript tab when transcript is available
  • Tab order optimized: Notes → Agreements → Actions → Summary → Transcript
  • Null-safe handling for optional due_by dates in actions list

Test Plan

  • Verify settings page displays and saves integration configuration
  • Test privacy level controls for both coach and coachee roles
  • Confirm transcript tab shows content with speaker labels
  • Test AI suggestions accept/dismiss workflow
  • Verify session summary displays correctly
  • Test manual extraction button triggers backend API

…on (Phase 2)

Add settings infrastructure for coach integration configuration and
per-relationship AI privacy settings:

Settings Page:
- Add /settings route with layout matching existing app structure
- SettingsContainer with Integrations and Relationships tabs
- Coach-only access (coachees see informational message)

Integration Settings (coach-only):
- Google Account connection status and OAuth flow trigger
- Recall.ai API key input with save and verify functionality
- AssemblyAI API key input with save and verify functionality
- Status badges showing connection/verification state

Relationship Settings (coach-only):
- Per-coachee Google Meet URL configuration
- Per-relationship AI privacy level selection:
  - Full: All AI features (recording, transcript, suggestions)
  - Transcribe Only: Text transcription without video/audio storage
  - None: No AI features for privacy-conscious clients
- Visual privacy level selector with icons and descriptions

Type Definitions:
- Add AiPrivacyLevel enum to coaching-relationship types
- Add meeting_url and ai_privacy_level to CoachingRelationship
- Add UserIntegration types for API credentials status
- Add MeetingRecording, Transcription, TranscriptSegment types
- Add AiSuggestedItem types for AI-suggested actions/agreements

API Updates:
- Add user-integrations API module with hooks
- Implement coaching relationship update for meeting_url and ai_privacy_level
- Link Settings in user-nav dropdown

Relates to: #146
Add frontend components for the AI meeting recording and transcription feature:

API Modules:
- meeting-recordings.ts: Recording start/stop, transcript fetching with polling
- ai-suggestions.ts: Accept/dismiss AI-detected actions and agreements

Components:
- meeting-controls.tsx: Join Meet button + Start/Stop recording controls
- session-transcript.tsx: Displays transcript with segments and AI suggestions
- transcript-segment.tsx: Single utterance with speaker label and sentiment
- session-summary.tsx: AI-generated session summary with empty state
- ai-suggestions-panel.tsx: Groups AI-detected actions/agreements
- ai-suggestion-card.tsx: Accept/dismiss card for individual suggestions

Integrations:
- Added Summary tab to coaching-tabs-container (4th tab after Actions)
- Added Transcript tab to overarching-goal-container with green dot indicator
- Added MeetingControls to coaching session page header

Relates to #146
- Add polling to transcript hooks for automatic updates (5s interval)
- Fix empty POST body type (null → {} for TypeScript compatibility)
- Unify user integrations API to single endpoint
- Simplify meeting controls header layout
- Create HeaderSessionSelector component that only renders on coaching session pages
- Add session selector to site header (left of theme toggle and user nav)
- Remove duplicate session selector from coaching session page
- Add polling (5s interval) to useAiSuggestions hook for automatic updates
- Increase width to w-64/md:w-72/lg:w-80 for better content display
- Remove restrictive pr-2 padding that clipped dropdown arrow
- Increase chevron icon size from h-4 to h-5 for better visibility
- Add shrink-0 to prevent icon compression
- Add Extract Actions/Agreements menu items to meeting controls
- Add coachee relationship settings for privacy level consent
- Add auto-approve AI suggestions toggle to integration settings
- Display AI extraction results (actions/agreements) in session summary
- Update coaching relationship types for dual privacy levels
- Add API functions for manual LeMUR extraction endpoints
- Remove transcript tab from overarching goals container
- Add transcript tab with green status indicator to coaching tabs
- Reorder tabs: Notes, Agreements, Actions, Summary, Transcript
- Green dot shows when transcript is available (completed status)
- Replace relationship list with dropdown to select one at a time
- Coach view: Select coachee dropdown for meeting URL and AI privacy config
- Coachee view: Select coach dropdown for privacy consent settings
- Cleaner UI that scales better with many relationships
- Add 'Create Meet' button when no meeting URL is set
- Call backend API to create Google Meet via user's connected account
- Pass user_id parameter to OAuth authorize endpoint
- Add createGoogleMeet API method
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants