v0.12.25

azophy/sshifuv0.12.25Aug 31, 2026by DmitriyG228

Upgrading?

AI Summary

A maintenance release that closes gaps since v0.12.23, adding participant reading, Teams passcode support, and pod sizing for quota-controlled namespaces.

Key Highlights

  • Meeting participants can now be read via API
  • Teams bots can join with numeric IDs and passcodes
  • Spawned pods declare CPU/memory requests and limits
  • MCP report_issue tool is now available

New Features

  • Participants API
  • Teams passcode joins
  • Pod sizing
  • MCP report_issue tool
  • 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