v0.12.25

mikeqzy/3dgs-avatar-releasev0.12.25Aug 31, 2026by DmitriyG228

Upgrading?

AI Summary

A maintenance release closing the gap from v0.12.23. It adds participant reading capabilities, Teams passcode support, and resource sizing for spawned pods, alongside various bug fixes regarding meeting state and terminal behavior.

Key Highlights

  • Meeting participants reading API (`GET /meetings/{...}/participants`).
  • Teams passcode joins support.
  • Sized spawned pods (CPU/memory requests/limits).
  • MCP `report_issue` functionality.
  • Fixed capture fault handling (no longer ending meeting as `completed(left_alone)`).

New Features

  • Meeting participants API.
  • Teams passcode joins.
  • Pod resource sizing.
  • MCP `report_issue`.
  • Unified interactive acts API (`POST /bots/.../acts`).
  • Meetings list ordering by event time.

Full Release Notes

## v0.12.25

Maintenance release: everything merged since v0.12.23 (v0.12.24's lite/compose images were never published — its tag predated the release-commit convention; this release closes that gap too).

### Added
- **Meeting participants read** — `GET /meetings/{platform}/{native_meeting_id}/participants`, rows labelled `invite` / `speaker`, owner-scoped, with an honest `observed_roster: "not_recorded"` marker (#451).
- **Teams passcode joins** — numeric Teams id + `passcode` now builds the real `…/meet/<id>?p=<passcode>` URL; unknown aliases are a typed `422`; the passcode stays out of stored URLs and logs (#892).
- **Sized spawned pods** — bot and agent-worker pods declare CPU/memory requests + limits via `runtime.workloadResources`, so quota-controlled namespaces admit them (#1005).
- **MCP `report_issue`** — an agent can file a ticket from inside its session, bound to the cluster's record of the same meeting (#1272).

### Changed
- **One API home for interactive acts** — `POST …/acts` per ADR-0035; speak/chat kept as aliases; screen/avatar retire from `api.v1`; the status page stops overstating speak (#1089).
- **Meetings list ordered by event time**, active meetings pinned to the top (#1226).

### Fixed
- **Capture-fault ≠ empty room** — a bot whose audio capture breaks mid-meeting no longer ends a live meeting as `completed(left_alone)`; it logs a suspected capture fault and attempts a restart (#1192).
- **Restart mid-leave no longer strands meetings in "stopping"** (#1280).
- **Text-only STT hardening** — the transcription client tolerates JSON-only/Voxtral-style engines (#1149, #1343).
- **Terminal honors `DEFAULT_BOT_NAME` without a rebuild** (#1259).
- **Gate failures print their diagnostic** — empty stdout Buffer no longer swallows the real error at 21 call sites (#1107).

### Delivery evidence
Validated at station `t25-01225` (vexa-stations: battery, row-0 image-ID proofs, live-meeting run, five promise-exercises, full-green lite probe S0–S8). Production runs this train as channel entry `0.12.23-estate-20260829-seq11` (cosign-signed, verifier verdict ELIGIBLE).

Related Repositories