v0.12.4

Vexa-ai/vexav0.12.4Jul 14, 2026by DmitriyG228

Upgrading?

AI Summary

Focused entirely on reliability and honesty. This release adds Jitsi support, fixes bots freezing or hanging, ensures recordings download completely, and ensures honest error reporting instead of silent failures.

Key Highlights

  • Jitsi support with correct handling of members-only lobbies.
  • Microsoft Teams bot no longer hangs on admission.
  • Recordings download complete even if the bot crashes mid-meeting.
  • No more silent transcript loss: pipeline freeze fixes implemented.
  • Honest errors: 503 instead of 401 when auth is down.

New Features

  • Jitsi platform support
  • Recording download reliability
  • Honest error handling (503 on auth down)
  • Duplicate billing prevention via stable webhook IDs

Full Release Notes

**Meeting infrastructure you can leave running: this release closes the failure modes behind our worst incidents, and where things still break, it makes Vexa break honestly.**

> 🎉 **New platform — Jitsi joins the lineup.** Vexa now sends bots to **Google Meet, Microsoft Teams, Zoom, and Jitsi**. Jitsi support arrived recently and this release makes it solid: bots correctly handle real members-only lobbies (#597).

If you self-host transcription, reliability *is* the product. A bot that silently drops out of a meeting, a recording that reports "saved" but downloads as zero bytes, a dashboard that shows green while every request fails — these don't just annoy, they cost you the meeting, and you can't get it back. v0.12.4 is focused entirely on making Vexa dependable: bots that stay seated, data that survives crashes, and a system that tells you the truth when something is wrong.

## Bots that stay in the meeting
- **Microsoft Teams:** a bot that got admitted no longer hangs up on itself a fraction of a second later. A background component failing to load used to be fatal; now it's survivable and the bot stays and keeps transcribing (#599).
- **Jitsi:** joining a members-only room now correctly waits in the lobby instead of silently getting stuck in a broken state (#597).
- **Google Meet:** a bot can no longer freeze forever on an unhealthy display (#608), and self-hosters can tune speaker-stream latency with ordinary environment variables (#609).

## Your recordings and transcripts survive
- **Recordings download complete.** A recording the API confirmed as uploaded now downloads byte-for-byte, even if the bot crashed mid-meeting (#611).
- **No more silent transcript loss.** We closed a class of failure where the pipeline quietly froze for hours while health checks stayed green and transcripts were lost — it now reports real health and bounds its memory (#606).

## It fails honestly, not silently
- **Won't boot broken.** A deploy missing a required secret now refuses to start with one clear error naming the missing key, instead of coming up "healthy" and then failing every request (#605).
- **Honest errors under load.** When auth is down, callers get an honest "try again shortly" (503) instead of a misleading "invalid key" (401). Valid keys keep authenticating even when the system is busy — closing the mass sign-in failures some users hit in early July (#601).

## Steady under pressure
- **Database stays responsive** during busy hours: transcript polling no longer holds a connection open while it waits (#602), and a brief Redis blip heals itself in seconds instead of needing a manual restart (#603).
- **No duplicate billing.** Each webhook event now carries a stable ID across retries and replays, so receivers can ignore duplicate deliveries (#604, #519).
- **Guardrails baked in.** New automated checks block any change that would exceed the database's connection limit (#610) or quietly alter its schema (#612).

## Proven on
The **Teams** (#599) and **Jitsi** (#597) fixes were **witnessed live** — a real bot joining a real meeting and staying seated. The **config-safety refusal** (#605) was confirmed on the actual published image. Everything else is **proven by named automated tests**, not assumed — we say what we saw, not a bare "it works." Full per-value witness receipt: `releases/v0.12.4/witness.json`.

**Upgrade:** self-hostable today via the published **`:v0.12.4`** images (stable `:v012` now points here) — you run the exact build we validated.

Related Repositories