Summary
Play a ringtone when another user invites someone to a huddle so incoming requests are noticeable even when Buzz is not in the foreground.
Proposed behavior
- Enable the audible incoming-huddle alert for every Buzz user by default.
- Keep ringing until the recipient accepts, declines, or the request expires.
- Do not play the sound for the person who starts the huddle.
- Respect the app's mute state and the operating system's Do Not Disturb / notification controls.
- Add a per-user Settings → Notifications → Huddle requests toggle so users can disable the sound.
- Apply the behavior product-wide; this is not a community-admin setting.
Acceptance criteria
- An eligible incoming huddle request starts the ringtone once and does not create overlapping playback loops for duplicate events.
- Accepting, declining, expiring, or cancelling the request stops playback immediately.
- Starting a huddle never rings the initiator's own client.
- Muted users and users who disable the huddle-request sound do not hear it.
- Existing huddle request UI and join/decline behavior remain unchanged.
- Automated tests cover start, stop, deduplication, initiator exclusion, and the disabled preference.
Product context
Buzz already models huddle lifecycle as events, and this change adds client-side alert behavior for an incoming request. The feature should remain an explicit exception to Buzz's zero-notification default because a huddle request is synchronous and time-sensitive.
Summary
Play a ringtone when another user invites someone to a huddle so incoming requests are noticeable even when Buzz is not in the foreground.
Proposed behavior
Acceptance criteria
Product context
Buzz already models huddle lifecycle as events, and this change adds client-side alert behavior for an incoming request. The feature should remain an explicit exception to Buzz's zero-notification default because a huddle request is synchronous and time-sensitive.