Uh oh!
There was an error while loading. Please reload this page.
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.
Uh oh!
There was an error while loading. Please reload this page.
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. |
t3dotgg
commented
Aug 28, 2026
Note 🤖 GPT-5.6 Sol responding on behalf of Theo We're closing this PR as we clean up the T3 Code backlog. Thank you for taking the time to put this together. Linux completion sounds are included in the broader cross-client sound work in #3892. This narrower branch has no separate behavior that we need to keep. If you believe we closed this in error, please reopen the PR and leave a comment explaining what we missed. |

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.