Igor Loskutov
8272c79856
self-review round
2025-12-18 13:15:18 -05:00
Igor Loskutov
acad80df50
self-review round
2025-12-18 12:46:05 -05:00
Igor Loskutov
61e2b3211e
self-review wip
2025-12-18 11:42:32 -05:00
Igor Loskutov
bf90bd076b
Merge branch 'feat/durable' of github-monadical:Monadical-SAS/reflector into feat/durable
2025-12-17 15:47:07 -05:00
Igor Loskutov
557073850e
more NES instead of str
2025-12-17 15:46:59 -05:00
Igor Monadical
ce6b185bf7
Merge branch 'main' into feat/durable
2025-12-17 15:42:03 -05:00
Igor Loskutov
cb41e9e779
self-review round
2025-12-17 15:25:29 -05:00
Igor Loskutov
f7f2957fc9
dry hatched with celery - 2
2025-12-17 15:11:33 -05:00
Igor Loskutov
d683a83906
dry hatchet with celery
2025-12-17 14:48:23 -05:00
Igor Loskutov
e77f38a12a
self-review round
2025-12-17 13:51:50 -05:00
Igor Loskutov
6ae621eadd
self-review round
2025-12-17 13:29:17 -05:00
Igor Loskutov
6ae8f1d870
self-review round
2025-12-17 13:05:08 -05:00
Igor Loskutov
7a29c742c5
hatchet: restore zullip report
2025-12-17 11:06:27 -05:00
Igor Monadical
c62e3c0753
incorporate daily api undocumented feature ( #796 )
...
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com >
2025-12-17 09:51:55 -05:00
Igor Loskutov
298abe8656
self-review (no-mistakes)
2025-12-16 22:59:56 -05:00
Igor Loskutov
67420d2ec4
self-review (no-mistakes)
2025-12-16 22:47:09 -05:00
Igor Loskutov
4b00dda0ca
hatchet init db
2025-12-16 17:24:16 -05:00
Igor Loskutov
7591387e52
cleanup
2025-12-16 16:49:42 -05:00
Igor Loskutov
447bf97854
.
2025-12-16 16:44:15 -05:00
Igor Loskutov
c280e8dc1d
and add hatchet processor setting to room
2025-12-16 16:40:18 -05:00
Igor Loskutov
9b8f76929e
remove shadow mode for hatchet
2025-12-16 16:39:52 -05:00
Igor Loskutov
409c257889
hatched logs
2025-12-16 16:31:29 -05:00
Igor Loskutov
fce0945564
self-review (no-mistakes)
2025-12-16 16:04:52 -05:00
Igor Loskutov
e81e0cb5c3
remove conductor and add hatchet tests (no-mistakes)
2025-12-16 13:24:05 -05:00
Igor Loskutov
1f49deb5b5
hatchet no-mistake, better logging
2025-12-16 12:26:59 -05:00
Igor Loskutov
0f266eabdf
hatchet no-mistake
2025-12-16 12:09:02 -05:00
Igor Loskutov
c5498d26bf
hatchet no-mistake
2025-12-16 00:48:58 -05:00
Igor Loskutov
243ff2177c
durable (no-mistakes)
2025-12-15 12:18:47 -05:00
0eba147018
fix: populate room_name in transcript GET endpoint ( #783 )
...
Fixes monadical/internalai#14
2025-12-11 12:37:59 +01:00
Igor Monadical
61f0e29d4c
feat: llm retries ( #739 )
...
* llm retries no-mistakes
* self-review (no-mistakes)
* self-review (no-mistakes)
* bigger retry intervals by default
* tests and dry
* restore to main state
* parse retries
* json retries (no-mistakes)
* json retries (no-mistakes)
* json retries (no-mistakes)
* json retries (no-mistakes) self-review
* additional network retry test
* more lindt
---------
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com >
2025-12-05 12:08:21 -05:00
Igor Monadical
ec17ed7b58
fix: celery inspect bug sidestep in restart script ( #766 )
...
* celery bug sidestep
* 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>
2025-12-04 09:22:51 -05:00
d3a5cd12d2
fix: return participant emails from transcript endpoint ( #769 )
...
* Return participant emails from transcript endpoint
* Fix broken test
2025-12-03 16:47:56 +01:00
Igor Monadical
bd5df1ce2e
fix: Multitrack mixdown optimisation 2 ( #764 )
...
* Revert "fix: Skip mixdown for multitrack (#760 )"
This reverts commit b51b7aa917 .
* multitrack mixdown optimisation
* return the "good" ui part of "skip mixdown"
---------
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com >
2025-12-02 17:10:06 -05:00
28f87c09dc
fix: align daily room settings ( #759 )
...
* Switch platform ui
* Update room settings based on platform
* Add local and none recording options to daily
* Don't create tokens for unauthentikated users
* Enable knocking for private rooms
* Create new meeting on room settings change
* Always use 2-200 option for daily
* Show recording start trigger for daily
* Fix broken test
2025-12-02 09:06:36 +01:00
Igor Monadical
b51b7aa917
fix: Skip mixdown for multitrack ( #760 )
...
* multitrack mixdown optimisation
* skip mixdown for multitrack
* skip mixdown for multitrack
---------
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com >
2025-12-01 23:35:12 -05:00
7f0b728991
fix: participants update from daily ( #749 )
...
* Fix participants update from daily
* Use track keys from params
2025-11-27 16:53:26 +01:00
Igor Monadical
d63040e2fd
feat: Multitrack segmentation ( #747 )
...
* segmentation multitrack (no-mistakes)
* segmentation multitrack (no-mistakes)
* self review
* self review
* recording poll daily doc
* filter cam_audio tracks to remove screensharing from daily processing
* pr review
---------
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com >
2025-11-26 16:21:32 -05:00
f6ca07505f
feat: add transcript format parameter to GET endpoint ( #709 )
...
* feat: add transcript format parameter to GET endpoint
Add transcript_format query parameter to /v1/transcripts/{id} endpoint
with support for multiple output formats using discriminated unions.
Formats supported:
- text: Plain speaker dialogue (default)
- text-timestamped: Dialogue with [MM:SS] timestamps
- webvtt-named: WebVTT subtitles with participant names
- json: Structured segments with full metadata
Response models use Pydantic discriminated unions with transcript_format
as discriminator field. POST/PATCH endpoints return GetTranscriptWithParticipants
for minimal responses. GET endpoint returns format-specific models.
* Copy transcript format
* Regenerate types
* Fix transcript formats
* Don't throw inside try
* Remove any type
* Toast share copy errors
* transcript_format exhaustiveness and python idiomatic assert_never
* format_timestamp_mmss clear type definition
* Rename seconds_to_timestamp
* Test transcript format with overlapping speakers
* exact match for vtt multispeaker test
---------
Co-authored-by: Sergey Mankovsky <sergey@monadical.com >
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com >
2025-11-26 18:51:14 +01:00
Igor Monadical
0b2c82227d
is_owner pass for dailyco ( #745 )
...
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com >
2025-11-25 22:41:54 -05:00
Igor Monadical
86d5e26224
feat: transcript restart script ( #742 )
...
* transcript restart script
* fix tests?
* remove useless comment
---------
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com >
2025-11-25 16:28:43 -05:00
9bec39808f
feat: link transcript participants ( #737 )
...
* Sync authentik users
* Migrate user_id from uid to id
* Fix auth user id
* Fix ci migration test
* Fix meeting token creation
* Move user id migration to a script
* Add user on first login
* Fix migration chain
* Rename uid column to authentik_uid
* Fix broken ws test
2025-11-25 19:13:19 +01:00
Igor Monadical
c442a62787
fix: default platform fix ( #736 )
...
* default platform fix
* default platform fix
* default platform fix
* Update server/reflector/db/rooms.py
Co-authored-by: pr-agent-monadical[bot] <198624643+pr-agent-monadical[bot]@users.noreply.github.com>
* default platform fix
---------
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>
2025-11-24 23:10:34 -05:00
Igor Monadical
8e438ca285
feat: dailyco poll ( #730 )
...
* dailyco api module (no-mistakes)
* daily co library self-review
* uncurse
* self-review: daily resource leak, uniform types, enable_recording bomb, daily custom error, video_platforms/daily typing, daily timestamp dry
* dailyco docs parser
* phase 1-2 of daily poll
* dailyco poll (no-mistakes)
* poll docs
* fix tests
* forgotten utils file
* remove generated daily docs
* pr comments
* dailyco poll pr review and self-review
* daily recording poll api fix
* daily recording poll api fix
* review
* review
* fix tests
---------
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com >
2025-11-24 22:24:03 -05:00
Igor Monadical
11731c9d38
feat: multitrack cli ( #735 )
...
* multitrack cli prd
* prd/todo (no-mistakes)
* multitrack cli (no-mistakes)
* multitrack cli (no-mistakes)
* multitrack cli (no-mistakes)
* multitrack cli (no-mistakes)
* remove multitrack tests most worthless
* useless comments away
* useless comments away
---------
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com >
2025-11-24 10:35:06 -05:00
Igor Monadical
4287f8b8ae
feat: dailyco api module ( #725 )
...
* dailyco api module (no-mistakes)
* daily co library self-review
* uncurse
* self-review: daily resource leak, uniform types, enable_recording bomb, daily custom error, video_platforms/daily typing, daily timestamp dry
* dailyco docs parser
* remove generated daily docs
---------
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com >
2025-11-21 10:24:04 -05:00
Igor Monadical
616092a9bb
keep only debug log for tracks with no words ( #724 )
...
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com >
2025-11-18 10:40:46 -05:00
Igor Monadical
b20cad76e6
feat: daily QOL: participants dictionary ( #721 )
...
* daily QOL: participants dictionary
* meeting deactivation fix
* meeting deactivation fix
---------
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com >
2025-11-14 14:31:52 -05:00
Igor Monadical
857e035562
fix whereby reprocess logic branch ( #720 )
...
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com >
2025-11-13 11:35:29 -05:00
Igor Monadical
1473fd82dc
feat: daily.co support as alternative to whereby ( #691 )
...
* llm instructions
* vibe dailyco
* vibe dailyco
* doc update (vibe)
* dont show recording ui on call
* stub processor (vibe)
* stub processor (vibe) self-review
* stub processor (vibe) self-review
* chore(main): release 0.14.0 (#670 )
* Add multitrack pipeline
* Mixdown audio tracks
* Mixdown with pyav filter graph
* Trigger multitrack processing for daily recordings
* apply platform from envs in priority: non-dry
* Use explicit track keys for processing
* Align tracks of a multitrack recording
* Generate waveforms for the mixed audio
* Emit multriack pipeline events
* Fix multitrack pipeline track alignment
* dailico docs
* Enable multitrack reprocessing
* modal temp files uniform names, cleanup. remove llm temporary docs
* docs cleanup
* dont proceed with raw recordings if any of the downloads fail
* dry transcription pipelines
* remove is_miltitrack
* comments
* explicit dailyco room name
* docs
* remove stub data/method
* frontend daily/whereby code self-review (no-mistake)
* frontend daily/whereby code self-review (no-mistakes)
* frontend daily/whereby code self-review (no-mistakes)
* consent cleanup for multitrack (no-mistakes)
* llm fun
* remove extra comments
* fix tests
* merge migrations
* Store participant names
* Get participants by meeting session id
* pop back main branch migration
* s3 paddington (no-mistakes)
* comment
* pr comments
* pr comments
* pr comments
* platform / meeting cleanup
* Use participant names in summary generation
* platform assignment to meeting at controller level
* pr comment
* room playform properly default none
* room playform properly default none
* restore migration lost
* streaming WIP
* extract storage / use common storage / proper env vars for storage
* fix mocks tests
* remove fall back
* streaming for multifile
* cenrtal storage abstraction (no-mistakes)
* remove dead code / vars
* Set participant user id for authenticated users
* whereby recording name parsing fix
* whereby recording name parsing fix
* more file stream
* storage dry + tests
* remove homemade boto3 streaming and use proper boto
* update migration guide
* webhook creation script - print uuid
---------
Co-authored-by: Igor Loskutov <igor.loskutoff@gmail.com >
Co-authored-by: Mathieu Virbel <mat@meltingrocks.com >
Co-authored-by: Sergey Mankovsky <sergey@monadical.com >
2025-11-12 21:21:16 -05:00
372202b0e1
feat: add API key management UI ( #716 )
...
* feat: add API key management UI
- Created settings page for users to create, view, and delete API keys
- Added Settings link to app navigation header
- Fixed delete operation return value handling in backend to properly handle asyncpg's None response
* feat: replace browser confirm with dialog for API key deletion
- Added Chakra UI Dialog component for better UX when confirming API key deletion
- Implemented proper focus management with cancelRef for accessibility
- Replaced native browser confirm() with controlled dialog state
* style: format API keys page with consistent line breaks
* feat: auto-select API key text for easier copying
- Added automatic text selection after API key creation to streamline the copy workflow
- Applied className to Code component for DOM targeting
* feat: improve API keys page layout and responsiveness
- Reduced max width from 1200px to 800px for better readability
- Added explicit width constraint to ensure consistent sizing across viewports
* refactor: remove redundant comments from API keys page
2025-11-10 18:25:08 -05:00