# io.Connect Browser 3.1

Source: https://docs.interop.io/browser/getting-started/changelog/3-1/index.html

## io.Connect Browser 3.1

*Release date: 23.11.2023*

Versions of all main and additional libraries of **io.Connect Browser** for the current release:

| Library | Version |
|---------|---------|
| [`@interopio/browser`](https://www.npmjs.com/package/@interopio/browser) | 3.1 |
| [`@interopio/browser-platform`](https://www.npmjs.com/package/@interopio/browser-platform) | 3.1 |
| [`@interopio/browser-worker`](https://www.npmjs.com/package/@interopio/browser-worker) | 3.1 |
| [`@interopio/cli`](https://www.npmjs.com/package/@interopio/cli) | 1.0 |
| [`@interopio/fdc3`](https://www.npmjs.com/package/@interopio/fdc3) | 2.1 |
| [`@interopio/home-ui-react`](https://www.npmjs.com/package/@interopio/home-ui-react) | 1.1 |
| [`@interopio/intents-resolver-api`](https://www.npmjs.com/package/@interopio/intents-resolver-api) | 2.1 |
| [`@interopio/ng`](https://www.npmjs.com/package/@interopio/ng) | 4.1 |
| [`@interopio/react-hooks`](https://www.npmjs.com/package/@interopio/react-hooks) | 3.1 |
| [`@interopio/search-api`](https://www.npmjs.com/package/@interopio/search-api) | 2.1 |
| [`@interopio/workspaces-api`](https://www.npmjs.com/package/@interopio/workspaces-api) | 3.1 |
| [`@interopio/workspaces-ui-react`](https://www.npmjs.com/package/@interopio/workspaces-ui-react) | 3.1 |

## New Features

> ⚠️ *Note that each new feature is listed under all libraries it affects.*

> ### @interopio/browser
>
> - The active [Channel](https://docs.interop.io/browser/capabilities/data-sharing/channels/index.md) is now preserved after reloading the window.
> - Added the option to configure the `sandbox` attribute of the `<iframe>` element.
> - Introduced parsing of [FDC3 2.0 app definitions](https://fdc3.finos.org/schemas/2.0/app-directory#tag/Application).
> - It's now possible to specify a window to join to a Channel when using the [`join()`](https://docs.interop.io/browser/reference/javascript/channels/api/index.md#API-join) method.
> - Added a [`getChannel()`](https://docs.interop.io/browser/reference/javascript/windows/webwindow/index.md#WebWindow-getChannel) method to the [`WebWindow`](https://docs.interop.io/browser/reference/javascript/windows/webwindow/index.md) object for retrieving the Channel of the current window.
> - Added a `channelId` property to the [`ApplicationStartOptions`](https://docs.interop.io/browser/reference/javascript/app%20management/applicationstartoptions/index.md) object that allows to [start an app](https://docs.interop.io/browser/capabilities/app-management/index.md#apps-starting_apps) joined to e specified Channel.
> - Added to the Channels API a [`getMy()`](https://docs.interop.io/browser/reference/javascript/channels/api/index.md#API-getMy) method for retrieving the context of the current Channel, a [`getWindowsOnChannel()`](https://docs.interop.io/browser/reference/javascript/channels/api/index.md#API-getWindowsOnChannel) method for retrieving all windows joined to e specified Channel, and a [`getWindowsWithChannels()`](https://docs.interop.io/browser/reference/javascript/channels/api/index.md#API-getWindowsWithChannels) method for retrieving all windows that can use Channels and their current Channels.

> ### @interopio/browser-platform
>
> - Integrated Global Layout methods with [**io.Manager**](https://docs.interop.io/manager/overview/index.md).
> - Added the option to configure the `sandbox` attribute of the `<iframe>` element.
> - Introduced parsing of [FDC3 2.0 app definitions](https://fdc3.finos.org/schemas/2.0/app-directory#tag/Application).
> - It's now possible to specify a window to join to a Channel when using the [`join()`](https://docs.interop.io/browser/reference/javascript/channels/api/index.md#API-join) method.
> - Added a [`getChannel()`](https://docs.interop.io/browser/reference/javascript/windows/webwindow/index.md#WebWindow-getChannel) method to the [`WebWindow`](https://docs.interop.io/browser/reference/javascript/windows/webwindow/index.md) object for retrieving the Channel of the current window.
> - Added a `channelId` property to the [`ApplicationStartOptions`](https://docs.interop.io/browser/reference/javascript/app%20management/applicationstartoptions/index.md) object that allows to [start an app](https://docs.interop.io/browser/capabilities/app-management/index.md#apps-starting_apps) joined to e specified Channel.
> - Added to the Channels API a [`getMy()`](https://docs.interop.io/browser/reference/javascript/channels/api/index.md#API-getMy) method for retrieving the context of the current Channel, a [`getWindowsOnChannel()`](https://docs.interop.io/browser/reference/javascript/channels/api/index.md#API-getWindowsOnChannel) method for retrieving all windows joined to e specified Channel, and a [`getWindowsWithChannels()`](https://docs.interop.io/browser/reference/javascript/channels/api/index.md#API-getWindowsWithChannels) method for retrieving all windows that can use Channels and their current Channels.

> ### @interopio/cli
>
> - Released a first version of the [`@interopio/cli`](https://www.npmjs.com/package/@interopio/cli) library. This [command line tool](https://docs.interop.io/browser/developers/cli/index.md) enhances the process of bootstrapping **io.Connect Browser** projects.

> ### @interopio/home-ui-react
>
> - Added a [Notification Panel](https://docs.interop.io/browser/capabilities/home-app/overview/index.md#using_the_home_app-notification_panel).
> - Added a [Layouts panel](https://docs.interop.io/browser/capabilities/home-app/overview/index.md#using_the_home_app-layouts_panel).

## Improvements & Bug Fixes

> ⚠️ *Note that each improvement or bug fix is listed under all libraries it affects.*

> ### @interopio/browser
>
> - The `applicationTitle` property of the [`IntentHandler`](https://docs.interop.io/browser/reference/javascript/intents/intenthandler/index.md) object is now optional.

> ### @interopio/browser-platform
>
> - The `applicationTitle` property of the [`IntentHandler`](https://docs.interop.io/browser/reference/javascript/intents/intenthandler/index.md) object is now optional.

> ### @interopio/fdc3
>
> - Removed Electron dependency.
> - Fixed the `fdc3.open()` method to reject when a context listener is added through an FDC3 Channel.
> - Removed custom event listener related to the io.Connect library initialization.
> - The `applicationTitle` property of the [`IntentHandler`](https://docs.interop.io/browser/reference/javascript/intents/intenthandler/index.md) object is now optional.

> ### @interopio/home-ui-react
>
> - Added accessibility features for the Notification Panel and the Profile & Settings section.
> - Fixed duplicating Layouts when saving a Layout.
> - Fixed deleting a favorite app or Layout not removing the respective item.

> ### @interopio/intents-resolver-api
>
> - The `applicationTitle` property of the [`IntentHandler`](https://docs.interop.io/browser/reference/javascript/intents/intenthandler/index.md) object is now optional.

> ### @interopio/workspaces-api
>
> - Fixed memory leak related to handling Workspace windows.

> ### @interopio/workspaces-ui-react
>
> - Changed the labels of the buttons of Workspace popups.
