100 Commits
Author SHA1 Message Date
Yera All aa64b6b94c Revert "feat(voice): start early replies before final asr"
This reverts commit a44a1b97a1.
2026-04-19 01:30:26 +05:00
Yera All 224973d840 Revert "fix(voice): race slow streaming asr finalize"
This reverts commit 77df41bce0.
2026-04-19 01:30:26 +05:00
Yera All 93002ab86a Revert "fix(voice): stop repeating failed clarifications"
This reverts commit 294d30a797.
2026-04-19 01:30:26 +05:00
Yera All 294d30a797 fix(voice): stop repeating failed clarifications 2026-04-19 01:19:54 +05:00
Yera All 77df41bce0 fix(voice): race slow streaming asr finalize 2026-04-19 01:06:03 +05:00
Yera All a44a1b97a1 feat(voice): start early replies before final asr 2026-04-19 00:46:16 +05:00
Yera All 9cd553bf92 feat(voice): start replies from stable streaming partials 2026-04-19 00:13:58 +05:00
Yera All 770ba4e925 feat(voice): add elevenlabs realtime streaming asr 2026-04-18 20:15:44 +05:00
Yera All ff3efe395b test(voice): align start name policy with service intent priority 2026-04-18 18:47:18 +05:00
Yera All 25480fc903 fix(deploy): allow voice provider env overrides 2026-04-18 18:43:36 +05:00
Yera All 34b807e460 feat(voice): add elevenlabs stt and transcript truth fixes 2026-04-18 18:25:07 +05:00
Yera All ac2269b6a4 fix(voice): correct yandex asr endpoints 2026-04-17 13:39:26 +05:00
Yera All feb0ce01e2 fix(asterisk): update telecom route and recording fallback 2026-04-17 12:16:51 +05:00
Yera All 4adaf192fb fix(voice): avoid silence on ASR runtime failures 2026-04-17 01:28:06 +05:00
Yera All f66b289371 feat(voice): add Yandex streaming ASR 2026-04-17 01:06:45 +05:00
Yera All 5d40cfafd8 feat(voice): switch voice ASR to Yandex SpeechKit 2026-04-17 00:53:20 +05:00
Yera All 39096e114f fix(voice): harden noisy streaming turns 2026-04-17 00:30:41 +05:00
Yera All 8ca5f23e93 Polish operator messenger layout 2026-04-17 00:14:41 +05:00
Yera All aa6f838061 fix(voice): keep asr partial polling off push path 2026-04-17 00:06:27 +05:00
Yera All 52b2edfcd3 fix(voice): stop thinking continuation on silence 2026-04-16 23:56:10 +05:00
Yera All f14aeb39df test(voice): wait for async streaming asr push 2026-04-16 23:48:07 +05:00
Yera All d331981ac8 fix(voice): decouple streaming asr from media loop 2026-04-16 23:11:24 +05:00
Yera All 03450cc308 Repair writable local deploy data dirs 2026-04-16 22:49:34 +05:00
Yera All ad6a3c2c8f Include asterisk assets in deploy permission repair 2026-04-16 22:46:24 +05:00
Yera All 1f457a1a25 Harden deploy permission repair 2026-04-16 22:41:12 +05:00
Yera All 41f48cb821 Fix source deploy permissions repair 2026-04-16 22:30:28 +05:00
Yera All 3b5a7ad2e7 Add operator unified messenger MVP 2026-04-16 22:16:57 +05:00
Yera All 1206ff91ac chore: push remaining local changes 2026-04-16 02:31:57 +05:00
Yera All 5af47991dc fix(voice): stabilize turn finalization after asr timeouts 2026-04-16 02:30:39 +05:00
Yera All 213057efeb Revert "feat(asterisk): add telecom.kz IP trunk for DID 87273901485"
This reverts commit 436821737e.
2026-04-16 01:27:34 +05:00
Yera AllandClaude Opus 4.6 436821737e feat(asterisk): add telecom.kz IP trunk for DID 87273901485
Wires the production number 87273901485 (SIP account 86205414@sip.telecom.kz)
into the voice stack as a no-registration IP trunk. Inbound INVITEs are
identified by source IP 92.46.61.21 and routed straight into the AI-first
entrypoint (7100), with the existing AudioSocket -> live operator fallback
preserved.

The Asterisk container was also never started by the source-based CI deploy
(only the registry-based path brought it up). Patch scripts/deploy_gitlab.sh
to also run docker-compose.asterisk.server.yml so the voice channel stays in
sync with the rest of the platform on every push to the default branch.

