@ai-matrx/meet 0.7.5 → 0.7.7

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,39 @@
1
1
  # Changelog — `@ai-matrx/meet`
2
2
 
3
+ ## 0.7.7
4
+ ### Meet wave 3: after the meeting
5
+
6
+ - **Fix — the waiting room for people from another organization and for denied guests**
7
+ (2026-09-27, verified in a real room): a signed-in link-follower now knocks as `user:<id>`, the
8
+ identity the server's lobby row carries — before, the host saw two entries and admitting one
9
+ left the person waiting forever. A host's "Deny" now reaches the knocker (`onDenied` →
10
+ `engine.rejoin()`), and every token refusal (403/423/410) shows the SERVER's own sentence and
11
+ remedy instead of a developer note ("meet.token: the server refused this join (403)").
12
+ - **`core/after.ts`** (framework-free, exported from the root): `attendanceReport` /
13
+ `attendanceTotals` / `attendanceCsv` (who joined, when, how long — measured to the meeting's end
14
+ when a leave was never recorded — and as what: host, co-host, member, signed-in guest, guest,
15
+ assistant); `transcriptDocument(bundle, "txt" | "md" | "vtt")` (VTT cued from the recording's
16
+ start); `notesDocument` (summary, decisions, action items with owners, as Markdown);
17
+ `recordingOffsetMs` (a transcript moment as a position in the recording — `null` outside it,
18
+ never clamped) + `clockPosition`; `searchTranscript` (in-record search with match ranges);
19
+ `loadMeetingChat` (the saved chat of a finished meeting, a refusal returned as data);
20
+ `loadFollowUpDraft` / `sendFollowUp` (the recap email — `MEET_ROUTES.meetingFollowUp`,
21
+ `GET|POST /api/v1/meet/meetings/{id}/follow-up`; `dryRun` renders and queues nothing).
22
+ - **Repository:** `myRecordings({ includeArchived })` (`meet_my_recordings`), `searchMeetings(q)`
23
+ (`meet_search` — titles, agendas, current notes, final transcript lines; snippets mark hits
24
+ with ⟦ ⟧, split with `snippetRuns`), `renameRecording`, `setRecordingArchived` (soft delete;
25
+ an update RLS refuses is an error, never a silent success). `recordings(meetingId)` now leaves
26
+ archived recordings out of the record.
27
+ - **Consumer action:** none required. A test double that implements `MeetRepository` must add
28
+ the four new methods (`managementStubs()` refuses them by name); a fake PostgREST chain used
29
+ under `recordings()` must answer `.is()`.
30
+
31
+ ## 0.7.6
32
+
33
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
34
+ `git diff npm/meet/v0.7.5..npm/meet/v0.7.6 -- apps/shared/meet`).
35
+ No source changes intended and no consumer action required.
36
+
3
37
  ## 0.7.5
4
38
  ### Unreleased
5
39