Skip to content

feat(desktop): add Monologur always-listening background agent to des…#10123

Open
palontologist wants to merge 1 commit into
BasedHardware:mainfrom
palontologist:palontologist/linux-monologur
Open

feat(desktop): add Monologur always-listening background agent to des…#10123
palontologist wants to merge 1 commit into
BasedHardware:mainfrom
palontologist:palontologist/linux-monologur

Conversation

@palontologist

@palontologist palontologist commented Jul 20, 2026

Copy link
Copy Markdown

…ktop/windows

Ports the Monologur always-listening agent onto the consolidated desktop/windows Electron tree as platform-agnostic seams.

  • ttsService.ts: Web Speech API TTS (speak/stop/voices) used by Monologur.
  • monologurEngine.ts: subscribes to live conversation, prompts an LLM (geminiClient) for proactive 1-2 sentence insights, speaks them via TTS; persists useful insights to the shared memory store. Deepgram TTS path is wired but degrades to Web Speech (main returns not_implemented for now).
  • monologurMemory.ts: reads/ranks user memories (/v3/memories) for context and writes durable insights tagged 'monologur'.
  • MonologurHost.tsx: status indicator + proactive message toast, mounted in App.
  • GeneralTab.tsx: Monologur enable/disable + TTS provider (Web/Deepgram) toggle.
  • shared/types.ts: TranscriptLine.isUser, DeepgramTtsOptions/Result, OmiBridgeApi.deepgramTtsSynthesize.
  • preload + main: deepgram:ttsSynthesize IPC (returns not_implemented).

Verified: typecheck + eslint (0 errors) + electron-vite build pass on Linux.

What changed and why

Product invariants affected

How it was verified

Tests

Failure class (fixes)

Failure-Class: none

Failure-class transition narrative (only when needed)

New guards (only when adding a check or ratchet)

Scoped cleanups (optional)

Review in cubic

…ktop/windows

Ports the Monologur always-listening agent onto the consolidated
desktop/windows Electron tree as platform-agnostic seams.

- ttsService.ts: Web Speech API TTS (speak/stop/voices) used by Monologur.
- monologurEngine.ts: subscribes to live conversation, prompts an LLM
  (geminiClient) for proactive 1-2 sentence insights, speaks them via TTS;
  persists useful insights to the shared memory store. Deepgram TTS path is
  wired but degrades to Web Speech (main returns not_implemented for now).
- monologurMemory.ts: reads/ranks user memories (/v3/memories) for context
  and writes durable insights tagged 'monologur'.
- MonologurHost.tsx: status indicator + proactive message toast, mounted in App.
- GeneralTab.tsx: Monologur enable/disable + TTS provider (Web/Deepgram) toggle.
- shared/types.ts: TranscriptLine.isUser, DeepgramTtsOptions/Result,
  OmiBridgeApi.deepgramTtsSynthesize.
- preload + main: deepgram:ttsSynthesize IPC (returns not_implemented).

Verified: typecheck + eslint (0 errors) + electron-vite build pass on Linux.

Co-Authored-By: opencode <noreply@opencode.ai>
Copilot AI review requested due to automatic review settings July 20, 2026 16:09

Copilot AI left a comment

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@Git-on-my-level Git-on-my-level added needs-maintainer-review Needs a human maintainer to sign off before merge possible-misalignment PR may not align with current product direction / linked issue closed-not-planned needs-scope-reduction PR scope should be reduced or split labels Jul 20, 2026

@Git-on-my-level Git-on-my-level left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for this — an always-listening background agent is a cool direction and the seams (engine/memory/TTS host) are laid out thoughtfully. Requesting changes because a few things block this from being mergeable as-is. None of this is a judgment on whether the feature should ship; that's a maintainer call flagged below.

Blockers (CI is currently red on these):

  1. Unresolved merge conflict markers committed. Three files contain literal <<<<<<< Updated upstream / ======= / >>>>>>> Stashed changes blocks:

    • desktop/windows/src/main/ipc/integrations.ts
    • desktop/windows/src/preload/index.ts
    • desktop/windows/src/shared/types.ts
      Looks like a git stash pop that wasn't resolved. These break the TypeScript/Windows build (matches the failing "Windows build smoke" and "Typecheck · Lint · Test" checks) and will fail any reviewer's local build too. Please resolve and drop all six markers.
  2. integrations.ts calls translateToGlosses(...) and defaultSignOpts() but neither is imported or defined in this PR, so even after the conflict markers are removed the sign-language handler won't compile.

Scope / description mismatch:

  1. The diff introduces sign-language translation surfaces that aren't mentioned anywhere in the title or description: TranslationResult, SignGloss, onDeepgramSignUpdate, and the integrations:signLanguage:translate IPC handler. The PR body only describes Monologur TTS + memory. If the sign-language work belongs here, the description should cover it and explain why; otherwise it should land separately so each surface can be reviewed and rolled back independently.

Verification:

  1. The body says "typecheck + eslint (0 errors) + electron-vite build pass on Linux," but the Windows build smoke and Typecheck/Lint/Test checks are failing on this head (consistent with items 1–2). Worth updating the How-it-was-verified section once the conflicts are resolved so it reflects what was actually run.

Things I'd like a human maintainer to weigh in on (not asking you to resolve here):

  • Whether an always-on background listener that proactively speaks aloud and reads/writes the shared /v3/memories store fits Omi's product/privacy direction, and what consent/UX guardrails should gate it. Flagging needs-maintainer-review + feature-fit-review for that.
  • Whether proactive spoken interruptions (TTS aloud) need an explicit on-by-default vs. off-by-default product decision, given the memory read/write + always-listening posture.

Suggested next steps: resolve the three conflict files, fix the missing imports, then re-run the Windows + typecheck/lint/test checks locally before pushing. Happy to take another look once CI is green.


by AI on behalf of David — if you need David’s attention urgently, please @Git-on-my-level and escalate with need human response.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-maintainer-review Needs a human maintainer to sign off before merge needs-scope-reduction PR scope should be reduced or split possible-misalignment PR may not align with current product direction / linked issue closed-not-planned

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants