Add sounds for completed turns and user input requests#3892
Add sounds for completed turns and user input requests#3892jakeleventhal wants to merge 3 commits into
Conversation
- Add interaction sound cue detection with hydration-safe tests - Play bloom and success cues from the web app
|
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 Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
ApprovabilityVerdict: Needs human review This PR adds a new feature (completion sounds) enabled by default for all users, with a new external dependency. New user-facing features warrant human review even when well-implemented. You can customize Macroscope's approvability policy. Learn more. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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.
Reviewed by Cursor Bugbot for commit 8387bda. Configure here.
Avoid advancing known thread sound state during settings hydration so turn completion and input cues are not dropped before the preference is ready. Co-authored-by: Cursor <cursoragent@cursor.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |

Summary
Screen.Recording.2026-07-11.at.6.57.13.PM.mov
successcue when a turn completesbloomcue when a thread begins requesting user inputUser impact
Users receive an audible signal when agent work finishes or pauses for input, including when the affected thread is not currently open.
Validation
vp test apps/web/src/interactionSounds.test.tsvp checkvp run typecheckNote
Low Risk
Client-side UX and preferences only; no auth, data, or server behavior changes beyond a new settings field with safe defaults.
Overview
Adds audible cues when agent work finishes or pauses for the user, including for threads that are not currently open, via a root-level
InteractionSoundCoordinatorthat watches global thread shells.New
interactionSoundslogic diffs per-thread state (completed turn identity and pending user input/approval) to emitsuccesson turn completion andbloomwhen user action is newly required, while skipping replay on unchanged state and suppressing audio on first hydration. Settings hydration uses a special capture path so transitions that occur before preferences load can still cue correctly afterward.Introduces
enableCompletionSoundson client settings (default on, patchable in contracts) with a General settings toggle, reset/restore-defaults wiring, and thecuelumedependency for playback.Reviewed by Cursor Bugbot for commit f38723f. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add sounds for completed turns and user input requests
cuelume-basedInteractionSoundCoordinatorcomponent in routes/__root.tsx that plays asuccesssound when a thread's latest turn completes and abloomsound when a thread starts requesting user input or approvals.enableCompletionSoundsboolean field toClientSettingsSchema(defaulting totrue) and exposes a toggle in the General settings panel.Macroscope summarized f38723f.