v0.12.25

multimodal-art-projection/YuEv0.12.25Aug 31, 2026by DmitriyG228

Upgrading?

Release notes summary

This maintenance release closes the unpublished v0.12.24 image gap and adds meeting participant reads, Teams passcode joins, sized spawned pods, and MCP issue reporting. It also consolidates interactive API acts and fixes capture-fault and restart issues.

Key Highlights

  • Meeting participants can be read through a new owner-scoped endpoint.
  • Teams passcode joins now build the correct join URL without leaking the passcode.
  • Spawned bot and agent-worker pods can declare CPU and memory requests/limits.
  • MCP agents can file issues bound to the cluster's meeting record.
  • Capture faults no longer end live meetings as empty rooms, and restart handling is fixed.

Breaking Changes

  • Screen and avatar interactive acts are retired from api.v1.
  • Interactive acts are consolidated under POST .../acts, with speak/chat kept as aliases.

New Features

  • Meeting participants read endpoint
  • Teams passcode joins
  • Sized spawned pods via runtime.workloadResources
  • MCP report_issue tool
  • Meetings list ordered by event time with active meetings pinned

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