feat(desktop): play completion sound on Linux - #5274
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit d2df20a. Configure here.
ApprovabilityVerdict: Needs human review This PR introduces a new user-facing feature (completion sound notifications on Linux) with new components, IPC channels, and state tracking logic. New features introducing user-facing behavior warrant human review even when well-scoped. You can customize Macroscope's approvability policy. Learn more. |

Why
On Ubuntu, an agent can finish while T3 Code is in the background without an audible cue. This adds a lightweight Codex CLI-like completion sound using the platform beep, while leaving web, mobile, and non-Linux desktop behavior unchanged.
What Changed
Checklist
Built with GPT-5 using Codex.
Note
Play system beep on Linux when an agent turn completes
DesktopTurnCompletionSoundReact component mounted globally in__root.tsxthat watches thread snapshots and callsplayTurnCompletionSoundviawindow.desktopBridgeonce per newly completed turn.createTurnCompletionTrackerutility that detects transitions tocompletedstate, ignoring turns already completed on first observation and deduplicating repeat syncs.desktop:play-turn-completion-soundIPC channel handled inwindow.ts; on Linux it callsElectronShell.beep(), on other platforms it is a no-op.ElectronShell.beepas an Effect wrappingElectron.shell.beep()and addsplayTurnCompletionSoundto theDesktopBridgeinterface as an optional method.Macroscope summarized b93fd06.
Note
Low Risk
User-facing audio on Linux only, gated in main and renderer; no auth, data, or orchestration changes.
Overview
Adds an audible cue when agent turns finish on Linux desktop, using the platform system beep so background sessions are noticeable without changing web, mobile, or macOS/Windows behavior.
The web shell mounts
DesktopTurnCompletionSoundin the root layout. It watches thread shells viacreateTurnCompletionTracker, which only counts turns that transition tocompletedafter the first sync—skipping hydration, repeated updates, interrupted/error turns, and threads that appear already completed.Completion triggers
window.desktopBridge.playTurnCompletionSound()through a new IPC channel; the main process callsElectron.shell.beep()only whenDesktopEnvironment.platform === "linux".ElectronShellgains abeepeffect;DesktopBridgedocuments optionalplayTurnCompletionSound. Install docs note Linux beep behavior; tests cover tracker logic, platform gating, and shell beep.Reviewed by Cursor Bugbot for commit b93fd06. Bugbot is set up for automated code reviews on this repo. Configure here.