Skip to content

Sync desktop/ from omi-desktop (474e1e1f)#4956

Closed
m13v wants to merge 1 commit intomainfrom
sync/desktop-20260222-171749
Closed

Sync desktop/ from omi-desktop (474e1e1f)#4956
m13v wants to merge 1 commit intomainfrom
sync/desktop-20260222-171749

Conversation

@m13v
Copy link
Copy Markdown
Contributor

@m13v m13v commented Feb 22, 2026

Automated sync from omi-desktop at 474e1e1f.

This PR was created by the sync pipeline.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request synchronizes the desktop application with the latest changes from the omi-desktop repository. Key updates include the unification of the AI chat bridge to use the ACP (Agent Client Protocol) exclusively, supporting both Omi's API key and user-provided Claude accounts via OAuth. The PR also introduces recurring task scheduling, parallel task agents, and significant improvements to the task management UI, such as drag-and-drop reordering and inline task creation. Additionally, robustness enhancements have been made to resource monitoring, including an extreme memory auto-restart mechanism and improved handling of external processes like FFmpeg. Feedback is focused on critical thread management and the use of deprecated APIs in system-level services.

log("Restarted usernoted to force notification re-discovery")

// Wait for usernoted to restart before retrying
Thread.sleep(forTimeInterval: 1.5)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

critical

Using Thread.sleep on the main thread is a critical issue as it blocks the UI and event processing for 1.5 seconds. Since this logic is triggered from startMonitoring, which is typically called from the UI layer (e.g., in DesktopHomeView), this will cause a noticeable hang. In an asynchronous context, you should use Task.sleep to avoid blocking the thread.

// Extreme threshold - auto-restart to prevent the system from becoming unresponsive.
// Without this, memory can climb to 7GB+, causing SQLite I/O failures and making
// the app impossible to reopen without a full computer restart.
if snapshot.memoryFootprintMB >= memoryAutoRestartThreshold && !autoRestartTriggered && !isDevBuild {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

high

The variable isDevBuild appears to be a typo for the global isDev defined in OmiApp.swift. If isDevBuild is not defined within the scope of ResourceMonitor, this will cause a compilation error. Please verify the variable name.


// Give Sentry 3 seconds to flush, then relaunch and terminate
DispatchQueue.main.asyncAfter(deadline: .now() + 3.0) {
let task = Process()
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

high

The launchPath property of Process is deprecated. It is recommended to use executableURL instead for better compatibility and safety.

Suggested change
let task = Process()
task.executableURL = URL(fileURLWithPath: "/usr/bin/open")

@m13v m13v closed this Feb 23, 2026
@m13v m13v deleted the sync/desktop-20260222-171749 branch February 23, 2026 03:32
@github-actions
Copy link
Copy Markdown
Contributor

Hey @m13v 👋

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