New Features
- Mistral/Voxtral Transcription Connector - Cloud-based transcription with built-in speaker diarization via Mistral's Voxtral models. Includes admin-configurable default hotwords.
- VibeVoice ASR Connector - Self-hosted transcription via vLLM with speaker diarization, automatic chunking for long files (50-min segments), and no cloud dependency.
- Upload API: title & meeting_date - Optional
titleandmeeting_dateform fields on the upload endpoint, so integrations can set recording metadata directly instead of relying on AI-generated titles or file metadata dates. - Regenerate Title - New button in the recording header to regenerate a recording's title with AI after transcription completes.
- Default Transcription Language - Users can set a default language in account settings that auto-fills on upload and reprocess forms.
- Tag-Driven Auto-Processing - Watch folders can now auto-apply tags and trigger processing via API endpoint.
- Configurable LLM Timeouts - Adjust timeout and retry settings for slower local models via environment variables.
Bug Fixes
- Fix inquire mode crash on Azure when streaming chunks have empty choices
- Fix chat API endpoint returning non-serializable ChatCompletion object
- Fix user deletion failing with IntegrityError on NOT NULL foreign keys
- Fix duration-based chunking ignoring connector-declared limits due to hardcoded 1400s cap
- Fix JSON parser greedy regex extracting beyond JSON boundaries
- Fix JSON parser failing on literal newlines combined with unescaped quotes in LLM output
- Fix broken HTML tags in header templates causing Vue render crash
- Fix locale key paths missing tooltips prefix
- Update video retention test patterns to match current code
Documentation
- Added setup guides for Mistral and VibeVoice connectors across installation docs, migration guide, FAQ, and testing checklist
- Updated connector architecture docs to reflect new available connectors
- Updated example env config with Mistral and VibeVoice sections