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>
This commit is contained in:
Igor Monadical
2025-11-12 21:21:16 -05:00
committed by GitHub
parent 372202b0e1
commit 1473fd82dc
71 changed files with 4985 additions and 468 deletions

96
www/pnpm-lock.yaml generated
View File

@@ -10,6 +10,9 @@ importers:
"@chakra-ui/react":
specifier: ^3.24.2
version: 3.24.2(@emotion/react@11.14.0(@types/react@18.2.20)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
"@daily-co/daily-js":
specifier: ^0.84.0
version: 0.84.0
"@emotion/react":
specifier: ^11.14.0
version: 11.14.0(@types/react@18.2.20)(react@18.3.1)
@@ -487,6 +490,13 @@ packages:
}
engines: { node: ">=12" }
"@daily-co/daily-js@0.84.0":
resolution:
{
integrity: sha512-/ynXrMDDkRXhLlHxiFNf9QU5yw4ZGPr56wNARgja/Tiid71UIniundTavCNF5cMb2I1vNoMh7oEJ/q8stg/V7g==,
}
engines: { node: ">=10.0.0" }
"@emnapi/core@1.4.5":
resolution:
{
@@ -2293,6 +2303,13 @@ packages:
}
engines: { node: ">=18" }
"@sentry-internal/browser-utils@8.55.0":
resolution:
{
integrity: sha512-ROgqtQfpH/82AQIpESPqPQe0UyWywKJsmVIqi3c5Fh+zkds5LUxnssTj3yNd1x+kxaPDVB023jAP+3ibNgeNDw==,
}
engines: { node: ">=14.18" }
"@sentry-internal/feedback@10.11.0":
resolution:
{
@@ -2300,6 +2317,13 @@ packages:
}
engines: { node: ">=18" }
"@sentry-internal/feedback@8.55.0":
resolution:
{
integrity: sha512-cP3BD/Q6pquVQ+YL+rwCnorKuTXiS9KXW8HNKu4nmmBAyf7urjs+F6Hr1k9MXP5yQ8W3yK7jRWd09Yu6DHWOiw==,
}
engines: { node: ">=14.18" }
"@sentry-internal/replay-canvas@10.11.0":
resolution:
{
@@ -2307,6 +2331,13 @@ packages:
}
engines: { node: ">=18" }
"@sentry-internal/replay-canvas@8.55.0":
resolution:
{
integrity: sha512-nIkfgRWk1091zHdu4NbocQsxZF1rv1f7bbp3tTIlZYbrH62XVZosx5iHAuZG0Zc48AETLE7K4AX9VGjvQj8i9w==,
}
engines: { node: ">=14.18" }
"@sentry-internal/replay@10.11.0":
resolution:
{
@@ -2314,6 +2345,13 @@ packages:
}
engines: { node: ">=18" }
"@sentry-internal/replay@8.55.0":
resolution:
{
integrity: sha512-roCDEGkORwolxBn8xAKedybY+Jlefq3xYmgN2fr3BTnsXjSYOPC7D1/mYqINBat99nDtvgFvNfRcZPiwwZ1hSw==,
}
engines: { node: ">=14.18" }
"@sentry/babel-plugin-component-annotate@4.3.0":
resolution:
{
@@ -2328,6 +2366,13 @@ packages:
}
engines: { node: ">=18" }
"@sentry/browser@8.55.0":
resolution:
{
integrity: sha512-1A31mCEWCjaMxJt6qGUK+aDnLDcK6AwLAZnqpSchNysGni1pSn1RWSmk9TBF8qyTds5FH8B31H480uxMPUJ7Cw==,
}
engines: { node: ">=14.18" }
"@sentry/bundler-plugin-core@4.3.0":
resolution:
{
@@ -2421,6 +2466,13 @@ packages:
}
engines: { node: ">=18" }
"@sentry/core@8.55.0":
resolution:
{
integrity: sha512-6g7jpbefjHYs821Z+EBJ8r4Z7LT5h80YSWRJaylGS4nW5W5Z2KXzpdnyFarv37O7QjauzVC2E+PABmpkw5/JGA==,
}
engines: { node: ">=14.18" }
"@sentry/nextjs@10.11.0":
resolution:
{
@@ -4029,6 +4081,12 @@ packages:
}
engines: { node: ">=8" }
bowser@2.12.1:
resolution:
{
integrity: sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==,
}
brace-expansion@1.1.12:
resolution:
{
@@ -9288,6 +9346,14 @@ snapshots:
"@jridgewell/trace-mapping": 0.3.9
optional: true
"@daily-co/daily-js@0.84.0":
dependencies:
"@babel/runtime": 7.28.2
"@sentry/browser": 8.55.0
bowser: 2.12.1
dequal: 2.0.3
events: 3.3.0
"@emnapi/core@1.4.5":
dependencies:
"@emnapi/wasi-threads": 1.0.4
@@ -10506,20 +10572,38 @@ snapshots:
dependencies:
"@sentry/core": 10.11.0
"@sentry-internal/browser-utils@8.55.0":
dependencies:
"@sentry/core": 8.55.0
"@sentry-internal/feedback@10.11.0":
dependencies:
"@sentry/core": 10.11.0
"@sentry-internal/feedback@8.55.0":
dependencies:
"@sentry/core": 8.55.0
"@sentry-internal/replay-canvas@10.11.0":
dependencies:
"@sentry-internal/replay": 10.11.0
"@sentry/core": 10.11.0
"@sentry-internal/replay-canvas@8.55.0":
dependencies:
"@sentry-internal/replay": 8.55.0
"@sentry/core": 8.55.0
"@sentry-internal/replay@10.11.0":
dependencies:
"@sentry-internal/browser-utils": 10.11.0
"@sentry/core": 10.11.0
"@sentry-internal/replay@8.55.0":
dependencies:
"@sentry-internal/browser-utils": 8.55.0
"@sentry/core": 8.55.0
"@sentry/babel-plugin-component-annotate@4.3.0": {}
"@sentry/browser@10.11.0":
@@ -10530,6 +10614,14 @@ snapshots:
"@sentry-internal/replay-canvas": 10.11.0
"@sentry/core": 10.11.0
"@sentry/browser@8.55.0":
dependencies:
"@sentry-internal/browser-utils": 8.55.0
"@sentry-internal/feedback": 8.55.0
"@sentry-internal/replay": 8.55.0
"@sentry-internal/replay-canvas": 8.55.0
"@sentry/core": 8.55.0
"@sentry/bundler-plugin-core@4.3.0":
dependencies:
"@babel/core": 7.28.3
@@ -10590,6 +10682,8 @@ snapshots:
"@sentry/core@10.11.0": {}
"@sentry/core@8.55.0": {}
"@sentry/nextjs@10.11.0(@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(next@15.5.3(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.90.0))(react@18.3.1)(webpack@5.101.3)":
dependencies:
"@opentelemetry/api": 1.9.0
@@ -11967,6 +12061,8 @@ snapshots:
binary-extensions@2.3.0: {}
bowser@2.12.1: {}
brace-expansion@1.1.12:
dependencies:
balanced-match: 1.0.2