v0.10.5.2

Vexa-ai/vexav0.10.5.2May 1, 2026by DmitriyG228

Upgrading?

AI Summary

A surgical hotfix addressing a cross-platform mid-meeting crash caused by a transceiver direction mutation, restoring stability for Google Meet, Teams, and Zoom Web.

Key Highlights

  • Reverted `transceiver.direction` mutation to fix cross-platform execution context crash.
  • Fixed bot-side `failure_stage` tracker to advance correctly through status transitions.
  • Validated across 3 platforms with no crashes over 70+ minutes of testing.
  • Emergency hotfix protocol implemented with customer re-test validation.

New Features

  • Improved bot failure state tracking accuracy.
  • Cross-platform meeting stability restoration.

Full Release Notes

**Surgical patch on v0.10.5.** One-line revert closing the cross-platform `Execution context destroyed` mid-meeting crash.

## What's fixed

- **`#291` (umbrella) + `#284` + `#281`** — `transceiver.direction` mutation at site 2 of `services/vexa-bot/core/src/services/screen-content.ts:1218-1228` removed. v0.10.5 reverted the same pattern at site 1 in [`8ab7f49`](https://github.com/Vexa-ai/vexa/commit/8ab7f49); this release reverts the duplicate site 2 inside the live `RTCPeerConnection` track-event handler. Cross-platform — same code path is reachable from GMeet (`recording_enabled=true` mid-meeting crash), Teams (44ms post-admission drop), and Zoom Web (track-event crash).
- **`#294`** — bot-side `failure_stage` tracker advances on each successful status_change callback for `joining → awaiting_admission → active`. Fixes the stale-tracker bug where every crash post-admission was mislabeled `failure_stage: "joining"` in the JSONB. Server-side derivation in `MeetingResponse.from_orm` (`#276`) remains as defense-in-depth.

## Production signal pre-fix

Multiple customer GMeet meetings on the post-v0.10.5 buggy image crashed with the same stack frame at `recording.js:102` over a 24h window. Variants ranged from 1.4 min (short) to 24.2 min (long). Reporter details tracked privately.

## Smoke verification

3-platform smoke on v0.10.5.2 with `recording_enabled=true` (internal test meetings):

- GMeet: 29m13s, 59 chunks, completed clean
- Teams:  21m46s, 45 chunks, completed clean
- Zoom:   19m57s, 1 chunk (Zoom paradigm), completed clean

70+ min combined active time, no crashes, all completed cleanly. Past every documented crash window (1.4 / 2-4 / 13-14 / 18.5 / 24.2 min).

## Image artifacts

- `vexaai/vexa-bot:v0.10.5.2` — bot core (Pack T + Pack F)
- `vexaai/dashboard:v0.10.5.2` — dashboard with version-chip update
- Image sha: `sha256:7ec9ac2be306b1d297d7a724d533aa5e7b2fb8f02b6edbfc949f41be0aff65ae` (bot)

## Honest caveats

This was an emergency hotfix. Protocol violations during the cycle are documented in the release packet under `tests3/releases/260501-followup/`. Notable gaps surfaced:

1. Build-context bug + bash exit-code masking caused a brief outage during human-stage eyeroll. Resolved via helm rollback + atomic redeploy.
2. Customer re-test feedback is the actual validation; outreach sent to affected users via private channels.
3. Soak comparison of `Execution context destroyed` rate pre/post-08:31 UTC is the population-level confirmation.

For the SDP-munge fix specifically: analytical confidence is high (root cause documented in `#291`, fix mirrors v0.10.5's site-1 revert at `8ab7f49`). Empirical confidence is medium until customers re-test.

**v0.10.5.3 (next):** the long-duration variant (14-24 min crashes) is a SEPARATE bug class — chunk-buffer memory leak — not addressed by v0.10.5.2. See the next release.

## Backlog gaps filed for next cycle

- Helm chart `replicaCount: 2` + `maxUnavailable: 0` for stateless services (dashboard, webapp)
- Pre-flight image-exists check in helm-upgrade flow
- All prod helm upgrades default to `--atomic --wait --timeout`
- No-bypass rule for provision stage even on emergency hotfixes (~10 min compose-mode test infra)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Related Repositories