Commit Graph

19 Commits

Author SHA1 Message Date
Dan Guido
1efe1db887 fix(voice-call): prevent audio overlap with TTS queue (#1713)
* fix(voice-call): prevent audio overlap with TTS queue

Add a TTS queue to serialize audio playback and prevent overlapping
speech during voice calls. Previously, concurrent speak() calls could
send audio chunks simultaneously, causing garbled/choppy output.

Changes:
- Add queueTts() to MediaStreamHandler for sequential TTS playback
- Wrap playTtsViaStream() audio sending in the queue
- Clear queue on barge-in (when user starts speaking)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(voice-call): use iterative queue processing to prevent heap exhaustion

The recursive processQueue() pattern accumulated stack frames, causing
JavaScript heap out of memory errors on macOS CI. Convert to while loop
for constant stack usage regardless of queue depth.

* fix: prevent voice-call TTS overlap (#1713) (thanks @dguido)

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-25 12:02:17 +00:00
Dan Guido
718c8413c7 feat: add prek pre-commit hooks and dependabot (#1720)
* feat: add prek pre-commit hooks and dependabot

Pre-commit hooks (via prek):
- Basic hygiene: trailing-whitespace, end-of-file-fixer, check-yaml, check-added-large-files, check-merge-conflict
- Security: detect-secrets, zizmor (GitHub Actions audit)
- Linting: shellcheck, actionlint, oxlint, swiftlint
- Formatting: oxfmt, swiftformat

Dependabot:
- npm and GitHub Actions ecosystems
- Grouped updates (production/development/actions)
- 7-day cooldown for supply chain protection

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: add prek install instruction to AGENTS.md

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 10:53:23 +00:00
Peter Steinberger
f3cc74c021 refactor: align voice-call TTS with core config 2026-01-25 09:29:57 +00:00
Peter Steinberger
4a2b36480c fix: return TwiML for outbound conversation calls 2026-01-24 23:20:52 +00:00
Peter Steinberger
b068d79ba5 Merge pull request #1213 from andrew-kurin/fix/voicecall-tailscale-path
Voice-call: fix tailscale tunnel, Twilio signatures, and callbacks
2026-01-19 06:00:33 +00:00
Ghost
b1e61857d4 Voice-call: avoid streaming on notify callbacks 2026-01-18 20:27:23 -08:00
Ghost
fb20435b9a Voice-call: fix Twilio status callbacks 2026-01-18 20:20:53 -08:00
Ghost
f3a8fd91a5 Voice-call: fix Twilio signature ordering 2026-01-18 20:03:13 -08:00
Peter Steinberger
b1c13b0eab fix: enforce strict config validation 2026-01-19 03:39:25 +00:00
Ghost
56cdb022be Voice-call: fix tailscale tunnel path 2026-01-18 18:59:58 -08:00
Ghost
06af695b48 fix(voice-call): resolve StatusCallback with inline TwiML
- Switch from inline to URL-based TwiML for outbound calls
- Store TwiML content temporarily and serve on webhook request
- Add twimlStorage map and cleanup helper methods
- Fix TwiML serving to handle CallStatus='in-progress' on initial request

Closes #864
2026-01-18 07:51:59 -08:00
Peter Steinberger
a561d2e1af fix: include query in Twilio webhook verification 2026-01-18 04:25:28 +00:00
Peter Steinberger
37b0d170cf fix: restore notify init + Plivo numbers (#846) (thanks @vrknetha) 2026-01-15 07:28:14 +00:00
vrknetha
cada375013 Voice Call: fix Plivo webhook method typing 2026-01-15 07:21:40 +00:00
vrknetha
88edb715f5 Voice Call: add Plivo provider 2026-01-15 07:21:40 +00:00
Peter Steinberger
f2904ecf76 docs(cli): add per-command CLI pages 2026-01-15 06:13:10 +00:00
Peter Steinberger
fbbbece56c refactor(voice-call): split manager 2026-01-14 05:40:19 +00:00
Peter Steinberger
0a41d5f823 refactor(voice-call): split twilio provider 2026-01-14 01:17:56 +00:00
Peter Steinberger
2f4cd74b72 feat: restore voice-call plugin parity 2026-01-12 21:44:19 +00:00