> ## Documentation Index
> Fetch the complete documentation index at: https://docs.daily.co/llms.txt
> Use this file to discover all available pages before exploring further.

# August 22, 2022

> The latest updates to Daily's real-time audio and video APIs.

## August 22nd, 2022

## daily-js 0.30.0

### ⚠ Notice: May require action

### Dynamic updates to previous `daily-js` versions will end

Today, if you're using `daily-js` in [call object](/docs/daily-js/concepts/call-modes#call-object-mode) mode, you may have noticed that certain bug fixes and updates are applied automatically to your client code, regardless of the version of `daily-js` you're using. Sometimes, these dynamic updates can introduce slight changes to the behavior of the API.

We’ve received feedback from developers who are looking for more stability and want more control over when these fixes and updates end up in their client implementations.

So, starting in an upcoming version of `daily-js`, bug fixes and updates will no longer be automatically applied to previous versions of `daily-js`, reducing unexpected changes for users of our library.

Going forward, if you’re using a numbered version of `daily-js` in call object mode, you will need to periodically update to the latest version in order to receive any of the latest fixes or improvements\*.

If you're using `daily-js` to embed [Daily Prebuilt](/docs/prebuilt), there's no change; you'll continue to get the latest embedded Daily Prebuilt experience (though you might choose to regularly update `daily-js` to take advantage of its latest API improvements\*).

\**Note: Daily commits to supporting previous `daily-js` versions released up to 6 months ago, so you'll want to at least update to stay within that support window.*

### Features

* 🚀 Allow setting an idle timeout for streaming

  When a user switches to another tab, some browsers throttle the CPU and cause their stream to pause. Idle timeout logic on our worker will stop livestreams or recordings automatically in this scenario, so we now allow users to override this behaviour and let streams run on for a configurable time before timing out as idle.

  Control this behaviour by setting the new key `minIdleTimeOut` to a number of seconds in the DailyStreamingOptions object supplied to either the [`startRecording`](/reference/daily-js/instance-methods/start-recording) or [`startLivestreaming`](/reference/daily-js/instance-methods/start-live-streaming) daily-js methods. For example:

  ```javascript theme={null}
  startRecording({
    width: 1920,
    height: 1080,
    fps: 30,
    minIdleTimeOut: 5 * 60, // five minutes, the current default
  });
  ```

* 💻 Update streaming/recording APIs to allow specifying an `instanceId`. This lays the groundwork for supporting multiple active recording and/or livestream instances per call. \[Coming soon]

* 📷 Add new `selected-devices-updated` event which will fire when [`setOutputDeviceAsync`](/reference/daily-js/instance-methods/set-output-device-async) is called, to allow applications to respond to output device changes.

* 🐛 Bugfix: Allow `joined_at` to be undefined, and prevent it from being set before it has a reasonable value. (Fixes [Github issue #191](https://github.com/daily-co/daily-js/issues/191)).

## react-native-daily-js 0.28.0

* 💪 Includes all of the above changes!
