v0.12.24

heygen-com/hyperframesv0.12.24Aug 29, 2026by DmitriyG228

Upgrading?

AI Summary

Focus on Teams passcode support, meeting artifact deletion, and improved audio capture fault handling.

Key Highlights

  • Teams bots now join with separate numeric IDs and passcodes.
  • Ability to delete completed meeting artifacts while keeping usage records.
  • Audio capture faults no longer end meetings as 'completed(left_alone)'.
  • Meeting list ordering by event time with active meetings pinned.

New Features

  • Teams passcode support
  • Meeting artifact deletion
  • Capture fault handling
  • Participant API
  • MCP `report_issue` tool
  • Unified API for interactive acts

Full Release Notes

Delivered to hosted production 2026-08-29 (channel entry 0.12.23-estate-20260829-seq10), station-validated on live meetings before release.

## Fixed
- **Teams bots join with a separate `passcode` (#892, #1201).** A numeric meeting ID + passcode now builds the join URL Teams actually uses; the passcode never appears in any log line. Proven live against a passcode-required meeting.
- **A broken audio capture no longer ends a live meeting as `completed(left_alone)` (#1192, #1195).** Connected streams delivering nothing are treated as a capture fault: the bot holds the meeting, logs it, and attempts one capture restart. On platforms that keep a server-side mix alive (Teams), affected runs now end at the `maxActiveMs` ceiling rather than reporting a false success.
- **Restarting mid-leave no longer strands a meeting in "stopping" (#1280).**
- **Every gate failure prints its diagnostic (#1107, #1114)** — an empty stdout Buffer was swallowing the real error at all 21 call sites.

## Added
- **Delete a completed meeting's artifacts (#116, #1293).** Owners erase transcripts and recording artifacts from primary stores; the meeting row remains as a tombstoned usage record. Active meetings answer `409`. This is what makes the published privacy promise true.
- **`GET /meetings/{platform}/{native_meeting_id}/participants` (#451, #1275)** — who was in a meeting, each row labelled by `source` (`invite` / `speaker`), with `observed_roster: "not_recorded"` stating honestly what the core does not know.
- **Spawned bot and agent-worker Pods declare CPU/memory requests and limits (#1005, #1093)** — quota-controlled and `ResourceQuota`/LimitRange namespaces now admit dynamically created Pods; sizing is configurable per profile.
- **MCP `report_issue` (#1272)** — an agent can file a ticket from inside its own session; off until `VEXA_TICKET_SINK_URL` is set.
- **Interactive capabilities get one API home (#1089, ADR-0035)** — `POST /bots/{platform}/{native_meeting_id}/acts`, with speak/chat kept as aliases.

## Changed
- **`GET /meetings` orders by event time (#1226)** — non-terminal meetings pinned on top; calendar-imported meetings sort where they happened, not where they were created.
- **The minio-init Job is pinnable and sized (#1321)** — its client image is a value (pin by digest for reproducibility); the Job declares its own resources.

## Docs
- The meeting completion-reason taxonomy — all ten values, who owns each, and what a `failed` row does and does not tell you (#1284). Operability numbers with the commands that reproduce them (#1285). API-key provenance on the pages that carry snippets (#1301, #1302). "Air-gapped" corrected to self-hosted across the comparison pages (#1304). The MCP page linked from where agents actually look (#1345). 0.10 → 0.12 upgrade runbook (#1332).

Related Repositories