@ai-matrx/meet 0.7.1 → 0.7.2

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,14 @@
1
1
  # Changelog — `@ai-matrx/meet`
2
2
 
3
+ ## 0.7.2
4
+ ### Unreleased
5
+
6
+ - **A meeting link works for people from any organization.** The server now admits a
7
+ signed-in person from another organization who holds the link (guest rules: lobby,
8
+ host admission). The durable feed's meeting re-read fell over for them, because RLS
9
+ does not show them the row; it now falls back to the link door
10
+ (`meet_meeting_by_slug`) a guest already uses. No consumer action required.
11
+
3
12
  ## 0.7.1
4
13
 
5
14
  Automatic changed-only republish (docs/metadata drift since the last tag — see
@@ -1333,3 +1342,4 @@ LiveKit webhooks, the LiveKit Agents note-taker) and the `communication.meet_*`
1333
1342
  Main. Until both land, the package fails LOUDLY at the token call and at every repository read —
1334
1343
  with a remedy naming this file — rather than pretending to work.
1335
1344
 
1345
+
package/dist/index.cjs CHANGED
@@ -2861,6 +2861,15 @@ function createMeetingSession(options) {
2861
2861
  const { manager, repository, store, identity } = options;
2862
2862
  let channel = null;
2863
2863
  let meetingChannel = null;
2864
+ async function readMeeting(meetingId) {
2865
+ try {
2866
+ return await repository.meeting(meetingId);
2867
+ } catch (error) {
2868
+ const slug = store.snapshot().meeting?.slug;
2869
+ if (slug === void 0) throw error;
2870
+ return repository.meetingBySlug(slug);
2871
+ }
2872
+ }
2864
2873
  function requireHostUser(operation) {
2865
2874
  if (identity.userId === null || !isHostRole(effectiveRole(store.snapshot()))) {
2866
2875
  throw new MeetError(
@@ -2941,7 +2950,7 @@ function createMeetingSession(options) {
2941
2950
  onBackfill: async () => {
2942
2951
  const meeting = store.snapshot().meeting;
2943
2952
  if (meeting === null) return;
2944
- const fresh = isGuest(identity) ? await repository.meetingBySlug(meeting.slug) : await repository.meeting(meeting.id);
2953
+ const fresh = isGuest(identity) ? await repository.meetingBySlug(meeting.slug) : await readMeeting(meeting.id);
2945
2954
  store.patch({ meeting: fresh, locked: fresh.locked });
2946
2955
  }
2947
2956
  });
@@ -3036,7 +3045,7 @@ function createMeetingSession(options) {
3036
3045
  // a recovered surface from looking healthy and being wrong.
3037
3046
  onBackfill: async () => {
3038
3047
  const [meeting, transcript, notes, recordings, attendees] = await Promise.all([
3039
- repository.meeting(meetingId),
3048
+ readMeeting(meetingId),
3040
3049
  repository.transcript(meetingId),
3041
3050
  repository.notes(meetingId),
3042
3051
  repository.recordings(meetingId),