The community batch — 7 PRs from 5 external contributors, plus the Teams live-transcript fixes and reliability work. Baseline v0.12.15.
Highlights
Google Meet & bots
- Leave-when-alone — a bot alone in a meeting now emits
left_aloneand leaves instead of burning capacity for up to 4h (#545, @m-tauqueer). Witnessed live on a real Google Meet. - Lite bot no longer echoes meeting audio back into the call (#819, @Ahmed-Tokyo). Witnessed live.
- Redis first-use connect race ("Socket already opened") fixed via idempotent memoized connect (#820, @Ahmed-Tokyo).
Teams / mixed lane
- Live transcripts render in real time — the mixed-lane mapper now stamps
absolute_start_time, so Teams/Zoom transcripts paint live on the dashboard instead of only after a reload (#895). - Stable speaker labels — unattributed turns show a single "Speaker" instead of a new fake speaker per line (#890).
Transcription
- Bring-your-own STT — any OpenAI-compatible endpoint, documented (#537, @LauraGPT).
- Degraded STT reports why on the terminal lifecycle event instead of completing silently (#552).
- Google Meet silence-hallucination suppression (ja/tr phrase lists + near-silent submit gate).
API & correctness
- Malformed
native_meeting_id→ typed 422 at intake, not an asyncpg 500 (#843). - Meeting timestamps serialize as UTC (
Z) so clients render local time correctly (#860, @jacobschooley). - Zoom URLs now accepted in the join dialog (#897); honest version surfacing on webapp + dashboard (#72).
Honest boundaries
left_alonedoes not yet fire on Zoom/Teams/Jitsi when the bot is alone from the start (readiness latches on first audio) — #866.- Community-contributed STT examples (FunASR/SenseVoice) are marked unwitnessed — #863.
- Dashboard browser logout has a known gap — #899. Mixed-lane transcript quality (oversplit/hallucination) is the focus of v0.12.17 (#847).
Contributors: Mohammad Tauqueer, LauraGPT, Ahmed Tokyo, Jacob Schooley, Dmitriy Grankin.
Full changelog: https://docs.vexa.ai/changelog · Integration PR: #867