- deployment/asterisk/pjsip.conf: add telecom-kz aor/auth/endpoint/identify
- deployment/asterisk/entrypoint.sh: inject ASTERISK_TELECOM_KZ_PASSWORD
- deployment/asterisk/extensions.conf: new [from-telecom] context -> 7100
- .env.production.template: document ASTERISK_TELECOM_KZ_PASSWORD
- scripts/deploy_gitlab.sh: also bring up the asterisk compose file

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 01:19:06 +05:00
Yera All 0d7e833a0d fix(voice): ignore playback audio until real barge-in 2026-04-13 12:28:36 +05:00
Yera AllandClaude Opus 4.6 6798320209 fix: remove dead code duplicates, add SQL LIMIT across all services
- Remove duplicate function definitions with hardcoded "AI-оператор" strings
  (ai_voice_runtime, ai_orchestrator, voice_name_config, voice.py)
- Remove unreachable dead code after return in ai_voice_runtime
- Add SQL LIMIT to 17 unbounded queries across 12 services to prevent OOM
- Move Python-side filtering to SQL WHERE in reporting_service
- Downgrade 19 logger.warning to logger.info for normal-flow events in media_runtime

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 12:04:26 +05:00
Yera All 6b8f5d069b feat(ai): add rolling conversation summary memory 2026-04-13 11:59:43 +05:00
Yera All 989bf9a0c1 fix(voice): stabilize v2 streaming topic handling 2026-04-12 21:59:32 +05:00
Yera All 7f4c80add1 test(voice): align runtime expectations with v2 fallback 2026-04-12 21:32:49 +05:00
Yera All 57bd5cad4b fix(voice): suppress low-signal turns and false lookup replies 2026-04-12 20:40:25 +05:00
Yera All 18ab5aa2e2 fix(voice): include requests for streaming asr sidecar 2026-04-12 15:12:43 +05:00
Yera All a5b402f329 fix(deploy): pass sidecar app module at container runtime 2026-04-12 14:26:24 +05:00
Yera All f2ece35588 fix(tests): isolate db state and stabilize voice runtime suite 2026-04-12 11:38:02 +05:00
Yera All e581d48c44 test(voice): wait on sidecar runtime events 2026-04-12 02:31:51 +05:00
Yera All adc7d4babb test(voice): wait on fallback turn completion 2026-04-12 02:21:25 +05:00
Yera All 41d4a5ea86 test(voice): harden streaming fallback scenario 2026-04-12 02:07:12 +05:00
Yera All 691899b969 test(voice): deflake streaming sidecar fallback wait 2026-04-12 01:59:19 +05:00
Yera All c4c8b69494 fix(sql): backfill whatsapp chat_id in compat init 2026-04-12 01:52:27 +05:00
Yera All bdaf65a256 fix(db): avoid repeated sqlite schema initialization 2026-04-12 01:45:49 +05:00
Yera All ee9889501f fix(deploy): preserve streaming asr model cache 2026-04-12 01:42:28 +05:00
Yera All 9386b8f9b9 feat(voice): add streaming asr sidecar for v2 duplex 2026-04-12 01:38:30 +05:00
Yera All b75b76fae6 feat(voice): add duplex streaming v2 pipeline 2026-04-11 17:38:21 +05:00
Yera All fc976804e4 feat(voice): add admin-configurable elevenlabs tts 2026-04-11 16:46:43 +05:00
Yera All 9d0b76deca fix(voice): make fast ack more audible 2026-04-11 02:27:49 +05:00
Yera All 05dc31855d feat(voice): add controlled emotive ack layer 2026-04-11 02:14:53 +05:00
Yera All 5588f99db9 fix(voice): fast fallback for off-domain requests 2026-04-11 01:55:28 +05:00
Yera All 6413beeba1 feat(voice): emit immediate ack on turn close 2026-04-11 01:40:04 +05:00
Yera All c39fad7e2d feat(voice): add phase 1.1 partial asr fast ack 2026-04-11 01:24:21 +05:00
Yera All ba0e1143ca fix(deploy): sync ivr prompt wavs to server 2026-04-08 16:00:49 +05:00
Yera All bfaec370f9 chore: remove dead supervisor analytics and archived tooling 2026-04-08 15:59:07 +05:00
Yera All cf824f3fdd fix(ivr): play russian language prompt first 2026-04-08 15:42:57 +05:00
Yera All 5d192621b0 Show name status in operator customer profile 2026-04-08 15:35:37 +05:00
Yera All 6f25de1f62 Add customer profile name editing for operator 2026-04-08 15:13:05 +05:00
Yera All fa2ea1ef03 fix(voice): preserve llm name corrections in downstream turns 2026-04-08 12:49:14 +05:00
Yera All a4b1eb2818 feat(voice): auto-populate name from known customer on repeat calls
When a new voice session starts and the customer already has a trusted
display_name on file (e.g. from a previous call), automatically set
name_status to 'name_obtained' so the AI greets them by name instead
of asking again.
2026-04-08 01:19:40 +05:00
Yera All a47c09d465 fix(voice): prevent regex heuristic from overwriting LLM-extracted customer name
- Block old _voice_downstream_name_update from overwriting name_obtained status
  unless user explicitly says 'меня зовут X' (explicit_candidate only)
- Move _persist_voice_name_state to run AFTER LLM extraction, not before,
  so LLM always gets a chance to override the regex result
- Fixes bug where phrases like 'можешь назвать их' were incorrectly
  captured as customer name, overwriting the real name
2026-04-08 01:06:08 +05:00
Yera All 6035c5d4d0 feat(ai): shift name extraction to LLM payload piggybacking to improve contextual accuracy 2026-04-07 11:01:17 +05:00
Yera All 1444cf07ab fix(ai): ignore generic phrases and stopwords in voice name extraction 2026-04-07 01:01:06 +05:00
Yera All f976a0c2be test(ai): update Yandex TTS speed assertion to 1.1x default 2026-04-07 00:48:52 +05:00
Yera All 5c1f720b46 feat(ai): apply 1.1x speed default to Yandex TTS as well 2026-04-07 00:45:09 +05:00
Yera All 025f1a59ce chore(ai): lower VAD trailing silence to 500ms to reduce latency 2026-04-07 00:44:08 +05:00
Yera All 8ca773d27d feat(ai): Add support for OpenAI TTS speed configuration, defaulting to 1.1x 2026-04-07 00:43:20 +05:00
Yera All 0a8f586f97 feat(ai): Append inline name followup to initial greeting to meet IVR expectations 2026-04-07 00:25:56 +05:00
Yera All 02df90138d Revert broken voice_start patch 2026-04-07 00:24:32 +05:00
Yera All e2148a5cb3 Fix AI not asking name during IVR flow by enforcing voice_start profile 2026-04-07 00:13:22 +05:00
Yera All da2cd31c32 fix(ui): preserve scroll position on customer profile feed 2026-04-07 00:04:47 +05:00
Yera All 8b2975ca9a fix(ai-orchestrator): restore cyrillic text formatting 2026-04-06 23:58:42 +05:00
Yera All ae328076cf fix(docs): remove obsolete document checks from postgres tests 2026-04-06 23:40:11 +05:00
Yera All f048ed5ffc fix(docs): remove obsolete workspace hygiene assert about deleted roadmap 2026-04-06 23:36:30 +05:00
Yera All 064f480341 fix(models): resolve PydanticUndefinedAnnotation forward refs 2026-04-06 23:31:17 +05:00
Yera All 1ff8fd7102 docs: recreate documentation structure with updated specs 2026-04-06 23:19:24 +05:00
Yera All 1497bb0feb feat(ai): Finalize voice operator persona and voice name flow 2026-04-06 23:19:24 +05:00
Yera All 6d8f6e67f0 Fill new voice name-flow mock analytics data 2026-04-05 10:46:09 +05:00
Yera All d959c2b2f0 Add voice name flow controls and analytics 2026-04-05 03:26:18 +05:00
Yera All d15fcf7129 Add demo data prune job 2026-04-04 04:10:09 +05:00
Yera All 14da622d36 Add customer profile shortcuts 2026-04-04 03:56:18 +05:00
Yera All ed76f89c9a Fix analyst saved view copy and refresh asset version 2026-04-04 03:46:23 +05:00
Yera All 3d074d737a Clear Docker env for source production deploy 2026-04-04 03:35:47 +05:00
Yera All 21ec5b0305 Copy gateway route file in analyst hotfix job 2026-04-04 03:25:28 +05:00
Yera All 2ecd8240e6 Create analyst asset directories in hotfix container 2026-04-04 03:22:28 +05:00
Yera All 40a750fbe6 Target deployed call-center-app in hotfix job 2026-04-04 03:20:26 +05:00
Yera All a486e3bb88 Match production gateway container name in hotfix job 2026-04-04 03:18:33 +05:00
Yera All e8416ecefe Clear Docker TLS vars for analyst asset hotfix 2026-04-04 03:16:37 +05:00
Yera All a53f7b12fb Add analyst asset hotfix job for prod runner 2026-04-04 03:14:10 +05:00
Yera All dcddd12c56 Use sudo fallback for local source deploy 2026-04-04 03:07:03 +05:00
Yera All 271c3f1f7d Fallback source deploy to local production path 2026-04-04 03:02:59 +05:00
Yera All a7033a8dc3 Add source-based production deploy fallback 2026-04-04 02:58:40 +05:00
Yera All 0c95be6963 Adapt registry deploy jobs for shell prod runner 2026-04-04 02:54:37 +05:00
Yera All b80d3b77ed Assign build and deploy jobs to prod runner 2026-04-04 02:51:28 +05:00
Yera All 6f1820e2ab Make postgres readiness optional for registry builds 2026-04-04 02:39:50 +05:00
Yera All 46c15f1501 Fix shell runner Python dependency install 2026-04-04 02:18:07 +05:00
Yera All 6f69847319 Retry CI after runner shell fix 2026-04-04 02:13:17 +05:00
Yera All 36d98242a9 Remove CI cache for shell runner 2026-04-04 02:11:52 +05:00