diff --git a/.changeset/agent-job-webhooks.md b/.changeset/agent-job-webhooks.md deleted file mode 100644 index 0d1bfec68..000000000 --- a/.changeset/agent-job-webhooks.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Add `agent_job_started` / `agent_job_ended` webhook events and a `job` field on `WebhookEvent` diff --git a/.changeset/egress-passthrough.md b/.changeset/egress-passthrough.md deleted file mode 100644 index af02206ba..000000000 --- a/.changeset/egress-passthrough.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": minor -"@livekit/protocol": minor ---- - -egress v2: add `passthrough` to the `encoding` oneof on `StartEgressRequest` and `ExportReplayRequest`; remove the unused `EgressHandler.UpdateEgress` RPC and the `livekit.UpdateEgressRequest` message diff --git a/.changeset/list-unowned-node-noops.md b/.changeset/list-unowned-node-noops.md deleted file mode 100644 index 628ed5851..000000000 --- a/.changeset/list-unowned-node-noops.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"github.com/livekit/protocol": patch ---- - -`utils/list`: mutations involving a node the list does not own — removing or moving an unlinked node, inserting an already-linked node, or inserting relative to an unlinked mark — are now no-ops, as in `container/list`. Previously an unlinked node's zeroed hook made `Remove`/`MoveToFront`/`MoveToBack` clear the list's head and tail, silently stranding every remaining element, and re-inserting a linked node forked the list. diff --git a/.changeset/promise-then.md b/.changeset/promise-then.md deleted file mode 100644 index a2f1543d1..000000000 --- a/.changeset/promise-then.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"github.com/livekit/protocol": patch ---- - -`utils.Promise` gains `Then(func(T, error))`, registering a callback to run when the promise resolves. Callbacks run on the goroutine that calls `Resolve`, in registration order; registering on an already-resolved promise runs the callback inline on the caller. `NewPromise` no longer allocates the done channel up front — `Done()` already created it lazily. diff --git a/.changeset/psrpc-error-code-label.md b/.changeset/psrpc-error-code-label.md deleted file mode 100644 index 5637b4fe5..000000000 --- a/.changeset/psrpc-error-code-label.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"github.com/livekit/protocol": patch ---- - -Add an `error_code` label to the `livekit_psrpc_error_total` metric. diff --git a/.changeset/realtime-gateway-obs.md b/.changeset/realtime-gateway-obs.md deleted file mode 100644 index fcd7c23cb..000000000 --- a/.changeset/realtime-gateway-obs.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"github.com/livekit/protocol": patch ---- - -Add realtime (speech-to-speech) reporter methods to gatewayobs, regenerated from cloud-observability schema/gateway.yaml realtime billing columns (#502). diff --git a/.changeset/room-end-reason.md b/.changeset/room-end-reason.md deleted file mode 100644 index 572bf5b62..000000000 --- a/.changeset/room-end-reason.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": minor -"@livekit/protocol": minor ---- - -add `RoomEndReason` enum and report it on room-ended telemetry: `AnalyticsEvent.room_end_reason` and `WebhookEvent.room_end_reason` now say why a room ended (`ROOM_END_API_DELETE`, `ROOM_END_IDLE_TIMEOUT`, `ROOM_END_SERVER_SHUTDOWN`, `ROOM_END_SUPERSEDED`, `ROOM_END_OPEN_FAILED`), so room-end volume can be broken down by cause the way participant disconnects already are diff --git a/.changeset/run-metrics-quality-members.md b/.changeset/run-metrics-quality-members.md deleted file mode 100644 index 356770925..000000000 --- a/.changeset/run-metrics-quality-members.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -agent simulation: add `conciseness` and `conversation_progression` to `SimulationRun.RunMetrics` diff --git a/.changeset/simulate-audio-impairments.md b/.changeset/simulate-audio-impairments.md deleted file mode 100644 index a94173ff5..000000000 --- a/.changeset/simulate-audio-impairments.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Add `background_noise`, `low_quality_microphone`, and `packet_loss` to `SimulationRun.Create.Request`, so an audio simulation run can impair the simulated user's audio. diff --git a/.changeset/sip-to-user-override.md b/.changeset/sip-to-user-override.md deleted file mode 100644 index e7a91000b..000000000 --- a/.changeset/sip-to-user-override.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Add `to_user_override` to `CreateSIPParticipantRequest` to override the user part of the `To` header, and warn when `To`/`Via` are set in the SIP headers map. diff --git a/.changeset/sip-transfer-outcome-status.md b/.changeset/sip-transfer-outcome-status.md deleted file mode 100644 index 1c6d07df9..000000000 --- a/.changeset/sip-transfer-outcome-status.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": minor -"@livekit/protocol": minor ---- - -`TransferSIPParticipant` now returns `TransferSIPParticipantResponse` instead of `google.protobuf.Empty`, carrying the transfer id, status, a new `SIPTransferReason` and the SIP status when the outcome came from a SIP response. `SIPTransferInfo` gains the same `reason`. This changes the generated method signature: a transfer that reports a non-successful status without an error means the transfer did not complete. diff --git a/.changeset/slimy-cows-shake.md b/.changeset/slimy-cows-shake.md deleted file mode 100644 index a680cffe1..000000000 --- a/.changeset/slimy-cows-shake.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": minor -"@livekit/protocol": minor ---- - -Moved egress passthrough option to an encoding preset. diff --git a/.changeset/small-eggs-itch.md b/.changeset/small-eggs-itch.md deleted file mode 100644 index edabfd0c1..000000000 --- a/.changeset/small-eggs-itch.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Remove extraneous format specifier from log string. diff --git a/.changeset/spotty-jokes-shake.md b/.changeset/spotty-jokes-shake.md deleted file mode 100644 index fa04abcf8..000000000 --- a/.changeset/spotty-jokes-shake.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Move the config observer into utils/configutil and drop the stuttering Config prefix. utils.ConfigObserver, utils.ConfigBuilder, utils.ConfigDefaulter and utils.NewConfigObserver remain as aliases. diff --git a/.changeset/tough-locks-talk.md b/.changeset/tough-locks-talk.md deleted file mode 100644 index 8ebacbba0..000000000 --- a/.changeset/tough-locks-talk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"github.com/livekit/protocol": patch ---- - -Track holder goroutines of stuck locks (all RWMutex readers up to 8) and resolve their current stacks diff --git a/.changeset/wise-horses-visit.md b/.changeset/wise-horses-visit.md deleted file mode 100644 index b94b157cc..000000000 --- a/.changeset/wise-horses-visit.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"github.com/livekit/protocol": patch -"@livekit/protocol": patch ---- - -Add data track subscription to sync state diff --git a/CHANGELOG.md b/CHANGELOG.md index 07b322a98..fac81a33a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,43 @@ # github.com/livekit/protocol +## 1.51.0 + +### Minor Changes + +- egress v2: add `passthrough` to the `encoding` oneof on `StartEgressRequest` and `ExportReplayRequest`; remove the unused `EgressHandler.UpdateEgress` RPC and the `livekit.UpdateEgressRequest` message - [#1716](https://github.com/livekit/protocol/pull/1716) ([@frostbyte73](https://github.com/frostbyte73)) + +- add `RoomEndReason` enum and report it on room-ended telemetry: `AnalyticsEvent.room_end_reason` and `WebhookEvent.room_end_reason` now say why a room ended (`ROOM_END_API_DELETE`, `ROOM_END_IDLE_TIMEOUT`, `ROOM_END_SERVER_SHUTDOWN`, `ROOM_END_SUPERSEDED`, `ROOM_END_OPEN_FAILED`), so room-end volume can be broken down by cause the way participant disconnects already are - [#1748](https://github.com/livekit/protocol/pull/1748) ([@paulwe](https://github.com/paulwe)) + +- `TransferSIPParticipant` now returns `TransferSIPParticipantResponse` instead of `google.protobuf.Empty`, carrying the transfer id, status, a new `SIPTransferReason` and the SIP status when the outcome came from a SIP response. `SIPTransferInfo` gains the same `reason`. This changes the generated method signature: a transfer that reports a non-successful status without an error means the transfer did not complete. - [#1730](https://github.com/livekit/protocol/pull/1730) ([@genseric-ghiro](https://github.com/genseric-ghiro)) + +- Moved egress passthrough option to an encoding preset. - [#1718](https://github.com/livekit/protocol/pull/1718) ([@frostbyte73](https://github.com/frostbyte73)) + +### Patch Changes + +- Add `agent_job_started` / `agent_job_ended` webhook events and a `job` field on `WebhookEvent` - [#1711](https://github.com/livekit/protocol/pull/1711) ([@erikhortsch](https://github.com/erikhortsch)) + +- `utils/list`: mutations involving a node the list does not own — removing or moving an unlinked node, inserting an already-linked node, or inserting relative to an unlinked mark — are now no-ops, as in `container/list`. Previously an unlinked node's zeroed hook made `Remove`/`MoveToFront`/`MoveToBack` clear the list's head and tail, silently stranding every remaining element, and re-inserting a linked node forked the list. - [#1753](https://github.com/livekit/protocol/pull/1753) ([@paulwe](https://github.com/paulwe)) + +- `utils.Promise` gains `Then(func(T, error))`, registering a callback to run when the promise resolves. Callbacks run on the goroutine that calls `Resolve`, in registration order; registering on an already-resolved promise runs the callback inline on the caller. `NewPromise` no longer allocates the done channel up front — `Done()` already created it lazily. - [#1747](https://github.com/livekit/protocol/pull/1747) ([@paulwe](https://github.com/paulwe)) + +- Add an `error_code` label to the `livekit_psrpc_error_total` metric. - [#1699](https://github.com/livekit/protocol/pull/1699) ([@paulwe](https://github.com/paulwe)) + +- Add realtime (speech-to-speech) reporter methods to gatewayobs, regenerated from cloud-observability schema/gateway.yaml realtime billing columns (#502). - [#1663](https://github.com/livekit/protocol/pull/1663) ([@russellmartin-livekit](https://github.com/russellmartin-livekit)) + +- agent simulation: add `conciseness` and `conversation_progression` to `SimulationRun.RunMetrics` - [#1742](https://github.com/livekit/protocol/pull/1742) ([@u9g](https://github.com/u9g)) + +- Add `background_noise`, `low_quality_microphone`, and `packet_loss` to `SimulationRun.Create.Request`, so an audio simulation run can impair the simulated user's audio. - [#1723](https://github.com/livekit/protocol/pull/1723) ([@u9g](https://github.com/u9g)) + +- Add `to_user_override` to `CreateSIPParticipantRequest` to override the user part of the `To` header, and warn when `To`/`Via` are set in the SIP headers map. - [#1717](https://github.com/livekit/protocol/pull/1717) ([@genseric-ghiro](https://github.com/genseric-ghiro)) + +- Remove extraneous format specifier from log string. - [#1682](https://github.com/livekit/protocol/pull/1682) ([@alexfish8](https://github.com/alexfish8)) + +- Move the config observer into utils/configutil and drop the stuttering Config prefix. utils.ConfigObserver, utils.ConfigBuilder, utils.ConfigDefaulter and utils.NewConfigObserver remain as aliases. - [#1712](https://github.com/livekit/protocol/pull/1712) ([@paulwe](https://github.com/paulwe)) + +- Track holder goroutines of stuck locks (all RWMutex readers up to 8) and resolve their current stacks - [#1701](https://github.com/livekit/protocol/pull/1701) ([@erikhortsch](https://github.com/erikhortsch)) + +- Add data track subscription to sync state - [#1703](https://github.com/livekit/protocol/pull/1703) ([@boks1971](https://github.com/boks1971)) + ## 1.50.4 ### Patch Changes diff --git a/package.json b/package.json index bbe8396aa..bbc5040a0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "github.com/livekit/protocol", "private": true, - "version": "1.50.4", + "version": "1.51.0", "scripts": { "changeset": "changeset", "ci:publish": "pnpm --filter @livekit/protocol run build && changeset publish" diff --git a/packages/javascript/CHANGELOG.md b/packages/javascript/CHANGELOG.md index e0c411aec..d38816326 100644 --- a/packages/javascript/CHANGELOG.md +++ b/packages/javascript/CHANGELOG.md @@ -1,5 +1,33 @@ # @livekit/protocol +## 1.51.0 + +### Minor Changes + +- egress v2: add `passthrough` to the `encoding` oneof on `StartEgressRequest` and `ExportReplayRequest`; remove the unused `EgressHandler.UpdateEgress` RPC and the `livekit.UpdateEgressRequest` message - [#1716](https://github.com/livekit/protocol/pull/1716) ([@frostbyte73](https://github.com/frostbyte73)) + +- add `RoomEndReason` enum and report it on room-ended telemetry: `AnalyticsEvent.room_end_reason` and `WebhookEvent.room_end_reason` now say why a room ended (`ROOM_END_API_DELETE`, `ROOM_END_IDLE_TIMEOUT`, `ROOM_END_SERVER_SHUTDOWN`, `ROOM_END_SUPERSEDED`, `ROOM_END_OPEN_FAILED`), so room-end volume can be broken down by cause the way participant disconnects already are - [#1748](https://github.com/livekit/protocol/pull/1748) ([@paulwe](https://github.com/paulwe)) + +- `TransferSIPParticipant` now returns `TransferSIPParticipantResponse` instead of `google.protobuf.Empty`, carrying the transfer id, status, a new `SIPTransferReason` and the SIP status when the outcome came from a SIP response. `SIPTransferInfo` gains the same `reason`. This changes the generated method signature: a transfer that reports a non-successful status without an error means the transfer did not complete. - [#1730](https://github.com/livekit/protocol/pull/1730) ([@genseric-ghiro](https://github.com/genseric-ghiro)) + +- Moved egress passthrough option to an encoding preset. - [#1718](https://github.com/livekit/protocol/pull/1718) ([@frostbyte73](https://github.com/frostbyte73)) + +### Patch Changes + +- Add `agent_job_started` / `agent_job_ended` webhook events and a `job` field on `WebhookEvent` - [#1711](https://github.com/livekit/protocol/pull/1711) ([@erikhortsch](https://github.com/erikhortsch)) + +- agent simulation: add `conciseness` and `conversation_progression` to `SimulationRun.RunMetrics` - [#1742](https://github.com/livekit/protocol/pull/1742) ([@u9g](https://github.com/u9g)) + +- Add `background_noise`, `low_quality_microphone`, and `packet_loss` to `SimulationRun.Create.Request`, so an audio simulation run can impair the simulated user's audio. - [#1723](https://github.com/livekit/protocol/pull/1723) ([@u9g](https://github.com/u9g)) + +- Add `to_user_override` to `CreateSIPParticipantRequest` to override the user part of the `To` header, and warn when `To`/`Via` are set in the SIP headers map. - [#1717](https://github.com/livekit/protocol/pull/1717) ([@genseric-ghiro](https://github.com/genseric-ghiro)) + +- Remove extraneous format specifier from log string. - [#1682](https://github.com/livekit/protocol/pull/1682) ([@alexfish8](https://github.com/alexfish8)) + +- Move the config observer into utils/configutil and drop the stuttering Config prefix. utils.ConfigObserver, utils.ConfigBuilder, utils.ConfigDefaulter and utils.NewConfigObserver remain as aliases. - [#1712](https://github.com/livekit/protocol/pull/1712) ([@paulwe](https://github.com/paulwe)) + +- Add data track subscription to sync state - [#1703](https://github.com/livekit/protocol/pull/1703) ([@boks1971](https://github.com/boks1971)) + ## 1.50.4 ### Patch Changes diff --git a/packages/javascript/package.json b/packages/javascript/package.json index 0eaaa38c1..5f4d6d1a5 100644 --- a/packages/javascript/package.json +++ b/packages/javascript/package.json @@ -1,6 +1,6 @@ { "name": "@livekit/protocol", - "version": "1.50.4", + "version": "1.51.0", "description": "", "type": "module", "require": "dist/index.cjs",