Skip to content

Prerelease: Desktop PRs #5374 #5395 #5413 #5537#5589

Closed
beastoin wants to merge 171 commits intomainfrom
prerelease/combined-5374-5395-5413-5537
Closed

Prerelease: Desktop PRs #5374 #5395 #5413 #5537#5589
beastoin wants to merge 171 commits intomainfrom
prerelease/combined-5374-5395-5413-5537

Conversation

@beastoin
Copy link
Collaborator

Prerelease: Desktop Migration PRs

Combined and independently verified desktop migration PRs, ready for merge.

Sub-PRs (merge order)

PR Title SHA Verdict
#5374 Desktop auth + base integration 40ae983af PASS
#5395 Desktop STT backend migration e2a88573 PASS
#5413 Desktop proactive AI thin clients 15bf1ec6a PASS
#5537 Dev Firebase config for dev builds 6d8b57e8e PASS

Verification Summary

  • Branch: verify/noa-combined-5374-5395-5413-5537prerelease/combined-5374-5395-5413-5537
  • Verifier: @noa (independent — did not author any sub-PR)
  • Build flavor: dev only
  • Auth bypass check: CLEAN
  • Tests: All passing (0 regressions vs main). Pre-existing failures on main documented.
  • Codex audit: 0 CRITICAL, 6 WARNING (non-blocking, follow-up owners assigned)
  • Mac Mini E2E: Auth → Onboarding → Dashboard → Chat → Memories → Tasks → Rewind → Settings — all PASS
  • Screen Recording E2E: 3-min test, 500/500 screenshots, PASS
  • Rewind E2E: 3-min test, timeline + page cycling, PASS
  • Re-merged with latest main: f035fb86e (resolved test.sh conflict — kept all entries)

Evidence

Overall Verdict: PASS

Zero CRITICAL findings. Ready for merge.

🤖 Generated with Claude Code

beastoin and others added 30 commits March 7, 2026 05:13
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…5396)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
WebSocket client that connects to /v4/listen with Bearer auth and
sends screen_frame JSON messages. Routes focus_result responses back
to callers via async continuations with frame_id correlation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
#5396)

Replace direct Gemini API calls with backend WebSocket screen_frame messages.
Context building (goals, tasks, memories, AI profile) moves server-side.
Client becomes thin: encode JPEG→base64, send screen_frame, receive focus_result.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…#5396)

Start WS connection when monitoring starts, disconnect on stop.
Pass service to FocusAssistant (shared for future assistant types).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…5396)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Vision handlers: analyzeFocus, extractTasks, extractMemories, generateAdvice
(send screen_frame with analyze type, receive typed result via frame_id)

Text handlers: generateLiveNote, requestProfile, rerankTasks, deduplicateTasks
(send typed JSON message, receive result via single-slot continuation)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace GeminiClient tool-calling loop with backendService.extractTasks().
Remove extractTaskSingleStage, refreshContext, vector/keyword search,
validateTaskTitle — all LLM logic now server-side. -550 lines.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace GeminiClient.sendRequest with backendService.extractMemories().
Remove prompt/schema building — all LLM logic now server-side.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace 2-phase Gemini tool-calling loop (execute_sql + vision) with
backendService.generateAdvice(). Remove compressForGemini, getUserLanguage,
buildActivitySummary, buildPhase1/2Tools — all LLM logic server-side. -560 lines.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace GeminiClient with backendService.deduplicateTasks(). Remove
prompt/schema building, local dedup logic — server handles everything.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace GeminiClient with backendService.rerankTasks(). Remove prompt/
schema building, context fetching — server handles reranking.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
beastoin and others added 26 commits March 10, 2026 03:15
Replace GeminiClient with backendService.rerankTasks(). Remove prompt/
schema building, context fetching — server handles reranking.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace 2-stage Gemini profile generation with backendService.requestProfile().
Remove fetchDataSources, buildPrompt, buildConsolidationPrompt — server
fetches user data from Firestore and generates profile server-side.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ts (#5396)

Pass shared BackendProactiveService to all 4 assistants and 3 text-only
services. Remove do/catch since inits no longer throw. Update
AdviceTestRunnerWindow fallback creation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace direct GeminiClient usage with BackendProactiveService.
Uses configure(backendService:) singleton pattern matching other
text-based services. Prompt logic moves server-side.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add configure(backendService:) call for LiveNotesMonitor alongside
other singleton text-based services.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update GoogleService-Info-Dev.plist with dev Firebase values:
API_KEY, PROJECT_ID, STORAGE_BUCKET, GCM_SENDER_ID, GOOGLE_APP_ID.

Fixes #5536

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dev builds load GoogleService-Info-Dev.plist (via run.sh), prod builds
load GoogleService-Info.plist. AuthService now reads API_KEY from
whichever plist is in the bundle, with prod key as fallback.

Fixes #5536

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
dev.sh builds Omi Dev (com.omi.desktop-dev) but was copying the prod
GoogleService-Info.plist. Now uses the same dev plist logic as run.sh.

Fixes #5536

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
reset-and-run.sh builds Omi Dev (com.omi.desktop-dev) but was copying
the prod GoogleService-Info.plist. Now uses the same dev plist logic
as run.sh.

Fixes #5536

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CODEx review: dev builds should not silently use prod credentials.
Now logs a FATAL warning if GoogleService-Info.plist is missing or
has no API_KEY in a dev build (bundle ID ending in -dev).

Fixes #5536

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ck to prod

CODEx review round 2: logging is not fail-fast. Dev builds now crash
with fatalError if GoogleService-Info.plist has no API_KEY, preventing
silent use of prod credentials. Prod builds still fall back safely.

Fixes #5536

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@beastoin
Copy link
Collaborator Author

Closing — prerelease was not approved by manager for desktop pipeline. Desktop PRs remain at OG5 awaiting separate merge decision.

@beastoin beastoin closed this Mar 13, 2026
@github-actions
Copy link
Contributor

Hey @beastoin 👋

Thank you so much for taking the time to contribute to Omi! We truly appreciate you putting in the effort to submit this pull request.

After careful review, we've decided not to merge this particular PR. Please don't take this personally — we genuinely try to merge as many contributions as possible, but sometimes we have to make tough calls based on:

  • Project standards — Ensuring consistency across the codebase
  • User needs — Making sure changes align with what our users need
  • Code best practices — Maintaining code quality and maintainability
  • Project direction — Keeping aligned with our roadmap and vision

Your contribution is still valuable to us, and we'd love to see you contribute again in the future! If you'd like feedback on how to improve this PR or want to discuss alternative approaches, please don't hesitate to reach out.

Thank you for being part of the Omi community! 💜

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.

1 participant