[codex] Desktop local-first Rust daemon MVP#7400
Draft
Git-on-my-level wants to merge 58 commits into
Draft
Conversation
…tion retry - Major APIClient.swift refactor: structured routing layer (+609/-1) - Add DesktopBackendEnvironment with configurable endpoint resolution (+62) - Harden TranscriptionRetryService with exponential backoff (+35/-19) - Add APIClientRoutingTests with comprehensive route coverage (+91) - Update .env.example with new backend environment variables
Map completed to status for PATCH v1/action-items in local mode, and add GET v1/conversations/count in the local Rust backend so the desktop client avoids loading full conversation rows just to count them.
…l-mode UI - Major ConversationDetailView.swift refactor (+2,378 lines changed) - Add local-mode toggle to SettingsPage - Update ConversationsPage with local-first indicators - Expand .env.example with local backend config - Update local-backend README and MVP runbook
Desktop routes chat, embeddings, vision, and Apple Speech STT through configurable local providers; the daemon gains folders, merge, chat sessions, and provider test/seed tooling for end-to-end hybrid dev. Co-authored-by: Cursor <cursoragent@cursor.com>
Route hybrid chat and proactive LLM through a localhost Codex proxy using ~/.codex auth, add Settings enrollment UX, local memory wiki + FTS for search, backend tier activation, and bundle the proxy in run.sh. Co-authored-by: Cursor <cursoragent@cursor.com>
Reuse a healthy loopback proxy instead of respawning, surface proxy stderr on failure, skip cloud enrollment in local daemon mode, and refresh Settings immediately via CodexAuthStore. Co-authored-by: Cursor <cursoragent@cursor.com>
…e for local profiles
Co-authored-by: Cursor <cursoragent@cursor.com>
(cherry picked from commit aad2f58)
(cherry picked from commit 65bfaa6)
(cherry picked from commit a18d2bb)
(cherry picked from commit c1e5d0d)
(cherry picked from commit b739064)
(cherry picked from commit 5e7bc7b)
(cherry picked from commit 5892f09)
…blocking (cherry picked from commit c649016)
(cherry picked from commit 3fcd52e)
(cherry picked from commit 938c01c)
…n, and storage (cherry picked from commit 6cfc3f9)
(cherry picked from commit 660155a)
(cherry picked from commit c8c87a9)
…tifacts (cherry picked from commit 85d5728)
Require X-ChatGPT-Fingerprint on requests for quota and subscription bypass, refresh enrollment heartbeat from desktop launch and throttled server updates, resolve Codex transport at call time in GeminiClient, label wiki search hits distinctly from tasks, and include memory id in wiki slugs to avoid collisions. (cherry picked from commit 63fde7b)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a desktop-first local/hybrid MVP path for Omi Desktop built around a new lightweight Rust local daemon under
desktop/local-backend.Major pieces:
OMI_DESKTOP_BACKEND_MODE=localandOMI_LOCAL_DAEMON_URLWhy
This is intended to let developers run a useful Omi Desktop local-first profile without requiring Omi-hosted backend services for core MVP flows. Explicit user-configured provider egress remains allowed for hybrid LLM/STT usage, but Omi backend/Firebase/Firestore/Redis/GCS/pusher/agent-proxy are not prerequisites for local core flows.
Manual run
Start the local daemon:
cd desktop/local-backend cargo run -- --bind 127.0.0.1:8765Run the desktop dev app against it:
Validation
Passed locally:
Latest focused results:
APIClientRoutingTests: 82 passedNotes
This is opened as a draft because the diff is large and should get manual developer testing on another machine before review-ready status.