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.directionmutation at site 2 ofservices/vexa-bot/core/src/services/screen-content.ts:1218-1228removed. v0.10.5 reverted the same pattern at site 1 in8ab7f49; this release reverts the duplicate site 2 inside the liveRTCPeerConnectiontrack-event handler. Cross-platform — same code path is reachable from GMeet (recording_enabled=truemid-meeting crash), Teams (44ms post-admission drop), and Zoom Web (track-event crash).#294— bot-sidefailure_stagetracker advances on each successful status_change callback forjoining → awaiting_admission → active. Fixes the stale-tracker bug where every crash post-admission was mislabeledfailure_stage: "joining"in the JSONB. Server-side derivation inMeetingResponse.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:
- Build-context bug + bash exit-code masking caused a brief outage during human-stage eyeroll. Resolved via helm rollback + atomic redeploy.
- Customer re-test feedback is the actual validation; outreach sent to affected users via private channels.
- Soak comparison of
Execution context destroyedrate 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: 0for 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