From 4a87588435919b9ae68a1cad92c2e45fd245ad87 Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Wed, 24 Jun 2026 17:25:32 -0400 Subject: [PATCH] feat(calls): selectable incoming-call ringtone (#4) Adds a ringtoneId setting (classic | chime | soft | retro | none) so the incoming-call ring is no longer hardcoded to call.ogg. The three synth styles are generated in-browser via a new utils/ringtones.ts module (mirroring the existing callSounds.ts WebAudio pattern), so no new binary assets are bundled; 'classic' keeps the existing call.ogg clip and 'none' is a silent, visual-only incoming-call UI. - ringtones.ts: startRingtone() loops until stopped; previewRingtone() plays a single non-looping preview and auto-cancels the prior preview. - IncomingCall: ring driven by the setting;