Conversation
Release v0.0.1
Updated project title to indicate it's a fork.
# Conflicts: # backends/advanced/webui/src/pages/Settings.tsx # backends/advanced/webui/src/services/api.ts
# Conflicts: # README-K8S.md # backends/advanced/src/advanced_omi_backend/auth.py # backends/advanced/src/advanced_omi_backend/services/mycelia_sync.py # backends/advanced/webui/package-lock.json # backends/advanced/webui/package.json # quickstart.md # tests/infrastructure/infra_tests.robot # tests/integration/websocket_streaming_tests.robot # Conflicts: # README.md # app/app.json # backends/advanced/src/advanced_omi_backend/app_config.py # backends/advanced/src/advanced_omi_backend/auth.py # backends/advanced/src/advanced_omi_backend/controllers/system_controller.py # backends/advanced/src/advanced_omi_backend/database.py # backends/advanced/src/advanced_omi_backend/models/job.py # backends/advanced/src/advanced_omi_backend/routers/modules/health_routes.py # backends/advanced/src/advanced_omi_backend/services/memory/config.py # backends/advanced/src/advanced_omi_backend/services/memory/service_factory.py # backends/advanced/src/advanced_omi_backend/services/mycelia_sync.py # backends/advanced/webui/src/pages/System.tsx # tests/infrastructure/infra_tests.robot # tests/resources/transcript_verification.robot # tests/setup/test_env.py
Design v2
|
|
Caution Review failedThe pull request is closed. WalkthroughThis PR rebrands the project from Chronicle to Friend-Lite, restructures Docker Compose services into modular files, introduces comprehensive application settings management with MongoDB persistence and caching, implements MCP server functionality for conversation access, adds API key lifecycle endpoints, and significantly enhances the frontend with a new Settings page, responsive layout redesign, and dark mode support. Changes
Sequence DiagramssequenceDiagram
participant Client as Frontend
participant API as Backend API
participant Auth as Auth Handler
participant MCP as MCP Server
participant DB as MongoDB
participant AudioFS as Audio FileSystem
Client->>Auth: GET /mcp/sse (Bearer token)
Auth->>Auth: Extract & validate token
Auth->>Client: Upgrade to SSE
Client->>MCP: POST /mcp/messages (list_conversations)
MCP->>Auth: Resolve user from token
Auth->>DB: Lookup user.id
DB-->>Auth: user.id
MCP->>DB: Query conversations (user_id, filters)
DB-->>MCP: Conversations array
MCP->>Client: SSE: Return JSON (conversations + pagination)
Client->>MCP: POST /mcp/messages (get_conversation)
MCP->>DB: Fetch conversation by id
DB-->>MCP: Conversation with transcripts
MCP->>Client: SSE: Return formatted conversation
Client->>MCP: POST /mcp/messages (get_conversation_audio)
MCP->>AudioFS: Read audio file
AudioFS-->>MCP: Binary audio
MCP->>MCP: Base64 encode
MCP->>Client: SSE: Return {path, size, mime, base64}
sequenceDiagram
participant Client as Frontend
participant API as Settings API
participant Cache as In-Memory Cache
participant DB as MongoDB
participant Env as Environment
Client->>API: GET /api/settings/speech-detection
API->>Cache: Check cache hit (TTL=5s)
alt Cache miss
API->>DB: Query speech_detection document
DB-->>API: Document or defaults
API->>Cache: Store with TTL
end
Cache-->>API: Settings
API-->>Client: Return SpeechDetectionSettings
Client->>API: PUT /api/settings/speech-detection (updated values)
API->>DB: Update document + timestamp
DB-->>API: Success
API->>Cache: Invalidate key
API-->>Client: Return updated settings
Client->>API: POST /api/settings/invalidate-cache?category=speech-detection
API->>Cache: Clear category
Cache-->>API: Done
API-->>Client: {status: success}
sequenceDiagram
participant User as User
participant UI as Settings Page
participant API as Backend API
participant DB as MongoDB
participant FS as Filesystem
User->>UI: Click "Generate API Key"
UI->>API: POST /me/api-key
API->>API: Generate 32-char secret
API->>API: Set created_at to UTC now
API->>DB: Update user.api_key & api_key_created_at
DB-->>API: Success
API->>UI: Return {api_key, created_at}
UI->>UI: Display key + copy button
User->>UI: Click "Save API Keys to File"
UI->>UI: Validate non-empty keys
UI->>API: POST /api/settings/api-keys/save (keys, save_to_file=true)
API->>FS: Check if .env.api-keys.template exists
alt Template exists
API->>FS: Read template
API->>FS: Substitute key placeholders
API->>FS: Write .env.api-keys
else No template
API->>FS: Write simple key=value format
end
API->>DB: Update ApiKeysSettings if save_to_database=true
DB-->>API: Success
API->>UI: Return {status, saved_to_file, saved_to_database}
UI->>User: Show success message
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Areas requiring extra attention:
Possibly related PRs
Suggested reviewers
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: defaults Review profile: CHILL Plan: Pro ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (53)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary by CodeRabbit
Release Notes
New Features
UI/UX
Infrastructure
✏️ Tip: You can customize this high-level summary in your review settings.