',
+ },
+];
+```
+
+The recording states include `IDLE`, `STARTING`, `RECORDING`, `PAUSED`, and `STOPPING`.
## Start a recording
-To start a recording, you can call the `start` method in the `meeting.recording`
-object. The valid states are `IDLE`, `STARTING`, `RECORDING`, and `STOPPING`.
+Initiate a recording using the start method.
```ts
await meeting.recording.start();
```
+To enable multiple parallel recordings, the first recording must be started with the option `{ allowMultiple: true }`.
+
+```ts
+await meeting.recording.start({ allowMultiple: true });
+```
+
+Subsequent recordings can then be initiated while the first is still running.
+
## Stop a recording
-Call `meeting.recording.stop()` to stop the active recording.
+End an active recording with the stop method.
```ts
await meeting.recording.stop();
```
+To stop a specific recording, provide the recording ID:
+
+```ts
+await meeting.recording.stop(recordingId);
+```
+
+Omitting the recording ID will stop all recordings in `RECORDING` or `PAUSED` state.
+
+## Pause a recording
+
+Temporarily halt a recording using the pause method.
+
+```ts
+await meeting.recording.pause();
+```
+
+To pause a specific recording, include the recording ID:
+
+```ts
+await meeting.recording.pause(recordingId);
+```
+
+Without a recording ID, all recordings in the `RECORDING` state will be paused.
+
+## Resume a recording
+
+Restart a paused recording with the resume method.
+
+```ts
+await meeting.recording.resume();
+```
+
+For resuming a specific recording, pass the recording ID:
+
+```ts
+await meeting.recording.resume(recordingId);
+```
+
+If no recording ID is specified, all recordings in the `PAUSED` state will be resumed.
+
## Recording Configuration
You can set the defaults for recording during initialization
@@ -83,5 +149,5 @@ It is equivalent of `file_name_prefix` in our [start recording API](https://docs
## Check active recording state
The `meeting.recording.recordingState` property describes the current state of
-the recording. The valid states are `IDLE`, `STARTING`, `RECORDING`, and
+the recording. The valid states are `IDLE`, `STARTING`, `RECORDING`, `PAUSED` and
`STOPPING`.
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 886fbb46cf..58c046d382 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -133,7 +133,7 @@ const docs = [
routeBasePath: '/rn-core',
versions: {
current: {
- label: '0.5.x',
+ label: '0.x.x',
},
},
},
@@ -145,7 +145,7 @@ const docs = [
routeBasePath: '/android',
versions: {
current: {
- label: '0.14.x',
+ label: '1.x.x',
},
},
},
@@ -165,7 +165,7 @@ const docs = [
routeBasePath: '/ios',
versions: {
current: {
- label: '1.33.x',
+ label: '1.x.x',
},
},
},
@@ -175,7 +175,7 @@ const docs = [
routeBasePath: '/react-native',
versions: {
current: {
- label: '1.4.x',
+ label: '1.x.x',
},
},
},
diff --git a/src/components/LatestInstallation.jsx b/src/components/LatestInstallation.jsx
index 6c92e5f49a..34e73b557a 100644
--- a/src/components/LatestInstallation.jsx
+++ b/src/components/LatestInstallation.jsx
@@ -2,12 +2,12 @@ import React, { useEffect, useState } from 'react';
import CodeBlock from '@theme/CodeBlock';
import latestNPMVersion from '../utils/npm';
-export const MavenLatestInstallation = () => {
+export const MavenLatestInstallation = ({ pkg }) => {
const [version, setVersion] = useState('+');
useEffect(() => {
const raw = JSON.stringify({
- androidCore: true,
+ maven: pkg,
});
const requestOptions = {
@@ -27,13 +27,38 @@ export const MavenLatestInstallation = () => {
{`dependencies {
// (other dependencies)
- implementation 'io.dyte:core-android:${version}'
+ implementation 'io.dyte:${pkg}:${version}'
}`}
);
};
+export const CocoaPodInstallation = ({ pkg, path }) => {
+ const [version, setVersion] = useState(undefined);
+
+ useEffect(() => {
+ const requestOptions = {
+ method: 'GET',
+ body: null,
+ };
+
+ const url = `https://api.github.com/repos/CocoaPods/Specs/contents/Specs/${path}/`;
+
+ fetch(url, requestOptions)
+ .then((response) => response.json())
+ .then((result) => setVersion(result[result.length - 1]['name']));
+ }, []);
+
+ return (
+
+
+ {`pod '${pkg}' ${version ? `, '${version}'` : ''}`}
+
+
+ );
+};
+
export const WebCoreCDNInstallation = () => {
const [version, setVersion] = useState('');
useEffect(() => {
diff --git a/static/release-notes/android-core.json b/static/release-notes/android-core.json
new file mode 100644
index 0000000000..3661c58a5f
--- /dev/null
+++ b/static/release-notes/android-core.json
@@ -0,0 +1,22 @@
+[
+ {
+ "version": "1.24.0",
+ "createdAt": 1701778861,
+ "fixes": [
+ "Fixed an issue where callback was not getting triggered on un-pinning a participant",
+ "Fixed a crash for customers targeting Android 14 as their compileSdk configuration on their application"
+ ],
+ "breaking-changes": []
+ },
+ {
+ "version": "1.26.1",
+ "createdAt": 1702288067,
+ "new_api": [
+ "DyteRecording class now have [pause()](../android-core/recording) and [resume()](../android-core/recording) methods to pause a recording and resume the same recording"
+ ],
+ "fixes": [
+ "Fixed an issue with DyteStage where the stage status was not updating correctly when a participant received a request to join stage"
+ ],
+ "breaking-changes": []
+ }
+]
diff --git a/static/release-notes/android-ui-kit.json b/static/release-notes/android-ui-kit.json
new file mode 100644
index 0000000000..50787fbfaa
--- /dev/null
+++ b/static/release-notes/android-ui-kit.json
@@ -0,0 +1,20 @@
+[
+ {
+ "version": "1.14.2",
+ "createdAt": 1701928945,
+ "breaking-changes": [],
+ "features": [
+ "In-app notifications when a participant requests to join the stage",
+ "New UI components, some of the previously internal components are now public, use them to build custom UI. Check out the components page for list of all new components"
+ ]
+ },
+ {
+ "version": "1.14.3",
+ "createdAt": 1702361789,
+ "breaking-changes": [],
+ "features": [],
+ "fixes": [
+ "Fixed an issue with Participant screen where the pinned status was not updating correctly when a participant was un-pinned"
+ ]
+ }
+]
diff --git a/static/release-notes/flutter-core.json b/static/release-notes/flutter-core.json
new file mode 100644
index 0000000000..2319b35df0
--- /dev/null
+++ b/static/release-notes/flutter-core.json
@@ -0,0 +1,10 @@
+[
+ {
+ "version": "1.24.0",
+ "createdAt": 1701778861,
+ "fixes": [
+ "Fixed an issues with a callback not getting triggered for un-pinning a participant"
+ ],
+ "breaking-changes": []
+ }
+]
diff --git a/static/release-notes/flutter-ui-kit.json b/static/release-notes/flutter-ui-kit.json
new file mode 100644
index 0000000000..170748b940
--- /dev/null
+++ b/static/release-notes/flutter-ui-kit.json
@@ -0,0 +1,10 @@
+[
+ {
+ "version": "0.4.0",
+ "createdAt": 1700632945,
+ "fixes": [
+ "Small bug-fixes and performance improvements"
+ ],
+ "breaking-changes": []
+ }
+]
diff --git a/static/release-notes/iOS-core.json b/static/release-notes/iOS-core.json
new file mode 100644
index 0000000000..c2be3dc7d7
--- /dev/null
+++ b/static/release-notes/iOS-core.json
@@ -0,0 +1,21 @@
+[
+ {
+ "version": "1.25.4",
+ "createdAt": 1701842545,
+ "fixes": [
+ "Fixed an issue where callback was not getting triggered on un-pinning a participant"
+ ],
+ "breaking-changes": []
+ },
+ {
+ "version": "1.26.1",
+ "createdAt": 1702288067,
+ "new_api": [
+ "DyteRecording class now have [pause()](../ios-core/recording) and [resume()](../ios-core/recording) methods to pause a recording and resume the same recording"
+ ],
+ "fixes": [
+ "Fixed an issue with DyteStage where the stage status was not updating correctly when a participant received a request to join stage"
+ ],
+ "breaking-changes": []
+ }
+]
diff --git a/static/release-notes/iOS-ui-kit.json b/static/release-notes/iOS-ui-kit.json
new file mode 100644
index 0000000000..d141d2d0f1
--- /dev/null
+++ b/static/release-notes/iOS-ui-kit.json
@@ -0,0 +1,10 @@
+[
+ {
+ "version": "0.4.1",
+ "createdAt": 1700978545,
+ "fixes": [
+ "Minor bug-fixes and performance improvements"
+ ],
+ "breaking-changes": []
+ }
+]
diff --git a/static/release-notes/react-native-core.json b/static/release-notes/react-native-core.json
new file mode 100644
index 0000000000..065cf0cef2
--- /dev/null
+++ b/static/release-notes/react-native-core.json
@@ -0,0 +1,10 @@
+[
+ {
+ "version": "0.6.7",
+ "createdAt": 1701064945,
+ "fixes": [
+ "Small bug-fixes and performance improvements"
+ ],
+ "breaking-changes": []
+ }
+]
diff --git a/static/release-notes/react-native-ui-kit.json b/static/release-notes/react-native-ui-kit.json
new file mode 100644
index 0000000000..33d0d9525e
--- /dev/null
+++ b/static/release-notes/react-native-ui-kit.json
@@ -0,0 +1,10 @@
+[
+ {
+ "version": "1.4.5",
+ "createdAt": 1701410545,
+ "fixes": [
+ "Small bug-fixes and performance improvements"
+ ],
+ "breaking-changes": []
+ }
+]
diff --git a/static/release-notes/react-web-core.json b/static/release-notes/react-web-core.json
index 5c188cb852..bfb7750cf4 100644
--- a/static/release-notes/react-web-core.json
+++ b/static/release-notes/react-web-core.json
@@ -1,173 +1,188 @@
[
- {
- "version": "1.36.0",
- "createdAt": "1698351924",
- "fixes": [
- "Firefox 110+ [simulcast](https://en.wikipedia.org/wiki/Simulcast) optimizations"
- ],
- "new_api": [
- "New [DyteSelfMedia](./reference/DyteSelfMedia) class to initialize media before from DyteClient.init",
- "New `DyteClient.init` parameter `defaults.autoSwitchAudioDevice` allows user to disable the default behavior of switching to a newly connected audio device automatically"
- ]
- },
- {
- "version": "1.35.0",
- "createdAt": "1696145560",
- "fixes": [
- "Maintain the source aspect ratio when camera device is detected as OBS (Beta)",
- "[Webinar] Fix a race when an accepted user resend request to join stage"
- ],
- "new_api": [
- "Webinar and Livestream now both use the same [Stage Management APIs](./stage)",
- "By default Dyte's media handler does not prefer virtual devices, adds a new function to override what is a preferred device and what isn't",
- "Allow [updating video resolution at runtime](./local-user/extras#update-media-resolution-at-runtime)",
- "New baseURI to replace the old apiBase. With this new parameter all network connections including socket connections can now be whitelisted",
- "Render `active` participants as Picture-in-Picture through [a simple new API](./participants/pip)",
- "Join the meeting using `meeting.join()` and leave with the new `meeting.leave()`"
- ],
- "dep_api": [
- "`meeting.joinRoom()` is deprecated in favour of the new `meeting.join()`",
- "`meeting.leaveRoom()` is deprecated in favour of the new `meeting.leave()`",
- "`meeting.self.requestToJoinStage()` is deprecated in favour of `meeting.stage.requestAccess()`",
- "`meeting.self.withdrawRequestToJoinStage()` is deprecated in favour of `meeting.stage.cancelRequestAccess()`",
- "`meeting.self.leaveStage()` is deprecated in favour of `meeting.stage.leave()`",
- "`meeting.self.joinStage()` is deprecated in favour of `meeting.stage.join()`",
- "`meeting.participants.acceptAllRequestToJoinStageRequests()` is deprecated in favour of `meeting.stage.grantAccess([userIds])`"
- ]
- },
- {
- "version": "1.34.0",
- "createdAt": 1686303420,
- "fixes": [
- "Fixed an issue with activating / deactivating the plugin where the plugin is already in the desired state."
- ]
- },
- {
- "version": "1.16.x",
- "createdAt": 1690502400,
- "fixes": [
- "Fixed an edge case where the screen share with audio was not working as expected.",
- "Handle a race condition which used to prevent user from joining stage in a webinar setup.",
- "Separated the private and public chat permissions.",
- "Fixed an issue which was adding duplicate device names on the device list.",
- "Fixed an issue which was not allowing host to kick a participant from the meeting.",
- "`initMeeting` is now idempotent. Calling it multiple times will not cause any issues."
- ]
- },
- {
- "version": "1.15.0",
- "createdAt": 1688083200,
- "fixes": ["Fixed an edge case around file upload in Chat."],
- "features": [
- "Added add support for quoting a chat message while reply for Chat SDK",
- "Chat SDK now shows unread count and last message on channel list.",
- "Participants using Chat SDK will be able to edit and delete their messages."
- ]
- },
- {
- "version": "1.14.0",
- "createdAt": 1686303420,
- "fixes": [
- "Added execution locks around `initClient` method to prevent accidental double initialisation method calls",
- "Handled multiple edge cases around media capture and its retention"
- ],
- "features": [
- "Added self-troubleshooting features, allow users to run tests to discover issues in their calls. More details on this in the next release"
- ]
- },
- {
- "version": "1.13.0",
- "createdAt": 1685491200,
- "fixes": [
- "Optimized `mediaPermissionUpdate` event to be emitted when the user grants media permission for the first time.",
- "Improved the correctness of `meeting.self.getCurrentDevices()` to return the recent device list when the user grants the permission for the first time.",
- "Fixed an edge case where the `screenshareUpdate` event would be emitted twice upon stopping the screenshare.",
- "Improved the reliability of clearing the `pinned` state from participant after they leave meeting."
- ],
- "new_api": [
- "Added a new `CANCELLED` state to [meeting.self.mediaPermission](./local-user/introduction#properties) when the user cancels the screenshare selection dialog in Chromium browsers."
- ]
- },
- {
- "version": "1.25.0",
- "createdAt": 1679433268,
- "fixes": [
- "Build issue for customers using Webpack v5 aliasing `process` with `false` is resolved.",
- "Removed `Poll Messages` from [meeting.chat.messages](./reference/DyteChat#module_DyteChat+messages). Poll messages were wrongly included in the chat messages.",
- "Optimized screenshare production for higher frame rate.",
- "Improved correctness of [mediaScoreUpdate](./participants/events#network-quality-score) on participant."
- ],
- "new_api": [
- "The `defaults` parameter in the init() function [now take recording configuration](./recording#recording-configuration), which is utilized when [starting a recording](./recording#start-a-recording). ",
- "When calling init() the `defaults` param now take screen sharing configuration. \nConfigure the preferred screen sharing screen surface (Screen / Window / Browser Tab)."
- ]
- },
- {
- "version": "1.22.0",
- "createdAt": 1678333268,
- "fixes": [],
- "features": [
- "**Interactive Livestream Release (LL-HLS)** \n 1. Broadcast a meeting to 100,000 viewers with Low latency (3-6 seconds)\n 2. Interactive Chat and Polls \n 3. Viewers can raise hands or the host can invite Viewers to join the stage"
- ],
- "new_api": [
- "A new `DyteStage` module introduced at [meeting.stage](./reference/DyteStage) to manage the stage during livestreaming. \n For more information, see [Livestreaming State Management APIs](https://docs.dyte.io/guides/livestream/state-management-apis).",
- "A new 'DyteLiveStream' module introduced at [meeting.livestream](./Reference/DyteLivestream) to start and stop the livestreaming. \n For more information, see [Livestreaming: Properties, Functions, and Events](https://docs.dyte.io/guides/livestream/livestream-apis)."
- ]
- },
- {
- "version": "1.21.x",
- "createdAt": 1677609000,
- "fixes": ["Handle WeWork Solistice Camera gracefully"],
- "features": [
- "Initial support for our upcoming Interactive Livestream product (LL-HLS)",
- "Webcam quality can now be controlled from the preset, allows customer to select a higher base quality in the preset editor (beta)"
- ],
- "new_api": [
- "Added boolean flag `socketConnected` to `meeting.meta` that shows when the socket connection is established"
- ]
- },
- {
- "version": "1.20.0",
- "createdAt": 1676643893,
- "fixes": [
- "**π¨ Critical π¨** Fixed a WebRTC video production bug that would impact *future* Chrome/Edge browser builds (version β₯ M111 - Scheduled to be released in the first week of March)",
- "Fixed a regression introduced in `1.3.1` where defaults values passed during initialisation were not respected correctly under a certain edge case",
- "Fixed an issue where a bluetooth device disconnection on Google Chrome did not automatically switch to an alternative device",
- "Added workarounds for a [Safari Bug](https://bugs.webkit.org/show_bug.cgi?id=231787) where on disconnection of a bluetooth device, local video playback was paused",
- "Fixed an issue with Safari screenshare, this improves the screenshare quality in Safari.",
- "Minor improvement in the loading times of participant videos when joining a meeting with many participant on the Stage"
- ],
- "features": [
- "Reduced the size impact of this library from from 1020KB to 880KB (from 228KB to 208KB GZipped). A 12% improvement from the previous release "
- ]
- },
- {
- "version": "1.19.1",
- "createdAt": 1675261282,
- "fixes": [
- "Improve text legibility when screensharing on Chrome under poor network conditions"
- ],
- "features": []
- },
- {
- "version": "1.19.0",
- "createdAt": 1674714600,
- "fixes": ["Improved permissions check for audio/video/screenshare"],
- "features": [
- "When Tab Sync is enabled, now a `selfTabUpdate` event is fired on the local user when the user switches a plugin"
- ],
- "breaking-changes": []
- },
- {
- "version": "1.18.0",
- "createdAt": 1674206130,
- "fixes": [
- "Improved handling of iphone Continuity on Mac OS",
- "Fix issues in Websocket connection on Safari 12.x / 13.x / 14.x"
- ],
- "features": [
- "**V2 REST API** - Supports `authToken` generated from V2 REST APIs"
- ],
- "breaking-changes": []
- }
+ {
+ "version": "1.35.8",
+ "createdAt": "1702598400",
+ "fixes": [
+ "Fixed an issue where the video would not be produced correctly in Firefox browser.",
+ "Improved webinars and livestreams reliability by handling edge cases around stage management."
+ ]
+ },
+ {
+ "version": "1.35.7",
+ "createdAt": "1702252800",
+ "new_api": [
+ "Recordings now supports Pause and resume functionality with the new [pauseRecording](./recording#pause-recording) and [resumeRecording](./recording#resume-recording) APIs"
+ ]
+ },
+ {
+ "version": "1.35.6",
+ "createdAt": "1698351924",
+ "fixes": [
+ "Firefox 110+ [simulcast](https://en.wikipedia.org/wiki/Simulcast) optimizations"
+ ],
+ "new_api": [
+ "New [DyteSelfMedia](./reference/DyteSelfMedia) class to initialize media before from DyteClient.init",
+ "New `DyteClient.init` parameter `defaults.autoSwitchAudioDevice` allows user to disable the default behavior of switching to a newly connected audio device automatically"
+ ]
+ },
+ {
+ "version": "1.35.0",
+ "createdAt": "1696145560",
+ "fixes": [
+ "Maintain the source aspect ratio when camera device is detected as OBS (Beta)",
+ "[Webinar] Fix a race when an accepted user resend request to join stage"
+ ],
+ "new_api": [
+ "Webinar and Livestream now both use the same [Stage Management APIs](./stage)",
+ "By default Dyte's media handler does not prefer virtual devices, adds a new function to override what is a preferred device and what isn't",
+ "Allow [updating video resolution at runtime](./local-user/extras#update-media-resolution-at-runtime)",
+ "New baseURI to replace the old apiBase. With this new parameter all network connections including socket connections can now be whitelisted",
+ "Render `active` participants as Picture-in-Picture through [a simple new API](./participants/pip)",
+ "Join the meeting using `meeting.join()` and leave with the new `meeting.leave()`"
+ ],
+ "dep_api": [
+ "`meeting.joinRoom()` is deprecated in favour of the new `meeting.join()`",
+ "`meeting.leaveRoom()` is deprecated in favour of the new `meeting.leave()`",
+ "`meeting.self.requestToJoinStage()` is deprecated in favour of `meeting.stage.requestAccess()`",
+ "`meeting.self.withdrawRequestToJoinStage()` is deprecated in favour of `meeting.stage.cancelRequestAccess()`",
+ "`meeting.self.leaveStage()` is deprecated in favour of `meeting.stage.leave()`",
+ "`meeting.self.joinStage()` is deprecated in favour of `meeting.stage.join()`",
+ "`meeting.participants.acceptAllRequestToJoinStageRequests()` is deprecated in favour of `meeting.stage.grantAccess([userIds])`"
+ ]
+ },
+ {
+ "version": "1.34.0",
+ "createdAt": 1686303420,
+ "fixes": [
+ "Fixed an issue with activating / deactivating the plugin where the plugin is already in the desired state."
+ ]
+ },
+ {
+ "version": "1.16.x",
+ "createdAt": 1690502400,
+ "fixes": [
+ "Fixed an edge case where the screen share with audio was not working as expected.",
+ "Handle a race condition which used to prevent user from joining stage in a webinar setup.",
+ "Separated the private and public chat permissions.",
+ "Fixed an issue which was adding duplicate device names on the device list.",
+ "Fixed an issue which was not allowing host to kick a participant from the meeting.",
+ "`initMeeting` is now idempotent. Calling it multiple times will not cause any issues."
+ ]
+ },
+ {
+ "version": "1.15.0",
+ "createdAt": 1688083200,
+ "fixes": ["Fixed an edge case around file upload in Chat."],
+ "features": [
+ "Added add support for quoting a chat message while reply for Chat SDK",
+ "Chat SDK now shows unread count and last message on channel list.",
+ "Participants using Chat SDK will be able to edit and delete their messages."
+ ]
+ },
+ {
+ "version": "1.14.0",
+ "createdAt": 1686303420,
+ "fixes": [
+ "Added execution locks around `initClient` method to prevent accidental double initialisation method calls",
+ "Handled multiple edge cases around media capture and its retention"
+ ],
+ "features": [
+ "Added self-troubleshooting features, allow users to run tests to discover issues in their calls. More details on this in the next release"
+ ]
+ },
+ {
+ "version": "1.13.0",
+ "createdAt": 1685491200,
+ "fixes": [
+ "Optimized `mediaPermissionUpdate` event to be emitted when the user grants media permission for the first time.",
+ "Improved the correctness of `meeting.self.getCurrentDevices()` to return the recent device list when the user grants the permission for the first time.",
+ "Fixed an edge case where the `screenshareUpdate` event would be emitted twice upon stopping the screenshare.",
+ "Improved the reliability of clearing the `pinned` state from participant after they leave meeting."
+ ],
+ "new_api": [
+ "Added a new `CANCELLED` state to [meeting.self.mediaPermission](./local-user/introduction#properties) when the user cancels the screenshare selection dialog in Chromium browsers."
+ ]
+ },
+ {
+ "version": "1.25.0",
+ "createdAt": 1679433268,
+ "fixes": [
+ "Build issue for customers using Webpack v5 aliasing `process` with `false` is resolved.",
+ "Removed `Poll Messages` from [meeting.chat.messages](./reference/DyteChat#module_DyteChat+messages). Poll messages were wrongly included in the chat messages.",
+ "Optimized screenshare production for higher frame rate.",
+ "Improved correctness of [mediaScoreUpdate](./participants/events#network-quality-score) on participant."
+ ],
+ "new_api": [
+ "The `defaults` parameter in the init() function [now take recording configuration](./recording#recording-configuration), which is utilized when [starting a recording](./recording#start-a-recording). ",
+ "When calling init() the `defaults` param now take screen sharing configuration. \nConfigure the preferred screen sharing screen surface (Screen / Window / Browser Tab)."
+ ]
+ },
+ {
+ "version": "1.22.0",
+ "createdAt": 1678333268,
+ "fixes": [],
+ "features": [
+ "**Interactive Livestream Release (LL-HLS)** \n 1. Broadcast a meeting to 100,000 viewers with Low latency (3-6 seconds)\n 2. Interactive Chat and Polls \n 3. Viewers can raise hands or the host can invite Viewers to join the stage"
+ ],
+ "new_api": [
+ "A new `DyteStage` module introduced at [meeting.stage](./reference/DyteStage) to manage the stage during livestreaming. \n For more information, see [Livestreaming State Management APIs](https://docs.dyte.io/guides/livestream/state-management-apis).",
+ "A new 'DyteLiveStream' module introduced at [meeting.livestream](./Reference/DyteLivestream) to start and stop the livestreaming. \n For more information, see [Livestreaming: Properties, Functions, and Events](https://docs.dyte.io/guides/livestream/livestream-apis)."
+ ]
+ },
+ {
+ "version": "1.21.x",
+ "createdAt": 1677609000,
+ "fixes": ["Handle WeWork Solistice Camera gracefully"],
+ "features": [
+ "Initial support for our upcoming Interactive Livestream product (LL-HLS)",
+ "Webcam quality can now be controlled from the preset, allows customer to select a higher base quality in the preset editor (beta)"
+ ],
+ "new_api": [
+ "Added boolean flag `socketConnected` to `meeting.meta` that shows when the socket connection is established"
+ ]
+ },
+ {
+ "version": "1.20.0",
+ "createdAt": 1676643893,
+ "fixes": [
+ "**π¨ Critical π¨** Fixed a WebRTC video production bug that would impact *future* Chrome/Edge browser builds (version β₯ M111 - Scheduled to be released in the first week of March)",
+ "Fixed a regression introduced in `1.3.1` where defaults values passed during initialisation were not respected correctly under a certain edge case",
+ "Fixed an issue where a bluetooth device disconnection on Google Chrome did not automatically switch to an alternative device",
+ "Added workarounds for a [Safari Bug](https://bugs.webkit.org/show_bug.cgi?id=231787) where on disconnection of a bluetooth device, local video playback was paused",
+ "Fixed an issue with Safari screenshare, this improves the screenshare quality in Safari.",
+ "Minor improvement in the loading times of participant videos when joining a meeting with many participant on the Stage"
+ ],
+ "features": [
+ "Reduced the size impact of this library from from 1020KB to 880KB (from 228KB to 208KB GZipped). A 12% improvement from the previous release "
+ ]
+ },
+ {
+ "version": "1.19.1",
+ "createdAt": 1675261282,
+ "fixes": [
+ "Improve text legibility when screensharing on Chrome under poor network conditions"
+ ],
+ "features": []
+ },
+ {
+ "version": "1.19.0",
+ "createdAt": 1674714600,
+ "fixes": ["Improved permissions check for audio/video/screenshare"],
+ "features": [
+ "When Tab Sync is enabled, now a `selfTabUpdate` event is fired on the local user when the user switches a plugin"
+ ],
+ "breaking-changes": []
+ },
+ {
+ "version": "1.18.0",
+ "createdAt": 1674206130,
+ "fixes": [
+ "Improved handling of iphone Continuity on Mac OS",
+ "Fix issues in Websocket connection on Safari 12.x / 13.x / 14.x"
+ ],
+ "features": [
+ "**V2 REST API** - Supports `authToken` generated from V2 REST APIs"
+ ],
+ "breaking-changes": []
+ }
]
diff --git a/static/release-notes/ui-kit.json b/static/release-notes/ui-kit.json
index f887dd8904..dcdb34663c 100644
--- a/static/release-notes/ui-kit.json
+++ b/static/release-notes/ui-kit.json
@@ -1,199 +1,290 @@
[
- {
- "version": "1.55.0",
- "createdAt": 1691712000,
- "features": [
- "`` now takes a `targetElement` prop to toggle fullscreen on a specific element."
- ],
- "fixes": [
- "Improved the link detection to work with more links.",
- "Fixed an issue with play audio modal which was closing on esc key press. This should not have happened, we require the user to click on the close button to enable auto-play.",
- "Fixed an issue where the plugin access control was not working as expected for some plugins."
- ]
- },
- {
- "version": "1.54.0",
- "createdAt": 1690502400,
- "features": [
- "The 'more-items' slot is added to ``. You can use this slot to add action items to the participant."
- ],
- "fixes": [
- "Emoji picker now has a close button when the user wants to close the emoji picker.",
- "Fixed an issue with pasting texts to chat in Safari browsers.",
- "Fixed an issue with long device names in the settings modal."
- ]
- },
- {
- "version": "1.53.1",
- "createdAt": 1689638400,
- "fixes": [
- "Fixed an edge case where the `Mute all` button was not visible.",
- "Optimized loading the first page of chat messages."
- ]
- },
- {
- "version": "1.53.0",
- "createdAt": 1689552000,
- "fixes": [
- "Optimized the avatar size in chat messages.",
- "Fixed an edge case where the file name in the upload preview was overflowing the UI.",
- "Handled an edge case in the audio playback for livestreaming meetings.",
- "Optimized the spacing between the chat messages.",
- "Better handling of event listeners in `` component.",
- "Optimized polls styling.",
- "Fixed an issue with font color in `` component."
- ],
- "features": [
- "Added a close button for emoji picker in `` component.",
- "New component that can be used to render the sidebar in your app."
- ]
- },
- {
- "version": "1.52.2",
- "createdAt": 1688688000,
- "fixes": [
- "Fixed an edge case where the view only mode for plugins was not working."
- ]
- },
- {
- "version": "1.52.1",
- "createdAt": 1688515200,
- "fixes": [
- "Fixed an issue where the links in chat messages were opening in the same tab.",
- "Modified the controlbar items order to be more accessible.",
- "Fixed an issue where the unread counts were flickering on the selected channel."
- ]
- },
- {
- "version": "1.52.0",
- "createdAt": 1688083200,
- "fixes": [
- "Fixed an edge case where the chat messages were overflowing the chat ui.",
- "Improved the UI for chat composer.",
- "Fixed an issue with chat composer component, where the attachment remove button placement was not correct in Safari browser.",
- "Added new strings for i18n"
- ],
- "features": [
- "dyte-channel-details, dyte-channel-header, dyte-channel-manager and dyte-channel-selector-ui components for Chat SDK"
- ]
- },
- {
- "version": "1.51.1",
- "createdAt": 1686303420,
- "fixes": [
- "In order to improve the organization of multiple buttons within the bottom control bar, some of the buttons are moved to the new component on desktop.",
- "Fixed list of devices not being updated when a new device was added while `` and `` were already rendered"
- ]
- },
- {
- "version": "1.51.0",
- "createdAt": 1685491200,
- "fixes": [
- "`` component now can be loaded outside of the .",
- "`` now stores the draft message in local storage and restores it on page refresh.",
- "Fixed an edge case where the state of the pinned participant was not getting updated when they left the meeting."
- ],
- "features": [
- "β¨ Added support for our upcoming AI features. Keep an eye out for more updates!"
- ]
- },
- {
- "version": "1.50.0",
- "createdAt": 1683849600,
- "fixes": [
- "Removed the extra space that was being taken by `` when there is only one tab.",
- "Fixed an edge case where the `` component was mysteriously disappearing.",
- "Fixed autoplay issues with ``"
- ],
- "features": [
- "Added observability and quality metrics collection for ``"
- ]
- },
- {
- "version": "1.49.0",
- "createdAt": 1682985600,
- "fixes": [
- "Optimized the performance of ``",
- "Fixed a style issue with `` on Safari browser.",
- "Optimized a few more components for [Breakout rooms](/guides/breakoutroom/introduction-breakout-rooms)."
- ],
- "features": [
- "A new `dialogClose` not gets fired when you close the dialog.",
- "Now you can pass the i18n prop `t` to ``"
- ]
- },
- {
- "version": "1.48.0",
- "createdAt": 1682035200,
- "fixes": [
- "Fixed an issue with angular builds.",
- "Fixed an edge case where the host controls were not visible for a combination of `canDisableParticipantAudio` and `canDisableParticipantVideo` permissions.",
- "Fixed an issue with text `line-height` in `` when the body/html font size is defined in percentage.",
- "Improved the spacing around sidebar heading and `` component."
- ],
- "features": [
- "Added support for our upcoming layout configurations. Keep an eye out for more updates!"
- ]
- },
- {
- "version": "1.46.0",
- "createdAt": 1679409000,
- "fixes": [
- "The **stop screenshare** feature was not working when multiple users were sharing their screens simultaneously."
- ],
- "features": [
- "Chat in a livestreaming meeting is now paginated to handle hundreds of thousands of messages."
- ]
- },
- {
- "version": "1.45.0",
- "createdAt": 1678209000,
- "features": [
- "**Interactive Livestream Release (LL-HLS)** \n 1. Broadcast a meeting to up to 100,000 viewers with low latency of just 3 to 6 seconds.\n 2. Interactive chat and polls. \n 3. Viewers can raise hands to join the stage or the host can invite viewers to join the stage. \n For more information, see [ILS Overview](https://docs.dyte.io/guides/livestream/livestream-overview) and [Getting Started with ILS](https://docs.dyte.io/guides/livestream/getting-started-with-livestreaming)."
- ],
- "new_api": [
- "New ``, `` and `` components."
- ]
- },
- {
- "version": "1.44.2",
- "createdAt": 1677609000,
- "fixes": [
- "Fixed an edge case in file name and size detection in chat.",
- "Clap file names in chat to single line. Now long files names are truncated with ellipsis.",
- "Optimized icons to have consistent colors."
- ],
- "features": []
- },
- {
- "version": "1.44.0",
- "createdAt": 1677004200,
- "fixes": [
- "Performance improvement for `` when the window is in background.",
- "Fixed an issue with `` in Safari, where the component was overlapping with ``."
- ],
- "features": [
- "`` now supports `disableEmojiPicker` property to disable emoji picker."
- ]
- },
- {
- "version": "1.43.1",
- "createdAt": 1677473766,
- "fixes": [
- "Issue with disabled state in the `dyte-control` bar-button has been resolved.",
- "`dyte-avatar` now handles multibyte characters better and removes special characters from the name.",
- "The dimensions of avatars in polls have been fixed.",
- "The alignment of tab bar names has been fixed for cases where the plugin name is short."
- ],
- "features": ["`dyte-grid` now supports background color."]
- },
- {
- "version": "1.41.1",
- "createdAt": 1674206130,
- "fixes": [
- "Double render of dyte-header and dyte-controlbar elements",
- "Missing export for a few Angular UI Kit Components"
- ],
- "breaking-changes": []
- }
+ {
+ "version": "1.60.2",
+ "createdAt": 1703030400,
+ "fixes": [
+ "Fixed an issue where sidebar participant state was not in sync with the grid view",
+ "Optimized event handling for stage"
+ ]
+ },
+ {
+ "version": "1.60.1",
+ "createdAt": 1702598400,
+ "fixes": ["Improved state handling for PiP view"]
+ },
+ {
+ "version": "1.60.0",
+ "createdAt": 1702252800,
+ "features": [
+ " for toggling [captions](https://docs.dyte.io/guides/capabilities/audio/transcriptions) in the meeting"
+ ],
+ "fixes": [
+ "Fixed text in chat placeholder",
+ "Handle setSinkId error while playing audio",
+ "Fixed the inconsistent state of the grid view when multiple people leave the meeting",
+ "Fixed the inconsistent state of the grid pagination when multiple people leave the meeting at once.",
+ "Fixed an issue where the was emitting an additional dyteStateUpdate event when the grid view was already in the same state."
+ ]
+ },
+ {
+ "version": "1.59.0",
+ "createdAt": 1698710400,
+ "features": [
+ "New and improved for chat SDK"
+ ]
+ },
+ {
+ "version": "1.58.0",
+ "createdAt": 1698278400,
+ "features": [
+ " now takes `start` and `end` slots to render custom elements before and after the sidebar participants list.",
+ " now takes slot to render custom action elements for the participant."
+ ]
+ },
+ {
+ "version": "1.57.4",
+ "createdAt": 1697760000,
+ "fixes": [
+ "Optimize event binding to lower memory usage",
+ "Fixed an issue with `` component where the tile was not showing the correct state when the meeting object was not passed to the component"
+ ]
+ },
+ {
+ "version": "1.57.3",
+ "createdAt": 1697414400,
+ "fixes": [
+ "Allow customizing `` component from config.",
+ "Fix PiP view to show initials when video is off"
+ ]
+ },
+ {
+ "version": "1.57.2",
+ "createdAt": 1696982400,
+ "fixes": [
+ "Fix UI state for offline grid for livestream viewers",
+ "Handle autoplay errors for livestream player"
+ ]
+ },
+ {
+ "version": "1.57.1",
+ "createdAt": 1696464000,
+ "fixes": ["Fix tooltip for in progress operations in the control bar"]
+ },
+ {
+ "version": "1.57.0",
+ "createdAt": 1696377600,
+ "features": ["Support for plugins for audio rooms"]
+ },
+ {
+ "version": "1.56.0",
+ "createdAt": 1695859200,
+ "features": [
+ "Added support for [UI kit Addons](https://dyte.io/blog/ui-kit-add-ons/)",
+ "New audio visualizer for audio room grid view",
+ "Grid view now shows appropriate state when participant is offline or no one is on stage"
+ ],
+ "fixes": [
+ "Improved link detection in chat messages",
+ "Improved rich text support in chat messages",
+ "Sidebar becomes floating when the screen size is small",
+ "Improved Polls UI"
+ ]
+ },
+ {
+ "version": "1.55.0",
+ "createdAt": 1691712000,
+ "features": [
+ "`` now takes a `targetElement` prop to toggle fullscreen on a specific element."
+ ],
+ "fixes": [
+ "Improved the link detection to work with more links.",
+ "Fixed an issue with play audio modal which was closing on esc key press. This should not have happened, we require the user to click on the close button to enable auto-play.",
+ "Fixed an issue where the plugin access control was not working as expected for some plugins."
+ ]
+ },
+ {
+ "version": "1.54.0",
+ "createdAt": 1690502400,
+ "features": [
+ "The 'more-items' slot is added to ``. You can use this slot to add action items to the participant."
+ ],
+ "fixes": [
+ "Emoji picker now has a close button when the user wants to close the emoji picker.",
+ "Fixed an issue with pasting texts to chat in Safari browsers.",
+ "Fixed an issue with long device names in the settings modal."
+ ]
+ },
+ {
+ "version": "1.53.1",
+ "createdAt": 1689638400,
+ "fixes": [
+ "Fixed an edge case where the `Mute all` button was not visible.",
+ "Optimized loading the first page of chat messages."
+ ]
+ },
+ {
+ "version": "1.53.0",
+ "createdAt": 1689552000,
+ "fixes": [
+ "Optimized the avatar size in chat messages.",
+ "Fixed an edge case where the file name in the upload preview was overflowing the UI.",
+ "Handled an edge case in the audio playback for livestreaming meetings.",
+ "Optimized the spacing between the chat messages.",
+ "Better handling of event listeners in `` component.",
+ "Optimized polls styling.",
+ "Fixed an issue with font color in `` component."
+ ],
+ "features": [
+ "Added a close button for emoji picker in `` component.",
+ "New component that can be used to render the sidebar in your app."
+ ]
+ },
+ {
+ "version": "1.52.2",
+ "createdAt": 1688688000,
+ "fixes": [
+ "Fixed an edge case where the view only mode for plugins was not working."
+ ]
+ },
+ {
+ "version": "1.52.1",
+ "createdAt": 1688515200,
+ "fixes": [
+ "Fixed an issue where the links in chat messages were opening in the same tab.",
+ "Modified the controlbar items order to be more accessible.",
+ "Fixed an issue where the unread counts were flickering on the selected channel."
+ ]
+ },
+ {
+ "version": "1.52.0",
+ "createdAt": 1688083200,
+ "fixes": [
+ "Fixed an edge case where the chat messages were overflowing the chat ui.",
+ "Improved the UI for chat composer.",
+ "Fixed an issue with chat composer component, where the attachment remove button placement was not correct in Safari browser.",
+ "Added new strings for i18n"
+ ],
+ "features": [
+ "dyte-channel-details, dyte-channel-header, dyte-channel-manager and dyte-channel-selector-ui components for Chat SDK"
+ ]
+ },
+ {
+ "version": "1.51.1",
+ "createdAt": 1686303420,
+ "fixes": [
+ "In order to improve the organization of multiple buttons within the bottom control bar, some of the buttons are moved to the new component on desktop.",
+ "Fixed list of devices not being updated when a new device was added while `` and `` were already rendered"
+ ]
+ },
+ {
+ "version": "1.51.0",
+ "createdAt": 1685491200,
+ "fixes": [
+ "`` component now can be loaded outside of the .",
+ "`` now stores the draft message in local storage and restores it on page refresh.",
+ "Fixed an edge case where the state of the pinned participant was not getting updated when they left the meeting."
+ ],
+ "features": [
+ "β¨ Added support for our upcoming AI features. Keep an eye out for more updates!"
+ ]
+ },
+ {
+ "version": "1.50.0",
+ "createdAt": 1683849600,
+ "fixes": [
+ "Removed the extra space that was being taken by `` when there is only one tab.",
+ "Fixed an edge case where the `` component was mysteriously disappearing.",
+ "Fixed autoplay issues with ``"
+ ],
+ "features": [
+ "Added observability and quality metrics collection for ``"
+ ]
+ },
+ {
+ "version": "1.49.0",
+ "createdAt": 1682985600,
+ "fixes": [
+ "Optimized the performance of ``",
+ "Fixed a style issue with `` on Safari browser.",
+ "Optimized a few more components for [Breakout rooms](/guides/breakoutroom/introduction-breakout-rooms)."
+ ],
+ "features": [
+ "A new `dialogClose` not gets fired when you close the dialog.",
+ "Now you can pass the i18n prop `t` to ``"
+ ]
+ },
+ {
+ "version": "1.48.0",
+ "createdAt": 1682035200,
+ "fixes": [
+ "Fixed an issue with angular builds.",
+ "Fixed an edge case where the host controls were not visible for a combination of `canDisableParticipantAudio` and `canDisableParticipantVideo` permissions.",
+ "Fixed an issue with text `line-height` in `` when the body/html font size is defined in percentage.",
+ "Improved the spacing around sidebar heading and `` component."
+ ],
+ "features": [
+ "Added support for our upcoming layout configurations. Keep an eye out for more updates!"
+ ]
+ },
+ {
+ "version": "1.46.0",
+ "createdAt": 1679409000,
+ "fixes": [
+ "The **stop screenshare** feature was not working when multiple users were sharing their screens simultaneously."
+ ],
+ "features": [
+ "Chat in a livestreaming meeting is now paginated to handle hundreds of thousands of messages."
+ ]
+ },
+ {
+ "version": "1.45.0",
+ "createdAt": 1678209000,
+ "features": [
+ "**Interactive Livestream Release (LL-HLS)** \n 1. Broadcast a meeting to up to 100,000 viewers with low latency of just 3 to 6 seconds.\n 2. Interactive chat and polls. \n 3. Viewers can raise hands to join the stage or the host can invite viewers to join the stage. \n For more information, see [ILS Overview](https://docs.dyte.io/guides/livestream/livestream-overview) and [Getting Started with ILS](https://docs.dyte.io/guides/livestream/getting-started-with-livestreaming)."
+ ],
+ "new_api": [
+ "New ``, `` and `` components."
+ ]
+ },
+ {
+ "version": "1.44.2",
+ "createdAt": 1677609000,
+ "fixes": [
+ "Fixed an edge case in file name and size detection in chat.",
+ "Clap file names in chat to single line. Now long files names are truncated with ellipsis.",
+ "Optimized icons to have consistent colors."
+ ],
+ "features": []
+ },
+ {
+ "version": "1.44.0",
+ "createdAt": 1677004200,
+ "fixes": [
+ "Performance improvement for `` when the window is in background.",
+ "Fixed an issue with `` in Safari, where the component was overlapping with ``."
+ ],
+ "features": [
+ "`` now supports `disableEmojiPicker` property to disable emoji picker."
+ ]
+ },
+ {
+ "version": "1.43.1",
+ "createdAt": 1677473766,
+ "fixes": [
+ "Issue with disabled state in the `dyte-control` bar-button has been resolved.",
+ "`dyte-avatar` now handles multibyte characters better and removes special characters from the name.",
+ "The dimensions of avatars in polls have been fixed.",
+ "The alignment of tab bar names has been fixed for cases where the plugin name is short."
+ ],
+ "features": ["`dyte-grid` now supports background color."]
+ },
+ {
+ "version": "1.41.1",
+ "createdAt": 1674206130,
+ "fixes": [
+ "Double render of dyte-header and dyte-controlbar elements",
+ "Missing export for a few Angular UI Kit Components"
+ ],
+ "breaking-changes": []
+ }
]
diff --git a/static/release-notes/web-core.json b/static/release-notes/web-core.json
index 283229dcb3..6a4b061aec 100644
--- a/static/release-notes/web-core.json
+++ b/static/release-notes/web-core.json
@@ -1,218 +1,241 @@
[
- {
- "version": "1.20.0",
- "createdAt": "1698351924",
- "fixes": [
- "Firefox 110+ [simulcast](https://en.wikipedia.org/wiki/Simulcast) optimizations"
- ],
- "new_api": [
- "New [DyteSelfMedia](./reference/DyteSelfMedia) class to initialize media before from DyteClient.init"
- ]
- },
- {
- "version": "1.19.0",
- "createdAt": "1697840724",
- "new_api": [
- "New `DyteClient.init` parameter `defaults.autoSwitchAudioDevice` allows user to disable the default behavior of switching to a newly connected audio device automatically"
- ]
- },
- {
- "version": "1.18.0-2",
- "createdAt": "1696145560",
- "fixes": [
- "Maintain the source aspect ratio when camera device is detected as OBS (Beta)",
- "[Webinar] Fix a race when an accepted user resend request to join stage"
- ],
- "new_api": [
- "Webinar and Livestream now both use the same [Stage Management APIs](./stage)",
- "By default Dyte's media handler does not prefer virtual devices, adds a new function to override what is a preferred device and what isn't",
- "Allow [updating video resolution at runtime](./local-user/extras#update-media-resolution-at-runtime)",
- "New baseURI to replace the old apiBase. With this new parameter all network connections including socket connections can now be whitelisted",
- "Render `active` participants as Picture-in-Picture through [a simple new API](./participants/pip)",
- "Join the meeting using `meeting.join()` and leave with the new `meeting.leave()`"
- ],
- "dep_api": [
- "`meeting.joinRoom()` is deprecated in favour of the new `meeting.join()`",
- "`meeting.leaveRoom()` is deprecated in favour of the new `meeting.leave()`",
- "`meeting.self.requestToJoinStage()` is deprecated in favour of `meeting.stage.requestAccess()`",
- "`meeting.self.withdrawRequestToJoinStage()` is deprecated in favour of `meeting.stage.cancelRequestAccess()`",
- "`meeting.self.leaveStage()` is deprecated in favour of `meeting.stage.leave()`",
- "`meeting.self.joinStage()` is deprecated in favour of `meeting.stage.join()`",
- "`meeting.participants.acceptAllRequestToJoinStageRequests()` is deprecated in favour of `meeting.stage.grantAccess([userIds])`"
- ]
- },
- {
- "version": "1.17.0",
- "createdAt": "1691712000",
- "fixes": [
- "Fixed an issue with activating / deactivating the plugin where the plugin is already in the desired state."
- ]
- },
- {
- "version": "1.16.x",
- "createdAt": 1690502400,
- "fixes": [
- "Fixed an edge case where the screen share with audio was not working as expected.",
- "Handle a race condition which used to prevent user from joining stage in a webinar setup.",
- "Separated the private and public chat permissions.",
- "Fixed an issue which was adding duplicate device names on the device list.",
- "Fixed an issue which was not allowing host to kick a participant from the meeting.",
- "DyteClient.init() is now idempotent. Calling init() multiple times will not cause any issues."
- ]
- },
- {
- "version": "1.15.0",
- "createdAt": 1688083200,
- "fixes": ["Fixed an edge case around file upload in Chat."],
- "features": [
- "Added add support for quoting a chat message while reply for Chat SDK",
- "Chat SDK now shows unread count and last message on channel list.",
- "Participants using Chat SDK will be able to edit and delete their messages."
- ]
- },
- {
- "version": "1.14.0",
- "createdAt": 1686303420,
- "fixes": [
- "Added execution locks around `DyteClient.init` method to prevent accidental double initialisation method calls",
- "Handle multiple edge cases around media capture and its retention"
- ],
- "features": [
- "Added self-troubleshooting features, allow users to run tests to discover issues in their calls. More details on this in the next release"
- ]
- },
- {
- "version": "1.13.0",
- "createdAt": 1685491200,
- "fixes": [
- "Optimized `mediaPermissionUpdate` event to be emitted when the user grants media permission for the first time.",
- "Improved the correctness of `meeting.self.getCurrentDevices()` to return the recent device list when the user grants the permission for the first time.",
- "Fixed an edge case where the `screenshareUpdate` event would be emitted twice upon stopping the screenshare.",
- "Improved the reliability of clearing the `pinned` state from participant after they leave meeting."
- ],
- "new_api": [
- "Added a new `CANCELLED` state to [meeting.self.mediaPermission](./local-user/introduction#properties) when the user cancels the screenshare selection dialog in Chromium browsers."
- ]
- },
- {
- "version": "1.12.x",
- "createdAt": 1682985600,
- "perf": [
- "β‘ Optimized the performance of an API to save ~400ms on meeting join time.",
- "β‘ Optimized the SDK to reduce the bundle size by 3%."
- ],
- "fixes": [
- "**π¨ Critical π¨** Fixed an issue with Safari 16.4 that was breaking video calls.",
- "Emit `peerRequestToJoinStage` and `stageLeft` for _self_ participant when the user joins or leaves the stage."
- ],
- "features": [
- "Added support for request retry with alternative network path when the primary network path fails. This improves the reliability of the meeting experience in case of network issues."
- ]
- },
- {
- "version": "1.11.x",
- "createdAt": 1682035200,
- "perf": [
- "β‘ Optimized the performance to get 2x faster meeting join time."
- ],
- "fixes": [
- "Emit `peerRequestToJoinStage` and `stageLeft` for _self_ participant when the user joins or leaves the stage."
- ],
- "new_api": [
- "[meeting.self.roomState](./local-user/introduction#properties) now contains the current room state of the participant."
- ]
- },
- {
- "version": "1.10.x",
- "createdAt": 1680048000,
- "fixes": [
- "Improved the reliability of `mediaPermissionUpdate` events.",
- "Observability improvements to help us debug issues faster."
- ],
- "features": [
- "Emit `mediaPermissionUpdate` events when media permission goes from errored to granted."
- ]
- },
- {
- "version": "1.9.0",
- "createdAt": 1679433268,
- "fixes": [
- "Build issue for customers using Webpack v5 aliasing `process` with `false` is resolved.",
- "Removed `Poll Messages` from [meeting.chat.messages](./reference/DyteChat#module_DyteChat+messages). Poll messages were wrongly included in the chat messages.",
- "Optimized screenshare production for higher frame rate.",
- "Improved correctness of [mediaScoreUpdate](./participants/events#network-quality-score) on participant."
- ],
- "new_api": [
- "The `defaults` parameter in the init() function [now take recording configuration](./recording#recording-configuration), which is utilized when [starting a recording](./recording#start-a-recording). ",
- "When calling init() the `defaults` param now take screen sharing configuration. \nConfigure the preferred screen sharing screen surface (Screen / Window / Browser Tab)."
- ]
- },
- {
- "version": "1.6.0",
- "createdAt": 1678333268,
- "fixes": [],
- "features": [
- "**Interactive Livestream Release (LL-HLS)** \n 1. Broadcast a meeting to up to 100,000 viewers with low latency of just 3 to 6 seconds.\n 2. Interactive chat and polls. \n 3. Viewers can raise hands to join the stage or the host can invite viewers to join the stage. \n For more information, see [ILS Overview](https://docs.dyte.io/guides/livestream/livestream-overview) and [Getting Started with ILS](https://docs.dyte.io/guides/livestream/getting-started-with-livestreaming)."
- ],
- "new_api": [
- "A new `DyteStage` module introduced at [meeting.stage](./reference/DyteStage) to manage the stage during livestreaming. \n For more information, see [Livestreaming State Management APIs](https://docs.dyte.io/guides/livestream/state-management-apis).",
- "A new 'DyteLiveStream' module introduced at [meeting.livestream](./Reference/DyteLivestream) to start and stop the livestreaming. \n For more information, see [Livestreaming: Properties, Functions, and Events](https://docs.dyte.io/guides/livestream/livestream-apis)."
- ]
- },
- {
- "version": "1.5.x",
- "createdAt": 1677609000,
- "fixes": ["Handle WeWork Solistice Camera gracefully"],
- "features": [
- "Initial support for our upcoming Interactive Livestream product (LL-HLS)",
- "Webcam quality can now be controlled from the preset, allows customer to select a higher base quality in the preset editor (beta)"
- ],
- "new_api": [
- "Added boolean flag `socketConnected` to `meeting.meta` that shows when the socket connection is established"
- ]
- },
- {
- "version": "1.4.0",
- "createdAt": 1676643893,
- "fixes": [
- "**π¨ Critical π¨** Fixed a WebRTC video production bug that would impact *future* Chrome/Edge browser builds (version β₯ M111 - Scheduled to be released in the first week of March)",
- "Fixed a regression introduced in `1.3.1` where defaults values passed during initialisation were not respected correctly under a certain edge case",
- "Fixed an issue where a bluetooth device disconnection on Google Chrome did not automatically switch to an alternative device",
- "Added workarounds for a [Safari Bug](https://bugs.webkit.org/show_bug.cgi?id=231787) where on disconnection of a bluetooth device, local video playback was paused",
- "Fixed an issue with Safari screenshare, this improves the screenshare quality in Safari.",
- "Minor improvement in the loading times of participant videos when joining a meeting with many participant on the Stage"
- ],
- "features": [
- "Reduced the size impact of this library from from 1020KB to 880KB (from 228KB to 208KB GZipped). A 12% improvement from the previous release "
- ]
- },
- {
- "version": "1.3.1",
- "createdAt": 1675261282,
- "fixes": [
- "Improve text legibility when screensharing on Chrome under poor network conditions"
- ],
- "features": []
- },
- {
- "version": "1.2.0",
- "createdAt": 1674714600,
- "fixes": ["Improved permissions check for audio/video/screenshare"],
- "features": [
- "When Tab Sync is enabled, now a `selfTabUpdate` event is fired on the local user when the user switches a plugin"
- ],
- "breaking-changes": []
- },
- {
- "version": "1.1.0",
- "createdAt": 1674206130,
- "fixes": [
- "Improved handling of iphone Continuity on Mac OS",
- "Fix issues in Websocket connection on Safari 12.x / 13.x / 14.x"
- ],
- "features": [
- "**V2 REST API** - Supports `authToken` generated from V2 REST APIs"
- ],
- "breaking-changes": []
- }
+ {
+ "version": "1.21.2",
+ "createdAt": "1703030400",
+ "fixes": [
+ "Fixed a corner case on stage management.",
+ "Added type definitions for some events."
+ ]
+ },
+ {
+ "version": "1.21.1",
+ "createdAt": "1702598400",
+ "fixes": [
+ "Fixed an issue where the video would not be produced correctly in Firefox browser.",
+ "Improved webinars and livestreams reliability by handling edge cases around stage management."
+ ]
+ },
+ {
+ "version": "1.21.0",
+ "createdAt": "1702252800",
+ "new_api": [
+ "Recordings now supports Pause and resume functionality with the new [pauseRecording](./recording#pause-recording) and [resumeRecording](./recording#resume-recording) APIs"
+ ]
+ },
+ {
+ "version": "1.20.0",
+ "createdAt": "1698351924",
+ "fixes": [
+ "Firefox 110+ [simulcast](https://en.wikipedia.org/wiki/Simulcast) optimizations"
+ ],
+ "new_api": [
+ "New [DyteSelfMedia](./reference/DyteSelfMedia) class to initialize media before from DyteClient.init"
+ ]
+ },
+ {
+ "version": "1.19.0",
+ "createdAt": "1697840724",
+ "new_api": [
+ "New `DyteClient.init` parameter `defaults.autoSwitchAudioDevice` allows user to disable the default behavior of switching to a newly connected audio device automatically"
+ ]
+ },
+ {
+ "version": "1.18.0-2",
+ "createdAt": "1696145560",
+ "fixes": [
+ "Maintain the source aspect ratio when camera device is detected as OBS (Beta)",
+ "[Webinar] Fix a race when an accepted user resend request to join stage"
+ ],
+ "new_api": [
+ "Webinar and Livestream now both use the same [Stage Management APIs](./stage)",
+ "By default Dyte's media handler does not prefer virtual devices, adds a new function to override what is a preferred device and what isn't",
+ "Allow [updating video resolution at runtime](./local-user/extras#update-media-resolution-at-runtime)",
+ "New baseURI to replace the old apiBase. With this new parameter all network connections including socket connections can now be whitelisted",
+ "Render `active` participants as Picture-in-Picture through [a simple new API](./participants/pip)",
+ "Join the meeting using `meeting.join()` and leave with the new `meeting.leave()`"
+ ],
+ "dep_api": [
+ "`meeting.joinRoom()` is deprecated in favour of the new `meeting.join()`",
+ "`meeting.leaveRoom()` is deprecated in favour of the new `meeting.leave()`",
+ "`meeting.self.requestToJoinStage()` is deprecated in favour of `meeting.stage.requestAccess()`",
+ "`meeting.self.withdrawRequestToJoinStage()` is deprecated in favour of `meeting.stage.cancelRequestAccess()`",
+ "`meeting.self.leaveStage()` is deprecated in favour of `meeting.stage.leave()`",
+ "`meeting.self.joinStage()` is deprecated in favour of `meeting.stage.join()`",
+ "`meeting.participants.acceptAllRequestToJoinStageRequests()` is deprecated in favour of `meeting.stage.grantAccess([userIds])`"
+ ]
+ },
+ {
+ "version": "1.17.0",
+ "createdAt": "1691712000",
+ "fixes": [
+ "Fixed an issue with activating / deactivating the plugin where the plugin is already in the desired state."
+ ]
+ },
+ {
+ "version": "1.16.x",
+ "createdAt": 1690502400,
+ "fixes": [
+ "Fixed an edge case where the screen share with audio was not working as expected.",
+ "Handle a race condition which used to prevent user from joining stage in a webinar setup.",
+ "Separated the private and public chat permissions.",
+ "Fixed an issue which was adding duplicate device names on the device list.",
+ "Fixed an issue which was not allowing host to kick a participant from the meeting.",
+ "DyteClient.init() is now idempotent. Calling init() multiple times will not cause any issues."
+ ]
+ },
+ {
+ "version": "1.15.0",
+ "createdAt": 1688083200,
+ "fixes": ["Fixed an edge case around file upload in Chat."],
+ "features": [
+ "Added add support for quoting a chat message while reply for Chat SDK",
+ "Chat SDK now shows unread count and last message on channel list.",
+ "Participants using Chat SDK will be able to edit and delete their messages."
+ ]
+ },
+ {
+ "version": "1.14.0",
+ "createdAt": 1686303420,
+ "fixes": [
+ "Added execution locks around `DyteClient.init` method to prevent accidental double initialisation method calls",
+ "Handle multiple edge cases around media capture and its retention"
+ ],
+ "features": [
+ "Added self-troubleshooting features, allow users to run tests to discover issues in their calls. More details on this in the next release"
+ ]
+ },
+ {
+ "version": "1.13.0",
+ "createdAt": 1685491200,
+ "fixes": [
+ "Optimized `mediaPermissionUpdate` event to be emitted when the user grants media permission for the first time.",
+ "Improved the correctness of `meeting.self.getCurrentDevices()` to return the recent device list when the user grants the permission for the first time.",
+ "Fixed an edge case where the `screenshareUpdate` event would be emitted twice upon stopping the screenshare.",
+ "Improved the reliability of clearing the `pinned` state from participant after they leave meeting."
+ ],
+ "new_api": [
+ "Added a new `CANCELLED` state to [meeting.self.mediaPermission](./local-user/introduction#properties) when the user cancels the screenshare selection dialog in Chromium browsers."
+ ]
+ },
+ {
+ "version": "1.12.x",
+ "createdAt": 1682985600,
+ "perf": [
+ "β‘ Optimized the performance of an API to save ~400ms on meeting join time.",
+ "β‘ Optimized the SDK to reduce the bundle size by 3%."
+ ],
+ "fixes": [
+ "**π¨ Critical π¨** Fixed an issue with Safari 16.4 that was breaking video calls.",
+ "Emit `peerRequestToJoinStage` and `stageLeft` for _self_ participant when the user joins or leaves the stage."
+ ],
+ "features": [
+ "Added support for request retry with alternative network path when the primary network path fails. This improves the reliability of the meeting experience in case of network issues."
+ ]
+ },
+ {
+ "version": "1.11.x",
+ "createdAt": 1682035200,
+ "perf": [
+ "β‘ Optimized the performance to get 2x faster meeting join time."
+ ],
+ "fixes": [
+ "Emit `peerRequestToJoinStage` and `stageLeft` for _self_ participant when the user joins or leaves the stage."
+ ],
+ "new_api": [
+ "[meeting.self.roomState](./local-user/introduction#properties) now contains the current room state of the participant."
+ ]
+ },
+ {
+ "version": "1.10.x",
+ "createdAt": 1680048000,
+ "fixes": [
+ "Improved the reliability of `mediaPermissionUpdate` events.",
+ "Observability improvements to help us debug issues faster."
+ ],
+ "features": [
+ "Emit `mediaPermissionUpdate` events when media permission goes from errored to granted."
+ ]
+ },
+ {
+ "version": "1.9.0",
+ "createdAt": 1679433268,
+ "fixes": [
+ "Build issue for customers using Webpack v5 aliasing `process` with `false` is resolved.",
+ "Removed `Poll Messages` from [meeting.chat.messages](./reference/DyteChat#module_DyteChat+messages). Poll messages were wrongly included in the chat messages.",
+ "Optimized screenshare production for higher frame rate.",
+ "Improved correctness of [mediaScoreUpdate](./participants/events#network-quality-score) on participant."
+ ],
+ "new_api": [
+ "The `defaults` parameter in the init() function [now take recording configuration](./recording#recording-configuration), which is utilized when [starting a recording](./recording#start-a-recording). ",
+ "When calling init() the `defaults` param now take screen sharing configuration. \nConfigure the preferred screen sharing screen surface (Screen / Window / Browser Tab)."
+ ]
+ },
+ {
+ "version": "1.6.0",
+ "createdAt": 1678333268,
+ "fixes": [],
+ "features": [
+ "**Interactive Livestream Release (LL-HLS)** \n 1. Broadcast a meeting to up to 100,000 viewers with low latency of just 3 to 6 seconds.\n 2. Interactive chat and polls. \n 3. Viewers can raise hands to join the stage or the host can invite viewers to join the stage. \n For more information, see [ILS Overview](https://docs.dyte.io/guides/livestream/livestream-overview) and [Getting Started with ILS](https://docs.dyte.io/guides/livestream/getting-started-with-livestreaming)."
+ ],
+ "new_api": [
+ "A new `DyteStage` module introduced at [meeting.stage](./reference/DyteStage) to manage the stage during livestreaming. \n For more information, see [Livestreaming State Management APIs](https://docs.dyte.io/guides/livestream/state-management-apis).",
+ "A new 'DyteLiveStream' module introduced at [meeting.livestream](./Reference/DyteLivestream) to start and stop the livestreaming. \n For more information, see [Livestreaming: Properties, Functions, and Events](https://docs.dyte.io/guides/livestream/livestream-apis)."
+ ]
+ },
+ {
+ "version": "1.5.x",
+ "createdAt": 1677609000,
+ "fixes": ["Handle WeWork Solistice Camera gracefully"],
+ "features": [
+ "Initial support for our upcoming Interactive Livestream product (LL-HLS)",
+ "Webcam quality can now be controlled from the preset, allows customer to select a higher base quality in the preset editor (beta)"
+ ],
+ "new_api": [
+ "Added boolean flag `socketConnected` to `meeting.meta` that shows when the socket connection is established"
+ ]
+ },
+ {
+ "version": "1.4.0",
+ "createdAt": 1676643893,
+ "fixes": [
+ "**π¨ Critical π¨** Fixed a WebRTC video production bug that would impact *future* Chrome/Edge browser builds (version β₯ M111 - Scheduled to be released in the first week of March)",
+ "Fixed a regression introduced in `1.3.1` where defaults values passed during initialisation were not respected correctly under a certain edge case",
+ "Fixed an issue where a bluetooth device disconnection on Google Chrome did not automatically switch to an alternative device",
+ "Added workarounds for a [Safari Bug](https://bugs.webkit.org/show_bug.cgi?id=231787) where on disconnection of a bluetooth device, local video playback was paused",
+ "Fixed an issue with Safari screenshare, this improves the screenshare quality in Safari.",
+ "Minor improvement in the loading times of participant videos when joining a meeting with many participant on the Stage"
+ ],
+ "features": [
+ "Reduced the size impact of this library from from 1020KB to 880KB (from 228KB to 208KB GZipped). A 12% improvement from the previous release "
+ ]
+ },
+ {
+ "version": "1.3.1",
+ "createdAt": 1675261282,
+ "fixes": [
+ "Improve text legibility when screensharing on Chrome under poor network conditions"
+ ],
+ "features": []
+ },
+ {
+ "version": "1.2.0",
+ "createdAt": 1674714600,
+ "fixes": ["Improved permissions check for audio/video/screenshare"],
+ "features": [
+ "When Tab Sync is enabled, now a `selfTabUpdate` event is fired on the local user when the user switches a plugin"
+ ],
+ "breaking-changes": []
+ },
+ {
+ "version": "1.1.0",
+ "createdAt": 1674206130,
+ "fixes": [
+ "Improved handling of iphone Continuity on Mac OS",
+ "Fix issues in Websocket connection on Safari 12.x / 13.x / 14.x"
+ ],
+ "features": [
+ "**V2 REST API** - Supports `authToken` generated from V2 REST APIs"
+ ],
+ "breaking-changes": []
+ }
]