Commit Graph

12 Commits

Author SHA1 Message Date
Christian Gick
a6b1f46116 fix: use python:3.11-slim-trixie for GLIBC 2.38 compat with patched FFI
rust:latest produces FFI needing CXXABI_1.3.15 (GCC 14 libstdc++).
GCC 14 libstdc++ needs GLIBC 2.38. Bookworm only has 2.36.
Trixie has GLIBC 2.38+ — fixes the CXXABI_1.3.15 runtime error.
Also reverts to rust:latest since bookworm GCC 12 cant compile webrtc C++20.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 18:13:50 +02:00
Christian Gick
cffedb53a3 fix: use rust:bookworm build stage for CXXABI compat with python:3.11-slim-bookworm
rust:latest links against GLIBC_2.38 libstdc++ which is incompatible with bookworm.
rust:bookworm (1.93.1) produces FFI binary compatible with bookworm libstdc++.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 18:01:42 +02:00
Christian Gick
541a26c354 fix: revert libstdc++ copy that broke GLIBC compat
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 17:22:36 +02:00
Christian Gick
85f8df5690 fix: VoiceSession cleanup on call leave + CXXABI compat + proactive E2EE key read
- Stop VoiceSession when call leave event received
- Copy libstdc++ from rust build stage to fix CXXABI_1.3.15 mismatch
- Read caller encryption key from room state before starting VoiceSession

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 17:21:51 +02:00
Christian Gick
e2b7233077 fix: Clone with --recurse-submodules for yuv-sys/libyuv, add make/clang
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 16:53:57 +02:00
Christian Gick
2e040a9086 fix: Add nasm for yuv-sys build
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 16:47:52 +02:00
Christian Gick
78cae61b90 fix: Add libva-dev and libglib2.0-dev for webrtc-sys build
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 16:42:25 +02:00
Christian Gick
10de057829 fix: Use rust:latest for time crate MSRV 1.88
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 16:33:58 +02:00
Christian Gick
85e76a468f fix: Use Rust 1.85 for edition2024 crate support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 16:32:06 +02:00
Christian Gick
fc3d915939 feat(e2ee): Add HKDF E2EE support for Element Call compatibility
Element Call uses HKDF-SHA256 + AES-128-GCM for frame encryption,
while the LiveKit Rust SDK defaults to PBKDF2 + AES-256-GCM.

- Multi-stage Dockerfile builds patched Rust FFI from EC-compat fork
- Generates Python protobuf bindings with new fields
- patch_sdk.py modifies installed livekit-rtc for new proto fields
- agent.py passes E2EE options with HKDF to ctx.connect()
- bot.py exchanges encryption keys via Matrix state events
- Separate Dockerfile.bot for bot service (no Rust build needed)

Ref: livekit/rust-sdks#904, livekit/python-sdks#570

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 16:29:06 +02:00
Christian Gick
cbc61f1646 feat: Add E2E encryption support to Matrix bot
- matrix-nio[e2e] with libolm for Megolm encryption
- Persistent crypto store volume for key persistence
- Auto-accept key verification (SAS)
- Upload device keys on first login

CF-1147

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 07:56:46 +02:00
Christian Gick
fa65fbeb3d feat: Matrix AI voice agent (LiveKit + LiteLLM)
Bot @ai:agiliton.eu accepts room invites, dispatches LiveKit agent.
Agent joins call with STT (Groq Whisper) → LLM (Sonnet) → TTS (ElevenLabs)
pipeline, all routed through LiteLLM.

CF-1147

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 07:31:52 +02:00