Releases: daily-co/daily-js
0.85.0
Bugfixes
- Fixed an issue where the initial send settings were not being respected for cam video.
Other improvements
- Made it so you no longer have to specify the broad
'unsafe-eval'in your Content Security Policy (CSP) when using video background processing (virtual backgrounds or background blur). You can specify the narrower'wasm-unsafe-eval'instead (assuming you've also specifiedavoidEval: truewhen instantiating your Daily client).
0.84.0
Features
- Added support for calling phone extensions during dialout operations, allowing users to specify an extension number and wait time before dialing the extension after the main call connects.
- Added prebuilt specific
pip-startedandpip-stoppedevents.
Other improvements
- Improved reliability of handling auto-start recording/transcription options when joining room.
- Improved handling for unsupported browsers. The Daily constructor will now throw an error of
WebRTC not supported or suppressedif the browser will not support a call.
0.83.1
Urgent Browser Fixes
-
‼️ POTENTIAL BREAKAGE ON Chrome 140:
This release contains an update to the mediasoup-client dependency to provide a fix in advance of the Chrome 140 release. Without this fix, any client that upgrades to 140 and tries to join or reconnect to a call with a video track but not an audio track, will fail. GOOD NEWS: By default,daily-jswill obtain an audio track, even when audio is muted, so this only occurs in the following scenarios:- A user denies permissions ONLY for microphones
- A user does not have a microphone device
- One of the following
daily-jsAPIs are used:- A call is initiated with
alwaysIncludeMicInPermissionPrompt: falseas part of the advanceddailyConfigoptions. - Call
setLocalAudio()with the flagforceDiscardTrack:setLocalAudio(false, { forceDiscardTrack: true }) - Call
setInputDevicesAsync()withaudioSourceset tofalse:setInputDevicesAsync({ audioSource: false })
- A call is initiated with
For more detailed information, here's a link to the original mediasoup issue report
-
‼️ FIREFOX 142 REPORTS BAD NETWORK FALSELYThis release also contains a work-around for an issue introduced with Firefox 142, where
daily-jswill incorrectly tag all calls as having a bad network due toroundTripTime.
Bugfixes
- Fixed a regression in 0.82.0 where calling
startScreenShare()withcaptureOptionswould ignore thecaptureOptions
Other improvements
- Removed deprecated and unused support for
rtp-tracksrecording
0.82.0
Features
- Added support for
startScreenSharing()prior tojoin(). Note: A call topreAuth()orstartCamera()is still required first to initialize state.
Bugfixes
- Fixed and improved error handling for
setOutputDeviceAsync(). With this change,setOutputDevicesAsync()will now throw an error if the call fails.
Other improvements
- Updated dependencies to resolve security vulnerabilities
- Bumped Krisp version to the latest with the latest models and added handling for CPU overload which can cause choppy voice output. This change will temporarily and silently pause audio processing while the CPU recovers. If the system continues to be overloaded, daily-js will eventually emit a
audio-processor-errorwith anerrorMsgof"Krisp error: system overload", turn off the processor, and mute the microphone.
0.81.0
Features
- Added
ignoreAudioLevelparameter tostartCustomTrack. When enabled, the SFU will exclude the track from participant audio level calculations. - Added a new
dialin-errortype:start-failed.
Other improvements
- Updated
enumerateDevices()to report errors only when significant, and added improved logging to trackenumerateDevicestiming.
0.80.0
Features
- Added support for join time permissions for the SIP/PSTN user.
Other improvements
- Removed the use of STUN from Xirsys.
- Updated packages to address security vulnerabilities.
0.79.0
Bugfixes
- Various fixes and improvements around handling Krisp errors.
Other improvements
- Removed a client-side limit on max_live_streams
- Disabled redux devtools
0.78.0
Bugfixes
- Various fixes to the ejection logic, where a user could be ejected at the wrong time if their local computer clock is off or join if the time resulted in the past.
⚠️ PLEASE NOTE: This means that if you were for some reason settingeject_after_elapsedto a negative value, participants will no longer be allowed to join. - Starting in 0.72.0, on Chrome, providing an invalid
deviceIdforaudioresults inOverconstrainedErrors. This is continued fall out for handling Chrome's change in their handling ofdeviceId - Fix for issue 261 where errors in Krisp initialization were getting unhandled and could cause issues when joining.
Other improvements
- Reverted the change that disabled background effects on Windows when software WebGL was in use. Instead, we now log a warning and introduced a new
fatal-errortype:video-processor-warningfor applications to determine best behavior. Please note that when this warning occurs, the expected behavior is for the user’s video frame rate to drop significantly. Docs to be added shortly here - Added
instanceIdto webhooks for raw tracks. - Removed the beta feature warning from
testCallQuality() - Added a log around
enumerateDevices()to identify any time it takes longer than expected. This primarily is for knowing when join times are affected on Firefox due to the tab not being in focus. - Improved the new
networkStatecalculations, removingrecvPacketLossfrom the calculations for now as it is typically misleading.
0.77.0
Features
-
Added support for the new
canReceivepermission, which controls which tracks participants are permitted to receive from one another. Check out the docs forupdateParticipant()and the participant properties for more information. -
Introduced two new fields to
getNetworkStats()intended to replacethresholdandquality:networkState: Will hold a value ofgood,warning,bad, orunknownto match the API oftestCallQuality()and are based on packet loss, the available outgoing bitrate, and round trip times.networkStateReasons: An array of strings stating which stats fields triggered thewarningorbadstate. (If the state isgood, the reasons will be empty or undefined).
See the docs for
getNetworkStats()and thenetwork-quality-changeevent for more information. -
‡ Added support for setting the
callerIdwhen usingsipCallTransfer()to transfer a call to a PSTN number
Bugfixes
- Fixed broken
proxyUrlsupport
Other improvements
- Disabled background effects for Windows browsers without hardware graphics acceleration. This is already the behavior on other platforms, but Windows would continue to attempt to apply affects at the cost of video frame rates.
- Updated packages to resolve security vulnerabilities
- ‡ Removed
recordings_bucketdetails from the return ofroom(). This field will now be simply set totrueif a custom bucket is in use.
‡ These features depend on a server-side release expected to go out 4/2/25
0.76.0
Features
- Upgraded noise cancellation library, Krisp, to latest version (v2.2.1)
Bugfixes
- Fixed an issue introduced in 0.75.0 where switching from a custom track back to a daily managed track using
setInputDevicesAsync()did not work. - Fixed iceTransportPolicy property being ignored in versions 0.73.0-0.75.0.
Other improvements
- Added missing
enable_dialoutfield toDailyRoomInfoin typescript definitions.