@ai-matrx/meet 0.7.3 → 0.7.6

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,79 @@
1
1
  # Changelog — `@ai-matrx/meet`
2
2
 
3
+ ## 0.7.6
4
+
5
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
6
+ `git diff npm/meet/v0.7.5..npm/meet/v0.7.6 -- apps/shared/meet`).
7
+ No source changes intended and no consumer action required.
8
+
9
+ ## 0.7.5
10
+ ### Unreleased
11
+
12
+ ### Meet wave 2 — in-meeting parity with Zoom and Google Meet
13
+
14
+ - **Host moderation now actually happens — through the server.** Through 0.7.x "Mute" and
15
+ "Remove" were published on the room's data plane (`mx.host`) and nothing in the platform
16
+ listened: the buttons did nothing. Every host power is now `POST /api/v1/meet/moderate`
17
+ (`MEET_ROUTES.moderate`), decided by aidream from the meeting itself and performed by the SFU:
18
+ mute, stop video, stop screen share, mute everyone, ask to unmute (one / everyone), spotlight
19
+ for everyone, lower a hand / all hands, make or remove a co-host, make someone the host
20
+ (host only; the previous host stays a co-host), rename (self, or a host renaming others),
21
+ remove (cannot rejoin), report. New `core/in-room.ts` (`createInRoomClient`,
22
+ `ModerationAction`, `MODERATION_ACTIONS`), exposed as `MeetHost.inRoom`.
23
+ `useHostControls()` gains `run(request)`, `isOwner`, `busy`, and a shared `notice` (the
24
+ server's sentence, kept in the snapshot as `actionNotice`).
25
+ - **In-meeting chat is SAVED.** A message to everyone goes through `POST /api/v1/meet/chat`,
26
+ is stored in `communication.meet_chat_messages`, and reaches the room as the server's
27
+ `matrx.meet.chat`; every join reads the history (`GET ?meeting_id=`), so a late joiner sees
28
+ what was said. It shows at once as pending, then saved; a refusal stays visible with the
29
+ server's reason. **Private messages** to one person: `engine.sendPrivateChat(to, text)` /
30
+ `useRoom().sendPrivateChat` — data plane only, addressed to that identity, never saved.
31
+ - **Spotlight for everyone** rides the room's metadata (server-set, delivered on join);
32
+ `snapshot.spotlight`, `computeStage({ spotlight })` — a local pin outranks it, a screen share
33
+ outranks both.
34
+ - **Raise hand queue** — hands carry when they went up (`MeetParticipant.handRaisedAt`),
35
+ `useHandQueue()` orders them, a raised hand is re-announced (with its original time) to a late
36
+ joiner, and a host lowers one or all.
37
+ - **Reactions** — a reaction picker in the control bar (Meet's nine), and the overlay is finally
38
+ mounted (`<MeetingOverlays>` inside `<ControlBar>`).
39
+ - **What a host did to me** — `matrx.meet.moderation` packets become `snapshot.moderationNotice`
40
+ ("Ana is asking you to unmute" with an Unmute button; muted; removed). A demotion re-grants
41
+ the local role, so an old host loses host controls at once.
42
+ - **Noise suppression and background blur / picture** — `engine.setEffects()` /
43
+ `useMediaEffects()`, applied live and remembered per browser (`createWebEffectsStorage`);
44
+ background effects via `@livekit/track-processors` (new dependency, imported lazily), absent
45
+ on a browser without WebGL2.
46
+ - **Devices** — the chosen microphone / camera / speaker are now APPLIED on join (the pickers
47
+ used to store a choice nothing read); `<SettingsPanel>` switches them live with a microphone
48
+ level meter and a speaker test; the pre-join screen has a live camera preview (with the chosen
49
+ background), a mic level meter, a speaker picker + test, and the effects.
50
+ - **Connection quality** — `<QualityBars>` on every tile and People row.
51
+ - **People panel** — search, the hand queue with Lower all, Mute all / Ask all to unmute, and a
52
+ per-person menu (`<PersonMenu>`, also on every tile) with every action the actor may take.
53
+ - **Keyboard shortcuts** (Meet's chords): ⌘/Ctrl+D mic, ⌘/Ctrl+E camera, ⌘/Ctrl+Alt+H hand,
54
+ ⌘/Ctrl+Alt+C chat, ⌘/Ctrl+Alt+P people, Shift+? the sheet (`useMeetShortcuts`,
55
+ `MEET_SHORTCUTS`, `<ShortcutsSheet>`).
56
+ - **Exported for host layouts**: `HostMenu` (lock / end — the Board layout can now render it),
57
+ `MeetingOverlays`, `PersonMenu`, `SettingsPanel`, `ShortcutsSheet`, `QualityBars`,
58
+ `MEET_REACTIONS`, new icons.
59
+
60
+ ### Removed
61
+
62
+ - `RoomEngine.publishHostAction`, `HostAction`, `DATA_TOPICS.hostAction` — a control plane
63
+ nobody listened to (see above). `RoomEngine.sendChat` → `MeetHost.inRoom.sendChat` (saved).
64
+
65
+ ### Consumer action
66
+
67
+ matrx-frontend: bump `@ai-matrx/meet`; the Board header renders `<HostMenu>` beside its host
68
+ controls. Everything else arrives through `<ControlBar>`, which both layouts already render.
69
+ Requires the aidream routes `/v1/meet/moderate` and `/v1/meet/chat`.
70
+
71
+ ## 0.7.4
72
+
73
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
74
+ `git diff npm/meet/v0.7.3..npm/meet/v0.7.4 -- apps/shared/meet`).
75
+ No source changes intended and no consumer action required.
76
+
3
77
  ## 0.7.3
4
78
 
5
79
  Automatic changed-only republish (docs/metadata drift since the last tag — see