block / block/buzz

Add an audible alert for incoming huddle requests

Open
#6,894 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
32.7k
Forks
4.3k
Avg merge
1d 13h
Merged PRs (30d)
253

Description

## 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.

Contributor guide

Open the contributing guide

Research direction

Start from Buzz's existing huddle lifecycle events, incoming request UI, and notification settings. Trace how join, decline, expiry, cancellation, mute state, and duplicate events are handled; done means the ringtone follows every acceptance criterion and automated tests cover start, stop, deduplication, initiator exclusion, and the disabled preference.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
audio-video-rtc
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.