-
Notifications
You must be signed in to change notification settings - Fork 4
feat: brady bunch #816
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
feat: brady bunch #816
Changes from 17 commits
Commits
Show all changes
25 commits
Select commit
Hold shift + click to select a range
25e2677
brady bunch PRD/tasks
dearlordylord cbf8058
clean dead daily.co code
dearlordylord d8ba9da
brady bunch prototype (no-mistakes)
dearlordylord dbe9477
brady bunch prototype (no-mistakes) review
dearlordylord fedb311
self-review
dearlordylord 4a93e84
daily poll time match (no-mistakes)
dearlordylord bacd276
daily poll self-review (no-mistakes)
dearlordylord 62ac879
daily poll self-review (no-mistakes)
dearlordylord 079ba96
daily co doc
dearlordylord ac65057
cleanup
dearlordylord 1a1b07f
cleanup
dearlordylord 6f71f26
self-review (no-mistakes)
dearlordylord b5ccdb3
self-review (no-mistakes)
dearlordylord 234ea42
self-review
dearlordylord 602848f
self-review
dearlordylord 0c0404a
ui typefix
dearlordylord 64a3fcb
dupe calls error handling proper
dearlordylord b203fcd
daily reflector data model doc
dearlordylord 25b586e
Merge branch 'main' into feat/brady-bunch
dearlordylord 863af9a
logging style fix
dearlordylord 4bd5dbc
Merge branch 'main' into feat/brady-bunch
deardarlingoose 7e92530
Merge branch 'main' into feat/brady-bunch
deardarlingoose d10f098
migration merge
dearlordylord e93fe50
Merge branch 'main' into feat/brady-bunch
deardarlingoose 061f403
Merge branch 'main' into feat/brady-bunch
dearlordylord File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
40 changes: 40 additions & 0 deletions
40
server/migrations/versions/1b1e6a6fc465_add_cloud_recording_support.py
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| """add cloud recording support | ||
|
|
||
| Revision ID: 1b1e6a6fc465 | ||
| Revises: bd3a729bb379 | ||
| Create Date: 2026-01-09 17:17:33.535620 | ||
|
|
||
| """ | ||
|
|
||
| from typing import Sequence, Union | ||
|
|
||
| import sqlalchemy as sa | ||
| from alembic import op | ||
|
|
||
| # revision identifiers, used by Alembic. | ||
| revision: str = "1b1e6a6fc465" | ||
| down_revision: Union[str, None] = "bd3a729bb379" | ||
| branch_labels: Union[str, Sequence[str], None] = None | ||
| depends_on: Union[str, Sequence[str], None] = None | ||
|
|
||
|
|
||
| def upgrade() -> None: | ||
| # ### commands auto generated by Alembic - please adjust! ### | ||
| with op.batch_alter_table("meeting", schema=None) as batch_op: | ||
| batch_op.add_column( | ||
| sa.Column("daily_composed_video_s3_key", sa.String(), nullable=True) | ||
| ) | ||
| batch_op.add_column( | ||
| sa.Column("daily_composed_video_duration", sa.Integer(), nullable=True) | ||
| ) | ||
|
|
||
| # ### end Alembic commands ### | ||
|
|
||
|
|
||
| def downgrade() -> None: | ||
| # ### commands auto generated by Alembic - please adjust! ### | ||
| with op.batch_alter_table("meeting", schema=None) as batch_op: | ||
| batch_op.drop_column("daily_composed_video_duration") | ||
| batch_op.drop_column("daily_composed_video_s3_key") | ||
|
|
||
| # ### end Alembic commands ### |
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| """ | ||
| Daily.co recording instanceId generation utilities. | ||
|
|
||
| Deterministic instance ID generation for cloud and raw-tracks recordings. | ||
| MUST match frontend logic | ||
| """ | ||
|
|
||
| from uuid import UUID, uuid5 | ||
|
|
||
| from reflector.utils.string import NonEmptyString | ||
|
|
||
| # Namespace UUID for UUIDv5 generation of raw-tracks instanceIds | ||
| # DO NOT CHANGE: Breaks instanceId determinism across deployments and frontend/backend matching | ||
| RAW_TRACKS_NAMESPACE = UUID("a1b2c3d4-e5f6-7890-abcd-ef1234567890") | ||
|
|
||
|
|
||
| def generate_cloud_instance_id(meeting_id: NonEmptyString) -> UUID: | ||
| """ | ||
| Generate instanceId for cloud recording. | ||
|
|
||
| Cloud recordings use meeting ID directly as instanceId. | ||
| This ensures each meeting has one unique cloud recording. | ||
| """ | ||
| return UUID(meeting_id) | ||
|
|
||
|
|
||
| def generate_raw_tracks_instance_id(meeting_id: NonEmptyString) -> UUID: | ||
| """ | ||
| Generate instanceId for raw-tracks recording. | ||
|
|
||
| Raw-tracks recordings use UUIDv5(meeting_id, namespace) to ensure | ||
| different instanceId from cloud while remaining deterministic. | ||
|
|
||
| Daily.co requires cloud and raw-tracks to have different instanceIds | ||
| for concurrent recording. | ||
| """ | ||
| return uuid5(RAW_TRACKS_NAMESPACE, meeting_id) |
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.