Repository navigation
Add Zoom support for Vexa transcription bots - #224
camerontarget14 wants to merge 3 commits into
Conversation
Vexa can now be dispatched to Zoom meetings from the Transcription menu. Backend - Add ZOOM to the Platform enum and an optional meeting_url field to DispatchBotRequest, threaded through the provider interface. - Vexa provider builds the Zoom join link via _zoom_join_url(): - a link that already has ?pwd= is forwarded untouched - a link without pwd plus a typed passcode gets ?pwd=<passcode> - a bare meeting ID becomes https://zoom.us/j/<id>[?pwd=<passcode>] Vexa Cloud rejects Zoom without a meeting_url (422), and its web bot ignores the separate passcode field, stalling in "joining" unless the passcode is in the link. Zoom accepts the plain or encoded passcode as pwd. - Include Vexa's response body when it rejects a dispatch, instead of httpx's bodyless error message. Frontend - Add 'zoom' to the Platform type. - Move meeting URL parsing into a per-platform registry (transcription/meetingPlatforms.ts), keyed by Platform so a missing platform fails to compile. - Parse Zoom /j/, /wc/join/ and /wc/<id>/join links on any zoom.us or zoomgov.com host, plus bare 9-11 digit IDs. Pull the passcode from ?pwd= and send the pasted link as meeting_url. - Reject personal (/my/), host start (/s/) and Zoom Events links with specific messages. - Show the passcode field for Teams, and for Zoom when the link has no pwd. - Show the error when a meeting URL is invalid (previously the dispatch failed silently). Docs - Regenerate the OpenAPI spec (backend and dna-docs copies). - Document Zoom in the transcription pipeline doc and the user guide. - Correct ADR-005: sg_platform is a text field, not a list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Cameron Target <camerontarget@gmail.com>
| ZOOM = "zoom" | ||
| ``` | ||
|
|
||
| Zoom bots use Vexa's web-client join path (the default since Vexa v0.10.4), |
There was a problem hiding this comment.
It is good to have these docs but I think this may not be the best place for this documentation. Maybe under _zoom_join_url? I have been finding my own work that AI likes to put comments whereever. It is good to have these docs but we should be careful about where it is putting them.
| return null; | ||
| } | ||
| export { parseMeetingUrl }; | ||
| export type { ParsedMeetingUrl } from '../transcription/meetingPlatforms'; |
There was a problem hiding this comment.
Do parseMeetingUrl and ParsedMeetingUrl need to be exported here? If it is for tests, they are already exported from the module they are declared in.
There was a problem hiding this comment.
Okie doke, have moved the join-link details into the _zoom_join_url docstring and left a one-line pointer under the provider section. Dropped the re-exports; TranscriptionMenu now imports from meetingPlatforms directly.
- Move Zoom join-link details from the Platform data-model docs into the _zoom_join_url docstring; keep a short note under Layer 4 - Import parseMeetingUrl from meetingPlatforms directly and drop the re-exports from useTranscription and the hooks barrel Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Cameron Target <camerontarget@gmail.com>
Summary
Vexa can now be dispatched to Zoom meetings from the DNA Transcription panel.
Backend
Frontend
Docs
Testing
How I Tested
Ran DNA and added vexa to a Zoom call.