v0.12.28

QwenLM/Qwen-MM-Pluginsv0.12.28Oct 9, 2026by DmitriyG228

Upgrading?

AI Summary

This release significantly improves Zoom transcript accuracy with precise timing and complete capture during busy calls, while shifting storage infrastructure to support versitygw and custom S3 configurations.

Key Highlights

  • Complete Zoom transcripts on busy calls with finalized audio per turn.
  • Precise timing for segments using a shared clock with natural pause detection.
  • Recordings now stored in versitygw (Apache-2.0, plain files) with custom S3 support.
  • Zero-edit setup allows `make all` to generate internal keys automatically.
  • Helm chart support for custom S3 endpoints and existing secrets.

Breaking Changes

  • Run `make migrate-storage` to copy existing recordings from the old volume.
  • Set `MINIO_ENDPOINT=storage:9000` in `.env` for Compose deployments.
  • Boot now requires a real `INTERNAL_API_SECRET` (upgrade notes imply dependency on v0.12.27+ standards).

New Features

  • Complete Zoom transcripts on busy calls.
  • Precise timing for Zoom segments.
  • Recordings in versitygw.
  • Zero-edit setup capability.
  • Custom S3 endpoint support on Helm.

Full Release Notes


## v0.12.28

### Zoom

- **Complete transcripts on busy calls (#1781).** Every Zoom turn is captured in full, even when
  the bot's page is under heavy load, and each turn is finalized from all of its audio.
- **Precise timing (#1781, #1778).** Segments are timed from the captured audio on one shared
  clock. Short pauses no longer split a turn, and long turns break at a natural pause.
- **A steadier live view (#1778).** The live tail always shows the latest draft.

### Install

- **Recordings in versitygw (#1760).** Lite and Compose now store recordings in versitygw:
  Apache-2.0, pinned by digest, plain files in a local volume. Thanks to @infocillasas (#1671).
- **Your own S3 on Helm (#1760).** Set `storage.s3.endpoint`, `storage.s3.bucket` and
  `storage.s3.existingSecret`.
- **Zero-edit setup (#1760).** `make all` generates its own internal keys; any value you set is kept.

## Upgrading

1. **Lite and Compose:** run `make migrate-storage` to copy existing recordings; it verifies every
   object and keeps the old volume. On Compose, set `MINIO_ENDPOINT=storage:9000` in `.env` (and
   `IMAGE_TAG=v0.12.28` if you pin it). [Guide](https://docs.vexa.ai/upgrade-from-minio)
2. **Helm:** copy your objects to your bucket and set `storage.s3` before upgrading.
   [Guide](https://docs.vexa.ai/deployment-kubernetes#upgrading-from-the-built-in-minio)

---

**Images (eleven).** Seven are the v0.12.27 bytes, unchanged: `vexaai/v012-admin-api@sha256:4c702354384eafe3a933cd537a106b7c15067cfd368a5f6da1a6e675e7e03e04`, `vexaai/v012-runtime@sha256:a1f6448fbb380b9433364e8b572ec25a12aa4f274bf403f1d83a89cbf5812f2d`, `vexaai/v012-gateway@sha256:2e76319812f28adbb6bc328ac0a7484d3826924a9d38a9dd9599dd190fbb0f19`, `vexaai/v012-mcp@sha256:4b2dbc08023ff424f40453d61a8f4d38a72de7eba1e5aaad1e428c309f63d338`, `vexaai/v012-agent-api@sha256:6eb37574b33aab233aabbe5907e06e106bae44a403e5df781a436da8201a928d`, `vexaai/v012-agent-worker@sha256:a1120b24765ff6b1c86c5f9ddee35b5e71fdbb9543a23b918b278373ad705022`, `vexaai/v012-flows@sha256:e040c0de48924e78440e9cc4e71ed986471f101f99fbe5a5bd091af7e59996fa`. Rebuilt: `vexaai/v012-meeting-api@sha256:cca46266feedcff29c3478472fd40133ba51f3c49a489a290040a56f1f0f3dca`, `vexaai/v012-terminal@sha256:d65f81c284553e98e3ee2db4475ee6deea8691f0bd95ccf064e4a99c564095d3`, `vexaai/vexa-lite@sha256:9eebb534fdab4079baf11af678968ac8d9679e20ce48db206bcf5a62b85eb538`. Bot: `vexaai/vexa-bot@sha256:e2398bfac7fa8671c209e996bc6451598b58438c851956ec050a0300f5a5354b`. Published from the reviewed candidate packet `releases/v0.12.28/candidate-images.json` and validated by [run 37914860589](https://github.com/Vexa-ai/vexa/actions/runs/37914860589).

**In production:** vexa.ai has run this bot since 8 October, and its admin-api, gateway, runtime and
MCP are the same bytes as this release.

Related Repositories