From 64f719f5538a69a82b81d9de7be3e06c0f19da3b Mon Sep 17 00:00:00 2001 From: Robin Date: Wed, 21 Jan 2026 23:50:05 +0100 Subject: [PATCH] Allow Element Call widgets to receive sticky events (#31843) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Upgrade matrix-widget-api to 0.16.1 * Allow Element Call widgets to receive sticky events In an upcoming version of Element Call, the call widget will be able to operate in an experimental ‘Matrix 2.0’ mode in which MatrixRTC memberships are sent as sticky events. We already auto-approve the capability for this widget to send sticky events, but we recently decided there should be a capability for receiving them as well and need to auto-approve that too. --- package.json | 2 +- src/stores/widgets/ElementWidgetDriver.ts | 3 ++- .../stores/widgets/ElementWidgetDriver-test.ts | 3 ++- yarn.lock | 10 +++++++++- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 23e90237b6..3e7ae8c146 100644 --- a/package.json +++ b/package.json @@ -130,7 +130,7 @@ "maplibre-gl": "^5.0.0", "matrix-encrypt-attachment": "^1.0.3", "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop", - "matrix-widget-api": "^1.15.0", + "matrix-widget-api": "^1.16.1", "memoize-one": "^6.0.0", "mime": "^4.0.4", "oidc-client-ts": "^3.0.1", diff --git a/src/stores/widgets/ElementWidgetDriver.ts b/src/stores/widgets/ElementWidgetDriver.ts index 82da6c3d59..725f149f0d 100644 --- a/src/stores/widgets/ElementWidgetDriver.ts +++ b/src/stores/widgets/ElementWidgetDriver.ts @@ -124,7 +124,8 @@ export class ElementWidgetDriver extends WidgetDriver { this.allowedCapabilities.add(`org.matrix.msc2762.timeline:${inRoomId}`); this.allowedCapabilities.add(MatrixCapabilities.MSC4157SendDelayedEvent); this.allowedCapabilities.add(MatrixCapabilities.MSC4157UpdateDelayedEvent); - this.allowedCapabilities.add(MatrixCapabilities.MSC4354SendStickyEvent); + this.allowedCapabilities.add(MatrixCapabilities.MSC4407SendStickyEvent); + this.allowedCapabilities.add(MatrixCapabilities.MSC4407ReceiveStickyEvent); this.allowedCapabilities.add( WidgetEventCapability.forStateEvent(EventDirection.Receive, EventType.RoomName).raw, diff --git a/test/unit-tests/stores/widgets/ElementWidgetDriver-test.ts b/test/unit-tests/stores/widgets/ElementWidgetDriver-test.ts index 923f6750ad..a95a6ed958 100644 --- a/test/unit-tests/stores/widgets/ElementWidgetDriver-test.ts +++ b/test/unit-tests/stores/widgets/ElementWidgetDriver-test.ts @@ -131,7 +131,8 @@ describe("ElementWidgetDriver", () => { "org.matrix.msc3819.receive.to_device:m.call.replaces", "org.matrix.msc4157.send.delayed_event", "org.matrix.msc4157.update_delayed_event", - "org.matrix.msc4354.send_sticky_event", + "org.matrix.msc4407.send.sticky_event", + "org.matrix.msc4407.receive.sticky_event", // RTC decline events (send/receive, unstable/stable) "org.matrix.msc2762.send.event:org.matrix.msc4310.rtc.decline", "org.matrix.msc2762.send.event:m.rtc.decline", diff --git a/yarn.lock b/yarn.lock index c905513b41..7201d746a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9712,7 +9712,7 @@ matrix-web-i18n@3.6.0: minimist "^1.2.8" walk "^2.3.15" -matrix-widget-api@^1.14.0, matrix-widget-api@^1.15.0: +matrix-widget-api@^1.14.0: version "1.16.0" resolved "https://registry.yarnpkg.com/matrix-widget-api/-/matrix-widget-api-1.16.0.tgz#e232f1ed6b840feea58d693d877fb8a05b181aee" integrity sha512-OCsCzEN54jWamvWkBa7PqcKdlOhLA+nJbUyqsATHvzb4/NMcjdUZWSDurZxyNE5eYlNwxClA6Hw20mzJEKJbvg== @@ -9720,6 +9720,14 @@ matrix-widget-api@^1.14.0, matrix-widget-api@^1.15.0: "@types/events" "^3.0.0" events "^3.2.0" +matrix-widget-api@^1.16.1: + version "1.16.1" + resolved "https://registry.yarnpkg.com/matrix-widget-api/-/matrix-widget-api-1.16.1.tgz#a447f28f0af07e1bdc960881971de7d1ec9e6464" + integrity sha512-oCfTV4xNPo02qIgveqdkIyKQjOPpsjhF3bmJBotHrhr8TsrhVa7kx8PtuiUPnQTjz0tdBle7falR2Fw8VKsedw== + dependencies: + "@types/events" "^3.0.0" + events "^3.2.0" + mdn-data@2.0.28: version "2.0.28" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba"