Commit Graph

  • b275e7cb88 feat(voice): add Confluence read/write tools for voice sessions Christian Gick 2026-02-23 13:09:34 +02:00
  • e81aa79396 fix: increase voice PDF context to 40k chars, fix language detection sanity Christian Gick 2026-02-23 12:40:13 +02:00
  • 751bfbd164 fix: encrypted file handler + summary heading/markup fixes Christian Gick 2026-02-23 12:00:10 +02:00
  • 040d4c9285 fix(markup): add heading support to _md_to_html (h1/h2/h3) Christian Gick 2026-02-23 11:51:48 +02:00
  • 42ba3c09d0 feat(voice): all file types + images in voice context (MAT-10) Christian Gick 2026-02-23 11:45:54 +02:00
  • 90e662be96 feat(voice): PDF context in voice calls + call transcript summary (MAT-10) Christian Gick 2026-02-23 11:21:31 +02:00
  • 1ec63b93f2 feat(voice): per-user timezone via memory preferences Christian Gick 2026-02-23 11:02:03 +02:00
  • e84260f839 feat(prompt): add user timezone and LLM model to voice prompt Christian Gick 2026-02-23 10:56:40 +02:00
  • 277d6b5fe4 fix(e2ee): restore 3s key rotation wait, fix mute callback arg order Christian Gick 2026-02-23 10:43:38 +02:00
  • a11cafc1d6 feat(memory): store full conversation exchanges instead of LLM-extracted facts Christian Gick 2026-02-23 10:40:59 +02:00
  • 150df19be1 fix(tts): revert to multilingual_v2 for better quality, keep speed 1.15x Christian Gick 2026-02-23 10:38:46 +02:00
  • 294fbac913 feat(tts): switch to flash model + speed 1.15x for snappier voice Christian Gick 2026-02-23 10:33:27 +02:00
  • 6443aa0668 chore: Trigger rebuild Christian Gick 2026-02-23 08:41:02 +02:00
  • c532f4678d fix(e2ee): consolidate key timing + noise filtering (MAT-40, MAT-41) Christian Gick 2026-02-23 08:33:40 +02:00
  • 4b4a150fbf fix(e2ee): extend key rotation wait to 10s, debug late key events Christian Gick 2026-02-22 21:54:27 +02:00
  • 230c083b7b fix(e2ee): revert incorrect HKDF patch, remove pre-ratcheting Christian Gick 2026-02-22 21:44:11 +02:00
  • d30e9f8c83 chore: Trigger rebuild Christian Gick 2026-02-22 21:14:47 +02:00
  • 62be6b91d6 fix(e2ee): patch Rust FFI HKDF to match Element Call JS SDK parameters Christian Gick 2026-02-22 21:14:31 +02:00
  • 220ad6cced chore: Trigger rebuild Christian Gick 2026-02-22 20:14:20 +02:00
  • ea52236880 feat(e2ee): make E2EE configurable via E2EE_ENABLED env var Christian Gick 2026-02-22 20:14:06 +02:00
  • 5bfe0d0188 chore: Trigger rebuild Christian Gick 2026-02-22 20:01:14 +02:00
  • e3be4512d9 fix(e2ee): use correct Element Call E2EE parameters Christian Gick 2026-02-22 20:00:55 +02:00
  • c2338fca46 chore: Trigger rebuild Christian Gick 2026-02-22 19:45:13 +02:00
  • 7b7079352f fix(noise): expand STT artifact filter to catch subtitle metadata leaks Christian Gick 2026-02-22 19:43:22 +02:00
  • 5984132f60 chore: Trigger rebuild Christian Gick 2026-02-22 19:38:06 +02:00
  • 9e0f2a15b6 chore: Trigger rebuild Christian Gick 2026-02-22 19:35:11 +02:00
  • c38ab96054 chore(voice): switch to Robert Ranger voice Christian Gick 2026-02-22 19:34:54 +02:00
  • 38c3d93adf chore: Trigger rebuild Christian Gick 2026-02-22 19:07:45 +02:00
  • fa9e95b250 fix(noise): filter STT noise annotations via on_user_turn_completed Christian Gick 2026-02-22 19:07:31 +02:00
  • 7f03cc1f37 chore: Trigger rebuild Christian Gick 2026-02-22 19:02:56 +02:00
  • 6c1073e79d fix(vad): remove competing AudioStream that caused intermittent VAD failures Christian Gick 2026-02-22 19:02:39 +02:00
  • a8d4663f10 fix(tts): revert to Jack Marlowe voice, vmVmHDKBkkCgbLVIOJRb not accessible Christian Gick 2026-02-22 18:52:06 +02:00
  • 06b588f313 fix(voice): add noise annotation filter to prompt + switch voice Christian Gick 2026-02-22 18:49:31 +02:00
  • e926908af7 test: revert to base Agent to check if stt_node override breaks VAD Christian Gick 2026-02-22 18:45:56 +02:00
  • fb09808a8c fix(vad): lower activation threshold 0.60→0.50 Christian Gick 2026-02-22 18:42:21 +02:00
  • 8f80e7d543 fix(tts): switch to Jack Marlowe - native German voice Christian Gick 2026-02-22 18:37:05 +02:00
  • 125b0f5d2e fix(tts): spell out numbers in words for German TTS Christian Gick 2026-02-22 18:35:52 +02:00
  • 1b08683c17 fix(vad): lower activation threshold 0.75→0.60 Christian Gick 2026-02-22 18:15:06 +02:00
  • 8445c9325c revert(tts): remove pcm_24000 encoding, keep language=de Christian Gick 2026-02-22 18:12:35 +02:00
  • e090c60c19 feat(tts): upgrade to pcm_24000 encoding + language=de Christian Gick 2026-02-22 18:08:23 +02:00
  • 1e1911995f fix(stt): filter ElevenLabs noise annotations before LLM Christian Gick 2026-02-22 17:59:17 +02:00
  • 02a7c91eaf fix(vad): raise activation threshold to reduce noise triggers Christian Gick 2026-02-22 17:52:38 +02:00
  • 39ef4e0054 fix(stt): pass http_session to ElevenLabs STT plugin Christian Gick 2026-02-22 17:45:42 +02:00
  • 2dce8419d4 fix(stt): set scribe_v2_realtime model with language_code for streaming STT Christian Gick 2026-02-22 17:26:51 +02:00
  • 382a98dd09 chore: Trigger rebuild Christian Gick 2026-02-22 17:26:03 +02:00
  • 9bd7f27a84 fix: Use LITELLM_MASTER_KEY for memory service Christian Gick 2026-02-22 17:25:16 +02:00
  • 4012950197 fix: Use scribe_v2_realtime model for ElevenLabs STT (streaming mode) Christian Gick 2026-02-22 17:24:16 +02:00
  • 045e5831a6 chore: Trigger rebuild Christian Gick 2026-02-22 16:24:47 +02:00
  • 52f8cb569c feat(voice): add cross-call memory and Brave Search tool Christian Gick 2026-02-22 15:27:59 +02:00
  • 2b8744de6e fix(voice): full E2EE bidirectional audio pipeline working Christian Gick 2026-02-22 15:17:35 +02:00
  • c379064f80 fix(voice): set caller key in on_track_subscribed — frame cryptor must exist for HKDF to apply Christian Gick 2026-02-22 14:05:54 +02:00
  • 190b35945c fix(voice): guard e2ee_manager access when E2EE disabled (diagnostic mode) Christian Gick 2026-02-22 13:46:51 +02:00
  • c188a2daf6 test(voice): disable E2EE entirely — check if EC sends plaintext vs encrypted Christian Gick 2026-02-22 13:34:26 +02:00
  • 3d05b503c6 test(voice): pre-derive HKDF in Python, use set_shared_key to bypass Rust FFI HKDF Christian Gick 2026-02-22 12:24:57 +02:00
  • 7adeebfe05 fix(voice): restore set_shared_key fallback + failure_tolerance=10 from working commit e3ede3f Christian Gick 2026-02-22 11:46:32 +02:00
  • 2a799f5760 fix(voice): set caller E2EE key on participant_connected + for all remote LK identities Christian Gick 2026-02-22 11:30:23 +02:00
  • 5d31886192 debug(voice): add VAD start/stop events to trace where audio pipeline breaks Christian Gick 2026-02-22 11:18:51 +02:00
  • f74a11fde8 fix(voice): separate aiohttp sessions for STT and TTS Christian Gick 2026-02-22 11:15:46 +02:00
  • 475ab38f6f chore: Trigger rebuild Christian Gick 2026-02-22 11:09:17 +02:00
  • e3c1ded328 feat(voice): inject datetime into prompt, respond in DE/EN Christian Gick 2026-02-22 11:02:56 +02:00
  • 92ab906a21 chore(voice): switch default voice to George (multilingual DE/EN) Christian Gick 2026-02-22 10:59:44 +02:00
  • 7696ca68ee chore: Remove debug logging and pipecat-poc after E2EE fix confirmed working Christian Gick 2026-02-22 10:55:47 +02:00
  • ac8a8a177c chore: Trigger rebuild Christian Gick 2026-02-22 10:35:28 +02:00
  • 63545f032e fix(voice): set E2EE keys immediately after connect, before rotation wait Christian Gick 2026-02-22 10:34:20 +02:00
  • 4ab5486b5c fix(voice): log remote participant identity and track count in E2EE poll Christian Gick 2026-02-22 10:30:38 +02:00
  • c4581c2917 fix(voice): reduce key rotation wait to 2s, increase E2EE poll to every 10s Christian Gick 2026-02-22 10:27:19 +02:00
  • 5973ed1db3 fix(voice): revert to KDF_HKDF=1 with raw keys — proto value 0 is PBKDF2 not raw Christian Gick 2026-02-22 09:26:44 +02:00
  • 6b457a2aef fix(voice): use correct HKDF info=128zeros, length=16 matching LiveKit JS SDK Christian Gick 2026-02-22 09:09:34 +02:00
  • 4f8bfbe479 fix(voice): pre-derive HKDF in Python, use KDF_NONE to bypass Rust FFI HKDF Christian Gick 2026-02-22 08:47:41 +02:00
  • c330900a3a fix(voice): wait for key rotation via nio sync, not HTTP fetch Christian Gick 2026-02-22 08:23:17 +02:00
  • cf519595d6 fix(voice): poll for EC key rotation post-connect, set all key indices Christian Gick 2026-02-22 08:20:44 +02:00
  • 8b143a2ac4 debug(e2ee): poll frame_cryptors() every 30s for state diagnosis Christian Gick 2026-02-22 08:14:19 +02:00
  • 630a0de970 fix(e2ee): revert to per-participant mode with proper rotation handling Christian Gick 2026-02-22 08:10:27 +02:00
  • 295c0ed5cb debug(e2ee): decode encryption state to human-readable names Christian Gick 2026-02-22 08:00:28 +02:00
  • a6236a3817 debug(e2ee): update both shared+per-participant keys on rotation Christian Gick 2026-02-22 07:53:40 +02:00
  • b22c4d48e9 debug(e2ee): add e2ee_state_changed event listener for diagnostics Christian Gick 2026-02-22 07:50:12 +02:00
  • a8b30418c8 debug(e2ee): verify shared key + belt-suspenders per-participant key Christian Gick 2026-02-22 07:47:09 +02:00
  • 65340bf0ee fix(e2ee): use set_shared_key for live key rotation updates Christian Gick 2026-02-22 07:38:06 +02:00
  • 9cf4afc928 fix(e2ee): pass caller_key as shared_key at connect time Christian Gick 2026-02-22 07:31:14 +02:00
  • 4875a7dc9b fix(e2ee): add set_shared_key fallback for incoming audio decryption Christian Gick 2026-02-22 07:25:26 +02:00
  • 893e07a543 fix(e2ee): set caller keys at correct indices from timeline Christian Gick 2026-02-22 07:19:28 +02:00
  • 685218247a fix: Use empty bytes instead of None for shared_key Christian Gick 2026-02-22 07:02:33 +02:00
  • 9ebf90c8bb fix: Use per-participant E2EE mode (no shared_key) Christian Gick 2026-02-22 07:00:22 +02:00
  • c290332a1e fix: Disable close_on_disconnect to keep session alive Christian Gick 2026-02-22 06:49:44 +02:00
  • b65d04389b fix: Switch E2EE to per-participant keys instead of shared key Christian Gick 2026-02-22 06:41:20 +02:00
  • ced2783a09 fix: Enable E2EE with caller's key as shared key Christian Gick 2026-02-21 20:51:43 +02:00
  • 4a93827de3 revert: Restore voice.py and bot.py to last known working state (9aef846) Christian Gick 2026-02-21 20:47:51 +02:00
  • 463286a61e revert: Disable E2EE at LiveKit level — shared key incompatible with Element Call Christian Gick 2026-02-21 20:44:32 +02:00
  • 2d8a7b4420 fix: Use same shared key for both directions (caller key reuse) Christian Gick 2026-02-21 20:41:23 +02:00
  • 2fa13c4958 fix: Use caller key as shared_key at connect time for immediate decryption Christian Gick 2026-02-21 20:35:55 +02:00
  • 5f3e733ba5 feat: Voice prompt with model transparency, datetime, auto language Christian Gick 2026-02-21 20:28:13 +02:00
  • 939324ca76 chore: Switch voice to George (warm, captivating) Christian Gick 2026-02-21 20:20:27 +02:00
  • e3ede3fc2c fix: Voice bot identifies as Agiliton Assistant, not Claude Christian Gick 2026-02-21 19:40:24 +02:00
  • 533847c952 fix: Switch E2EE from shared key to per-participant key mode Christian Gick 2026-02-21 18:50:19 +02:00
  • 9aef846619 fix: disable E2EE to get working voice pipeline, E2EE fix deferred Christian Gick 2026-02-21 18:30:11 +02:00
  • 67f4b8159e fix: match Element Call HKDF params (ratchetWindowSize=10, keyringSize=256) Christian Gick 2026-02-21 18:22:54 +02:00
  • 96183a8ccd test: temporarily disable E2EE to isolate audio pipeline issue Christian Gick 2026-02-21 17:38:57 +02:00
  • 1bc044eaae fix: republish caller E2EE key as shared key, fallback to no-E2EE Christian Gick 2026-02-21 17:35:31 +02:00
  • 08f4e115b9 fix: filter own key events, fix RoomOptions None, wait for participant Christian Gick 2026-02-21 17:33:12 +02:00
  • 6e1e9839cc fix: use timeline events for E2EE key exchange (not state events) Christian Gick 2026-02-21 17:28:56 +02:00