@ai-matrx/meet 0.7.11 → 0.7.13

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,17 @@
1
1
  # Changelog — `@ai-matrx/meet`
2
2
 
3
+ ## 0.7.13
4
+
5
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
6
+ `git diff npm/meet/v0.7.12..npm/meet/v0.7.13 -- apps/shared/meet`).
7
+ No source changes intended and no consumer action required.
8
+
9
+ ## 0.7.12
10
+
11
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
12
+ `git diff npm/meet/v0.7.11..npm/meet/v0.7.12 -- apps/shared/meet`).
13
+ No source changes intended and no consumer action required.
14
+
3
15
  ## 0.7.11
4
16
  ### Meet wave 5 (next minor)
5
17
 
@@ -19,6 +31,10 @@
19
31
  - **Translated captions**: Settings → "Translate captions to" (starts at the organization's
20
32
  `meet.caption_translation_language`, else the viewer's language); the translated line shows
21
33
  with the words as spoken beneath it. Refusals (no translator assigned) are said, never hidden.
34
+ - **Fix (production walk, 2026-09-29):** a host now sees a new question the moment it is asked —
35
+ hosts dropped every room copy of a poll/question expecting a fuller hosts' copy, which the
36
+ server sends only for polls and dismissed questions. Every copy is folded now; a count-less
37
+ room copy of a poll keeps the host's live counts. Guard: `collab.test.ts` › "a host sees a new question…".
22
38
  - One door for all four: the **Activities** control in the control bar (absent when the
23
39
  organization's knobs turn everything off). The Settings panel is titled "Settings".
24
40
  - New API: `core/collab.ts` (`CollabSnapshot`, `applyCollabPacket`, `loadMeetingActivities` for
package/dist/index.cjs CHANGED
@@ -1553,7 +1553,18 @@ function withItem(collab, row, fromRoom = false) {
1553
1553
  const poll = pollFromRow(row);
1554
1554
  if (poll === null) return collab;
1555
1555
  const known = collab.polls.find((p) => p.id === poll.id);
1556
- const merged = fromRoom && known !== void 0 ? { ...poll, myVote: known.myVote } : poll;
1556
+ let merged = fromRoom && known !== void 0 ? { ...poll, myVote: known.myVote } : poll;
1557
+ if (fromRoom && known !== void 0 && !poll.options.some((o) => o.votes !== void 0)) {
1558
+ const counted = new Map(known.options.map((o) => [o.id, o]));
1559
+ merged = {
1560
+ ...merged,
1561
+ voterCount: known.voterCount,
1562
+ options: merged.options.map((o) => {
1563
+ const had = counted.get(o.id);
1564
+ return had === void 0 ? o : { ...o, votes: had.votes, voters: had.voters };
1565
+ })
1566
+ };
1567
+ }
1557
1568
  return { ...collab, polls: upsert(collab.polls, merged) };
1558
1569
  }
1559
1570
  if (kind === "question") {
@@ -1586,13 +1597,8 @@ function without(collab, ids) {
1586
1597
  }
1587
1598
  function applyCollabPacket(collab, payload, context) {
1588
1599
  const item = obj(payload["item"]);
1589
- const audience = str(payload["audience"]);
1590
1600
  if (item !== null) {
1591
1601
  const kind = str(item["kind"]);
1592
- const hostOnlyView = kind === "poll" || kind === "question";
1593
- if (hostOnlyView && context.isHost && audience !== "hosts") {
1594
- return { next: null, dropped: "the room copy of an item a host receives in full" };
1595
- }
1596
1602
  let next = withItem(collab, item, true);
1597
1603
  if (kind === "poll" && str(item["state"]) === "live") {
1598
1604
  const before = collab.polls.find((p) => p.id === str(item["id"]));