Companion record hand-off and diarization surfacing - #167
Merged
Conversation
Add src/lib/companion-links.ts with buildCompanionAuthCallbackUrl, buildCompanionRecordUrl (lowercases + uuid-validates the meeting id, the companion storage RLS is lowercase-sensitive) and isMacPlatform. Refactor the authorize client onto the shared builder and cover the module with a verifier.
On a live meeting a manager with a known macOS companion sees a 'Record with companion' affordance beside the browser recorder, and starting the meeting fires the minutia://record deep link once per meeting per browser session (sessionStorage-guarded) with a one-line toast. Falls back to the existing install prompt when no companion has checked in.
Add a transcription probe to /api/admin/health (ok = diarization on, degraded = transcription only, unconfigured = no provider) and a quiet callout in the admin AI settings card when transcription runs without speaker labels. GET /api/admin/config now returns a read-only diarization_configured flag. Document speaker diarization in the README and sharpen the .env.example provider notes.
On a live meeting, a macOS manager whose companion has checked in sees a 'Record with companion' link pointing at minutia://record with the lowercase meeting id. Seeds companion_last_seen_at via service role and forces macOS via navigator.userAgentData; no real scheme navigation is attempted.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the missing link in the capture chain: starting a meeting now hands recording off to the desktop companion, and instances learn when their transcripts will not carry speaker labels.
minutia://record?meeting_id=<lowercase uuid>, uuid-validated) shared with the auth callback; verifierpnpm test:companion-links.Desktop counterpart: minutia-desktop PR adds the deep-link router and record command (same-meeting no-op, different-meeting reject, cold-launch session rehydration).