diff --git a/CHANGELOG.md b/CHANGELOG.md index 94c047f9ea..1f38c53886 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * Added labels and tooltips to dropdowns in the FDC3 for Web reference implementation demo. ([#193](https://github.com/finos/FDC3/pull/1932)) * Added `fdc3.close()` API call allowing an app to request that its own window or frame be closed, with `closeRequest`/`closeResponse` DACP messages and `CloseError` enumeration ([#1918](https://github.com/finos/FDC3/pull/1918)) +* Added FDC3 Workbench support for `DesktopAgent` and `PrivateChannel` events, including automatic user channel updates, private channel event reporting, context-type-aware streaming, FDC3 2.0-2.1 compatibility, and copyable code examples. ([#1674](https://github.com/finos/FDC3/issues/1674)) * Added an optional `newInstance` parameter to the `raiseIntent` and `raiseIntentForContext` API calls, allowing an app to explicitly request that a **new instance** of the target application be launched (`newInstance: true`) or that an **existing instance** be used and a new one never launched (`newInstance: false`, which rejects with `ResolveError.TargetInstanceUnavailable` if no running instance is available). Omitting the parameter (or passing `null` or `undefined`) preserves the Desktop Agent's default resolution behavior. The parameter is carried on the `raiseIntentRequest` / `raiseIntentForContextRequest` DACP payloads, implemented in the agent proxy and reference web implementation, and covered by unit and conformance tests (`RaiseIntentNewInstanceForced`, `RaiseIntentExistingInstanceRequired`, `RaiseIntentFailExistingInstanceRequired`). ([#1940](https://github.com/finos/FDC3/issues/1940)) diff --git a/toolbox/fdc3-workbench/package.json b/toolbox/fdc3-workbench/package.json index befd8f7928..f7e460036e 100644 --- a/toolbox/fdc3-workbench/package.json +++ b/toolbox/fdc3-workbench/package.json @@ -13,6 +13,8 @@ "start": "vite", "preview": "vite preview", "build": "tsc && vite build", + "pretest": "npm run build --workspace=@finos/fdc3", + "test": "vitest run", "lint": " eslint src/", "lint:fix": "eslint --fix src/**/*.{ts,tsx} && prettier --write src/**/*.{ts,tsx}" }, diff --git a/toolbox/fdc3-workbench/src/components/ChannelField.tsx b/toolbox/fdc3-workbench/src/components/ChannelField.tsx index 1a17f34a11..c022f217fd 100644 --- a/toolbox/fdc3-workbench/src/components/ChannelField.tsx +++ b/toolbox/fdc3-workbench/src/components/ChannelField.tsx @@ -210,7 +210,7 @@ export const ChannelField = observer( const handleRemoveOrDisconnect = (channel: Fdc3ChannelRecord) => { if (isPrivateChannel) { - privateChannelStore.disconnect(channel.channel as PrivateChannel); + void privateChannelStore.disconnect(channel.channel as PrivateChannel); } else { appChannelStore.remove(channel.channel); } @@ -341,6 +341,37 @@ export const ChannelField = observer( + {isPrivateChannel && ( + + + + Private channel events + + + Received events are shown in the Workbench listeners panel. + + + + + + + + + + + + + + )}