@ai-matrx/meet 0.7.9 → 0.7.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,56 @@
1
1
  # Changelog — `@ai-matrx/meet`
2
2
 
3
+ ## 0.7.11
4
+ ### Meet wave 5 (next minor)
5
+
6
+ - **Polls** (Zoom/Meet parity): a host or co-host creates single- or multiple-choice polls,
7
+ anonymous or named, saves a draft or launches; everyone votes (and may change their vote);
8
+ hosts see live counts (and, for a named poll, who picked what); everyone sees counts once the
9
+ host shares them; end, hide, delete. A launched poll opens the Polls panel for participants.
10
+ - **Q&A**: ask (anonymously when the organization allows), upvote, sort popular/recent; a host
11
+ answers (typed or out loud), dismisses (hosts-only afterwards) or reopens; askers delete their own.
12
+ - **Shared whiteboard**: one board per meeting that takes the stage while open — pen, highlighter,
13
+ six inks, erase a stroke (yours; a host erases any), undo your last, a host clears (archived).
14
+ - **Breakout rooms**: a host opens N rooms — automatically, manually, or letting people choose —
15
+ with a timer; broadcasts to every room; moves one person; visits any room; brings everyone back.
16
+ Each breakout is its own LiveKit room minted by the server (`RoomEngine.moveToBreakout`,
17
+ `TokenRequest.breakoutRoomId`); a person sees their assignment with Join, the countdown, and
18
+ Return to main room; the timer closes rooms when the server's clock agrees.
19
+ - **Translated captions**: Settings → "Translate captions to" (starts at the organization's
20
+ `meet.caption_translation_language`, else the viewer's language); the translated line shows
21
+ with the words as spoken beneath it. Refusals (no translator assigned) are said, never hidden.
22
+ - One door for all four: the **Activities** control in the control bar (absent when the
23
+ organization's knobs turn everything off). The Settings panel is titled "Settings".
24
+ - New API: `core/collab.ts` (`CollabSnapshot`, `applyCollabPacket`, `loadMeetingActivities` for
25
+ a record page, …), `InRoomClient.loadCollab / collab / translateCaptions`, room event
26
+ `ROOM_EVENTS.collab` (`matrx.meet.collab`), `MEET_ROUTES.collab` / `captionsTranslate`,
27
+ `MeetSnapshot.collab` / `breakoutRoomId`; React: `ActivitiesControl`, `PollsPanel`, `QaPanel`,
28
+ `WhiteboardPanel`, `BreakoutsPanel`, `BreakoutBanner`, `CaptionLanguageSettings`, `useCollab`.
29
+ - Needs aidream with `POST|GET /v1/meet/collab` and `POST /v1/meet/captions/translate`.
30
+ - Guards: `core/collab.test.ts`, `react/collab.test.tsx`.
31
+ - **Consumer action:** none for the room (it mounts everything); a record page may render
32
+ `loadMeetingActivities` results.
33
+
34
+ ## 0.7.10
35
+ ### Unreleased
36
+ ### (next patch)
37
+
38
+ - **Fix — people in a meeting can HEAR each other** (production re-verification, 2026-09-29):
39
+ `livekit-client` never plays a remote audio track by itself, and nothing in this package
40
+ attached one, so every meeting received everyone's audio and played none of it. The LiveKit
41
+ driver now attaches every subscribed remote microphone to a hidden audio element in the
42
+ document (not tied to tiles, so a person on stage page two or in the Board overflow is still
43
+ heard) and removes it on unsubscribe and on disconnect.
44
+ - **Fix — a person admitted from the waiting room is no longer a black tile** for everyone
45
+ already inside: a tile rendered before its track was subscribed attached nothing and never
46
+ retried. `attach` now keeps listening for that participant's track and (re)attaches when it
47
+ is subscribed or republished; the returned cleanup stops listening.
48
+ - **Fix — link guests read "Guest" on the attendance report**, not "Member": the durable row
49
+ stores them as `participant` with no account, so "no account" now decides it.
50
+ - Guards: `src/core/livekit-driver.media.test.ts` (4 of 6 failed before the fix),
51
+ `after.test.ts` › "a link guest is a GUEST as the database stores them".
52
+ - **Consumer action:** none.
53
+
3
54
  ## 0.7.9
4
55
  ### (next patch)
5
56