Commit Graph

10820 Commits

Author SHA1 Message Date
Peter Steinberger
7d9232a9a9 test: dedupe codex command mock reads 2026-05-12 18:30:47 +01:00
Peter Steinberger
cae1263198 test: dedupe feishu reply dispatcher mock reads 2026-05-12 18:18:26 +01:00
Peter Steinberger
797ce4c05c test: dedupe slack slash mock reads 2026-05-12 18:13:53 +01:00
Peter Steinberger
0f390fc820 test: dedupe telegram bot mock reads 2026-05-12 18:06:03 +01:00
Peter Steinberger
78e9717d9b test: dedupe whatsapp send mock reads 2026-05-12 18:02:40 +01:00
Peter Steinberger
df89ad90d8 test: dedupe voice call mock reads 2026-05-12 17:57:15 +01:00
Galin Iliev
4b28312bd8 fix(azure):Drain split provider stream frames (#80927)
Merged via squash.

Prepared head SHA: 03a7e1fec3
Co-authored-by: galiniliev <5711535+galiniliev@users.noreply.github.com>
Co-authored-by: galiniliev <5711535+galiniliev@users.noreply.github.com>
Reviewed-by: @galiniliev
2026-05-12 09:49:51 -07:00
pashpashpash
36b9da5c91 Keep Codex media tools backed by auth profiles (#81059)
* fix(codex): pass auth profiles to dynamic tools

* fix: bump protobufjs past advisory range
2026-05-13 01:46:21 +09:00
Peter Steinberger
43316c2909 test: dedupe qa matrix mock calls 2026-05-12 17:44:26 +01:00
Peter Steinberger
05fabfbc9c test: dedupe google meet mock calls 2026-05-12 17:29:52 +01:00
Peter Steinberger
a8bc83edf4 test: dedupe diagnostics otel mock calls 2026-05-12 17:25:57 +01:00
Peter Steinberger
6cfb532afd test: dedupe feishu drive mock calls 2026-05-12 17:19:17 +01:00
Peter Steinberger
72d9ea3b76 test: dedupe matrix send mock calls 2026-05-12 17:13:20 +01:00
Peter Steinberger
4f1bee9f8b test: dedupe telegram send mock calls 2026-05-12 16:54:31 +01:00
Ayaan Zaidi
665c29d4dc fix(voice-call): bind Telnyx realtime streams to issued calls 2026-05-12 21:23:50 +05:30
Rudra
148e5467b5 fix: align Telnyx stream lifecycle parsing with carrier docs
Two parsing bugs caught by Codex review on the Telnyx Media Streaming
PR:

Lifecycle webhook event names had a stray `call.` prefix that never
matched Telnyx's documented event types. Telnyx surfaces stream
lifecycle as `streaming.started` and `streaming.stopped` (no prefix);
stream errors arrive as `{event:"error"}` JSON frames over the
WebSocket, not as carrier webhooks. Drop the bogus
`call.streaming.failed` case from the webhook parser and add a new
`error` frame kind to the StreamFrameAdapter union so the realtime
handler can log failures instead of silently dropping them.

Telnyx WebSocket frames carry `stream_id` at the top level of the
envelope and `call_control_id` inside the `start` object; the
Telnyx adapter was reading `start.stream_id` (always undefined) and
defaulting `providerCallId` to the constructor-supplied value
regardless of what the carrier sent. Read both fields from the
documented locations and fall back to the constructor providerCallId
only when the carrier frame omits them.

Tests updated to reflect the carrier-documented frame shapes; new
fixture covers `{event:"error"}` round-trip through the adapter.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 21:23:50 +05:30
Rudra
b28e3b378e test: cover Telnyx Media Streaming for voice-call realtime
Adds tests across the touched surface: StreamFrameAdapter for both
Twilio (with streamSid) and Telnyx (without), the generalized
RealtimeAudioPacer carrying both envelopes, Telnyx provider
dial-time and answer-action streaming params with the
call.streaming.failed -> call.error mapping, manager
streamSessionIssuer wiring for Telnyx outbound, and the widened
realtime + telnyx config gate.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 21:23:50 +05:30
Rudra
bb1b075118 feat: add Telnyx Media Streaming for voice-call realtime
Wires bidirectional PCMU WebSocket audio for Telnyx so realtime
providers (OpenAI Realtime, etc.) can drive Telnyx calls the same
way they drive Twilio. Telnyx attaches Media Streaming at dial
time and answer-action time per the documented canonical patterns
(no actions/streaming_start call needed).

New StreamFrameAdapter abstraction owns provider-shaped frame
parsing and outbound serialization, so realtime-handler.ts stays
carrier-agnostic. RealtimeAudioPacer is generalized to accept any
serializer. The provider-twilio realtime gate widens to accept
telnyx.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 21:23:50 +05:30
Peter Steinberger
cb957fe0d2 test: dedupe telegram delivery mock calls 2026-05-12 16:44:58 +01:00
Peter Steinberger
2379da6cf1 test: dedupe qa matrix cli mock calls 2026-05-12 16:27:30 +01:00
Peter Steinberger
c5135c1efd test: dedupe qa matrix message body mock calls 2026-05-12 16:22:00 +01:00
Peter Steinberger
d24254ef5f test: dedupe telegram bot mock call 2026-05-12 16:17:54 +01:00
Peter Steinberger
730cbb356f test: dedupe bonjour advertiser mock calls 2026-05-12 16:15:03 +01:00
Peter Steinberger
7b52b60051 test: dedupe codex side question mock calls 2026-05-12 16:13:08 +01:00
Peter Steinberger
250e16d3c9 test: dedupe codex conversation mock calls 2026-05-12 16:11:24 +01:00
Peter Steinberger
b2d8a92f48 test: dedupe feishu docx mock calls 2026-05-12 16:09:16 +01:00
Peter Steinberger
186de9daa0 test: dedupe feishu outbound mock calls 2026-05-12 16:06:08 +01:00
Peter Steinberger
fdb2d3a083 test: dedupe googlechat auth mock calls 2026-05-12 16:04:22 +01:00
Peter Steinberger
fa0c23c8ba test: dedupe googlechat target mock calls 2026-05-12 16:02:29 +01:00
Peter Steinberger
7121791735 test: dedupe matrix client mock calls 2026-05-12 15:59:47 +01:00
Peter Steinberger
b076215e82 test: dedupe memory search mock calls 2026-05-12 15:57:57 +01:00
Peter Steinberger
b28714307d test: dedupe minimax speech mock calls 2026-05-12 15:55:38 +01:00
Peter Steinberger
f3d5a9926f test: dedupe nostr inbound mock calls 2026-05-12 15:53:31 +01:00
Peter Steinberger
cb8b7ff891 test: dedupe ollama embedding mock calls 2026-05-12 15:51:45 +01:00
Peter Steinberger
7a9613e66b test: dedupe openai tts mock calls 2026-05-12 15:49:59 +01:00
Peter Steinberger
49d42bea6e test: dedupe openrouter video mock calls 2026-05-12 15:48:23 +01:00
Peter Steinberger
360b0769db test: dedupe qqbot websocket mock calls 2026-05-12 15:46:33 +01:00
Peter Steinberger
67ac7ee200 test: dedupe signal client mock calls 2026-05-12 15:45:01 +01:00
Peter Steinberger
cc736fdf1c test: dedupe signal monitor mock calls 2026-05-12 15:43:14 +01:00
Peter Steinberger
7c8d32211d test: dedupe speech tts mock calls 2026-05-12 15:40:41 +01:00
Peter Steinberger
094f6d83c7 test: dedupe telegram dispatch mock calls 2026-05-12 15:38:59 +01:00
Peter Steinberger
26afc763b3 test: dedupe telegram command menu mock calls 2026-05-12 15:37:11 +01:00
Peter Steinberger
f4ae21cb0a test: dedupe telegram channel post mock calls 2026-05-12 15:33:06 +01:00
Peter Steinberger
2bfbe25239 test: dedupe telegram fetch mock calls 2026-05-12 15:30:17 +01:00
Peter Steinberger
684e13c7fd test: dedupe vydra fetch mock calls 2026-05-12 15:26:51 +01:00
Peter Steinberger
f6418812ef test: dedupe whatsapp media cap mock calls 2026-05-12 15:24:54 +01:00
Peter Steinberger
99f9b78bcd test: dedupe whatsapp process mock calls 2026-05-12 15:22:22 +01:00
Peter Steinberger
4e3b952b70 test: dedupe feishu comment mock calls 2026-05-12 15:19:46 +01:00
Peter Steinberger
a34d45e2a1 test: dedupe feishu media mock calls 2026-05-12 15:17:31 +01:00
Peter Steinberger
ca2523f9d5 test: dedupe line download mock calls 2026-05-12 15:14:46 +01:00