* feat: set Daily as default video platform
Daily.co has been battle-tested and is ready to be the default.
Whereby remains available for rooms that explicitly set it.
* feat: enforce Hatchet for all multitrack processing
Remove use_celery option from rooms - multitrack (Daily) recordings
now always use Hatchet workflows. Celery remains for single-track
(Whereby) file processing only.
- Remove use_celery column from room table
- Simplify dispatch logic to always use Hatchet for multitracks
- Update tests to mock Hatchet instead of Celery
* fix: update whereby test to patch Hatchet instead of removed Celery import
---------
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com>
* set hatchet as default for multitracks
* fix: pipeline routing tests for hatchet-default branch
- Create room with use_celery=True to force Celery backend in tests
- Link transcript to room to enable multitrack pipeline routing
- Fixes test failures caused by missing HATCHET_CLIENT_TOKEN in test env
* Update server/reflector/services/transcript_process.py
Co-authored-by: pr-agent-monadical[bot] <198624643+pr-agent-monadical[bot]@users.noreply.github.com>
---------
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com>
Co-authored-by: pr-agent-monadical[bot] <198624643+pr-agent-monadical[bot]@users.noreply.github.com>
* feat: use file pipeline for upload and reprocess action
* fix: make file pipeline correctly report status events
* fix: duplication of transcripts_controller
* fix: tests
* test: fix file upload test
* test: fix reprocess
* fix: also patch from main_file_pipeline
(how patch is done is dependent of file import unfortunately)
* feat: remove support of sqlite, 100% postgres
* fix: more migration and make datetime timezone aware in postgres
* fix: change how database is get, and use contextvar to have difference instance between different loops
* test: properly use client fixture that handle lifetime/database connection
* fix: add missing client fixture parameters to test functions
This commit fixes NameError issues where test functions were trying to use
the 'client' fixture but didn't have it as a parameter. The changes include:
1. Added 'client' parameter to test functions in:
- test_transcripts_audio_download.py (6 functions including fixture)
- test_transcripts_speaker.py (3 functions)
- test_transcripts_upload.py (1 function)
- test_transcripts_rtc_ws.py (2 functions + appserver fixture)
2. Resolved naming conflicts in test_transcripts_rtc_ws.py where both HTTP
client and StreamClient were using variable name 'client'. StreamClient
instances are now named 'stream_client' to avoid conflicts.
3. Added missing 'from reflector.app import app' import in rtc_ws tests.
Background: Previously implemented contextvars solution with get_database()
function resolves asyncio event loop conflicts in Celery tasks. The global
client fixture was also created to replace manual AsyncClient instances,
ensuring proper FastAPI application lifecycle management and database
connections during tests.
All tests now pass except for 2 pre-existing RTC WebSocket test failures
related to asyncpg connection issues unrelated to these fixes.
* fix: ensure task are correctly closed
* fix: make separate event loop for the live server
* fix: make default settings pointing at postgres
* build: remove pytest-docker deps out of dev, just tests group