Skip to content

Conversation

@jhodapp
Copy link
Member

@jhodapp jhodapp commented Dec 20, 2025

Description

Add settings infrastructure for coach integration configuration and per-relationship AI privacy settings. This is Phase 2 of the AI Meeting Integration feature, building on the backend foundation from Phase 1.

GitHub Issue: Relates to #146

Changes

Settings Page & Routing:

  • Add /settings route with standard app layout (sidebar, header)
  • Create SettingsContainer with tabs for Integrations and Relationships
  • Coach-only access control (coachees see informational message)
  • Link Settings in user-nav dropdown menu

Integration Settings (Coach-only):

  • Google Account connection status display with 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
  • Password-style inputs with show/hide toggle for API keys

Relationship Settings (Coach-only):

  • Per-coachee Google Meet URL configuration
  • Per-relationship AI privacy level selection with visual radio-style buttons:
    • Full (Default): All AI features enabled
    • Transcribe Only: Text transcription without video/audio storage
    • None: No AI features for privacy-conscious clients
  • Save changes button appears only when settings are modified

Type Definitions:

  • Add AiPrivacyLevel enum to coaching-relationship types
  • Add meeting_url and ai_privacy_level to CoachingRelationship interface
  • Add UserIntegration types for API credentials status
  • Add MeetingRecording, Transcription, TranscriptSegment types
  • Add AiSuggestedItem types for AI-suggested actions/agreements
  • Add utility functions for duration/timestamp formatting

API Updates:

  • Add user-integrations API module with SWR hooks
  • Implement coaching relationship update method for meeting_url and ai_privacy_level

Screenshots / Videos Showing UI Changes (if applicable)

N/A - Backend API endpoints not yet implemented, UI will show loading/error states

Testing Strategy

  • Run npm run lint - passes with only one pre-existing warning
  • Run npx tsc --noEmit - passes with no errors
  • Navigate to /settings when logged in as a coach to see the settings page
  • Verify coachees see the "integration settings are only available for coaches" message
  • Verify Settings link in user-nav dropdown navigates correctly

Concerns

  • Backend Dependency: This PR adds frontend UI that depends on backend endpoints not yet implemented. The integration settings will show loading states until Phase 3 (backend integration endpoints) is complete.
  • Google OAuth: The Google OAuth flow requires backend /oauth/google/authorize endpoint which will be implemented in Phase 3.
  • Cross-Repository: This PR works with the backend Phase 1 PR (refactor-platform-rs#208) which adds the database schema and entity definitions.

…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
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