Skip to content

Conversation

@aweiss-dev
Copy link
Member

@aweiss-dev aweiss-dev commented Dec 1, 2025

BugWPB-21950 Desktop app - App didn't receive any messages but could send them.

Pull Request

Summary

The changes include better handling of WebSocket connectivity events, automatic reconnection logic, and improved state management.

WebSocket Connection Management Improvements:

  • Added robust reconnection logic to the WebSocket connection, including:
    • Automatic retries with a delay when a connection attempt fails.
    • Periodic health checks to trigger reconnection if the 'online' event does not fire (e.g., after sleep).
  • Added a ConnectionState enum to the __mocks__/@wireapp/core.ts mock file to ensure type safety and consistency.
  • Updated the @wireapp/core dependency in package.json to a newer beta version, likely to support the new connection management features.

Enhance test cases

  • handleEvent → event type handling, conversation events, decryption errors
  • injectEvent → validation, event source handling
  • configuration → setEventProcessMiddlewares, setEventProcessors
  • processEvent → middleware execution, error handling
  • getIsoDateFromEvent → extracting time from events, fallback behavior
  • distributeEvent → processor execution, error handling
  • updateConnectivitityStatus → notification handling state changes, connection state tracking
  • mapEncryptedEvent → ignored decryption errors, non-ignored decryption errors
  • connectWebSocket → network event handling, health monitoring, connection retry, cleanup

Security Checklist (required)

  • External inputs are validated & sanitized on client and/or server where applicable.
  • API responses are validated; unexpected shapes are handled safely (fallbacks or errors).
  • No unsafe HTML is rendered; if unavoidable, sanitization is applied and documented where it happens.
  • Injection risks (XSS/SQL/command) are prevented via safe APIs and/or escaping.

Standards Acknowledgement (required)


Screenshots or demo (if the user interface changed)

Notes for reviewers

  • Trade-offs:
  • Follow-ups (linked issues):
  • Linked PRs (e.g. web-packages):

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR enhances WebSocket connection management with robust reconnection logic, automatic health monitoring, and improved state tracking. The changes address connectivity issues after device sleep/wake cycles by implementing periodic heartbeat checks and automatic retry mechanisms.

Key Changes:

  • Implemented automatic reconnection with 5-second retry delay on connection failures
  • Added periodic health checks (1-minute intervals) using heartbeat to detect stale connections
  • Introduced connection state tracking with proper cleanup of event listeners and timers
  • Updated to beta version of @wireapp/core (v46.46.6-beta.9) to support new isWebsocketHealthy() API
  • Significantly expanded test coverage for connection management, including edge cases for retry logic, health monitoring, and cleanup

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
package.json Updated @wireapp/core to beta version with heartbeat support
yarn.lock Dependency lock file updates for @wireapp/core and transitive dependencies
src/script/repositories/event/EventRepository.ts Core reconnection logic, health monitoring, state tracking, and listener cleanup
src/script/repositories/event/EventRepository.test.ts Comprehensive test coverage for new connection management features
mocks/@wireapp/core.ts Added ConnectionState enum to mock for type safety in tests

@codecov
Copy link

codecov bot commented Dec 1, 2025

Codecov Report

❌ Patch coverage is 77.50000% with 18 lines in your changes missing coverage. Please review.
✅ Project coverage is 43.76%. Comparing base (98b4875) to head (504a089).
⚠️ Report is 1 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff             @@
##              dev   #19825      +/-   ##
==========================================
+ Coverage   43.46%   43.76%   +0.30%     
==========================================
  Files        1296     1296              
  Lines       32570    32637      +67     
  Branches     7232     7244      +12     
==========================================
+ Hits        14157    14285     +128     
+ Misses      16698    16635      -63     
- Partials     1715     1717       +2     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 1, 2025

🔗 Download Full Report Artifact

🧪 Playwright Test Summary

  • Passed: 9
  • Failed: 5
  • Skipped: 0
  • 🔁 Flaky: 0
  • 📊 Total: 14
  • Total Runtime: 1030.8s (~ 17 min 11 sec)

Failed Tests:

❌ Account Management (tags: TC-8639, crit-flow-web)

Location: specs/CriticalFlow/accountManagement-TC-8639.spec.ts:37
Duration: 88442ms

Errors:

Error: Matching URL not found in the email body

   at backend/inbucketClient.e2e.ts:120

  118 |
  119 |     if (this.isValidURL(matchingUrl) === false) {
> 120 |       throw new Error('Matching URL not found in the email body');
      |             ^
  121 |     }
  122 |
  123 |     return matchingUrl;
    at InbucketClientE2E.getMatchingURLFromEmailBody (/home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/backend/inbucketClient.e2e.ts:120:13)
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/accountManagement-TC-8639.spec.ts:133:30
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/accountManagement-TC-8639.spec.ts:124:3
❌ Team owner adds whole team to an all team chat (tags: TC-8631, crit-flow-web)

Location: specs/CriticalFlow/addMembersToChat-TC-8631.spec.ts:43
Duration: 54230ms

Errors:

Error: expect(locator).toBeVisible() failed

Locator: locator('[data-uie-name="item-message"][data-uie-send-status="2"]').filter({ hasText: 'Hello from Virginia!' }).locator('[data-uie-name="message-reactions"]').locator('[data-uie-name="emoji-pill"][title="heart"]')
Expected: visible
Timeout: 10000ms
Error: element(s) not found

Call log:
  - Expect "toBeVisible" with timeout 10000ms
  - waiting for locator('[data-uie-name="item-message"][data-uie-send-status="2"]').filter({ hasText: 'Hello from Virginia!' }).locator('[data-uie-name="message-reactions"]').locator('[data-uie-name="emoji-pill"][title="heart"]')


  185 |       await pages.conversationList().openConversation(conversationName);
  186 |       const ownerMessage = pages.conversation().getMessage({content: `Hello from ${owner.firstName}!`});
> 187 |       await expect(pages.conversation().getReactionOnMessage(ownerMessage, 'heart')).toBeVisible();
      |                                                                                      ^
  188 |       await expect(pages.conversation().getReactionOnMessage(ownerMessage, 'joy')).toBeVisible();
  189 |
  190 |       // Member1 verifies they can see thumbs up (+1) and joy (😂) reactions on their message from owner and member2
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/addMembersToChat-TC-8631.spec.ts:187:86
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/addMembersToChat-TC-8631.spec.ts:183:5
❌ Planning group call with sending various messages during call (tags: TC-8632, crit-flow-web)

Location: specs/CriticalFlow/groupCalls-TC-8632.spec.ts:37
Duration: 32016ms

Errors:

Error: expect(received).toBeFalsy()

Received: true

  122 |       await memberCalling.unmuteSelfInFullScreen();
  123 |       await memberPageManager.waitForTimeout(250);
> 124 |       expect(await memberCalling.isSelfUserMutedInFullScreen()).toBeFalsy();
      |                                                                 ^
  125 |     });
  126 |
  127 |     await test.step('Validation: Owner sees member is unmuted', async () => {
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/groupCalls-TC-8632.spec.ts:124:65
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/groupCalls-TC-8632.spec.ts:121:5
❌ Group Video call (tags: TC-8637, crit-flow-web)

Location: specs/CriticalFlow/groupVideoCall-TC-8637.spec.ts:39
Duration: 41892ms

Errors:

TimeoutError: locator.waitFor: Timeout 20000ms exceeded.
Call log:
  - waiting for locator('#add-participants [data-uie-name="search-list"] [aria-label="Open profile of Enos Steuber"]').locator('input[type="checkbox"]')


   at pageManager/webapp/pages/conversationDetails.page.ts:68

  66 |       await userLocator.click();
  67 |       // Wait for the user to be selected (checkbox should be checked)
> 68 |       await userLocator.locator('input[type="checkbox"]').waitFor({state: 'attached'});
     |                                                           ^
  69 |     }
  70 |
  71 |     await this.page.locator(`${selectById('add-participants')} ${selectByDataAttribute('do-create')}`).click();
    at ConversationDetailsPage.addUsersToConversation (/home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/pageManager/webapp/pages/conversationDetails.page.ts:68:59)
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/groupVideoCall-TC-8637.spec.ts:127:7
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/groupVideoCall-TC-8637.spec.ts:123:5
❌ New person joins team and setups up device (tags: TC-8635, crit-flow-web)

Location: specs/CriticalFlow/joinTeam-TC-8635.spec.ts:38
Duration: 66724ms

Errors:

TimeoutError: locator.waitFor: Timeout 20000ms exceeded.
Call log:
  - waiting for locator('#add-participants [data-uie-name="search-list"] [aria-label="Open profile of Dax Carroll"]').locator('input[type="checkbox"]')


   at pageManager/webapp/pages/conversationDetails.page.ts:68

  66 |       await userLocator.click();
  67 |       // Wait for the user to be selected (checkbox should be checked)
> 68 |       await userLocator.locator('input[type="checkbox"]').waitFor({state: 'attached'});
     |                                                           ^
  69 |     }
  70 |
  71 |     await this.page.locator(`${selectById('add-participants')} ${selectByDataAttribute('do-create')}`).click();
    at ConversationDetailsPage.addUsersToConversation (/home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/pageManager/webapp/pages/conversationDetails.page.ts:68:59)
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/joinTeam-TC-8635.spec.ts:125:7
    at /home/runner/actions-runner/_work/wire-webapp/wire-webapp/test/e2e_tests/specs/CriticalFlow/joinTeam-TC-8635.spec.ts:114:5

@aweiss-dev aweiss-dev changed the title fix(websocket): optimise event handling. Add heartbeat fix(websocket): optimise event handling. Add heartbeat [WPB-21950] Dec 1, 2025
zskhan
zskhan previously approved these changes Dec 1, 2025
Copy link
Contributor

@zskhan zskhan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copilot AI review requested due to automatic review settings December 1, 2025 13:10
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 5 changed files in this pull request and generated 4 comments.

Copilot AI review requested due to automatic review settings December 1, 2025 15:58
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 5 changed files in this pull request and generated 10 comments.

Copilot AI review requested due to automatic review settings December 1, 2025 16:53
@sonarqubecloud
Copy link

sonarqubecloud bot commented Dec 1, 2025

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 5 changed files in this pull request and generated no new comments.

@aweiss-dev aweiss-dev merged commit 7cb1c06 into dev Dec 2, 2025
21 of 22 checks passed
@aweiss-dev aweiss-dev deleted the fix/WPB-21950 branch December 2, 2025 08:48
e-maad pushed a commit that referenced this pull request Dec 3, 2025
…19825)

* fix(lifecycle): optimise online / offline event handling. Add heartbeat for WS

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* chore: rename to updateConnectivityStatus

* chore: add copilot suggested improvements

---------

Co-authored-by: Copilot <[email protected]>
otto-the-bot added a commit that referenced this pull request Dec 3, 2025
* fix: remove call from the call state when a user is left the group (#19790)

* chore(deps-dev): bump rimraf from 6.1.0 to 6.1.2 in /server (#19791)

Bumps [rimraf](https://github.com/isaacs/rimraf) from 6.1.0 to 6.1.2.
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](isaacs/rimraf@v6.1.0...v6.1.2)

---
updated-dependencies:
- dependency-name: rimraf
  dependency-version: 6.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor(WPB-21957): create fixture for creating teams + refactor edit tests with it (#19804)

This is an attempt to resolve the race conditions happening when two users connect in a 1:1 for the first time starting the conversation as proteus but it's migrated to MLS automatically. This leads to a message sent during the migration being lost. Team members don't need to go through this step as they are aware of the spoken protocol of other members after login.

* test(WPB-19966): write "Reply" regression tests (#19760)

* test(TC-8038): add test for not replying to a ping

* test(TC-8039): add test for not replying to timed messages

* test(TC-2994): add test for quote in reply to vanish if source message is removed

* test(TC-2996): add test for searching message

* test(TC-2997): test for quote in reply to be truncated

* test(TC-3002): reply to a picture

* test(TC-3003): reply to an audio message

* test(TC-3004): reply to video

* test(TC-3005): reply to link

* test(TC3006): reply to file

* test(TC-3007): reply to reply

* test(TC-3008): reply to link with text

* test(TC-3011): Reply with timed message

* test(TC-3013): test clicking the reply

* test(TC-3014): test replying in a conversation I'm no longer part of

* test(TC-3016): click on mention in reply opens user profile

* fix: remove visibility check from sendMessage

* test(TC-3009): add test case for replying to a location + util for sending location via testservice

* refactor: replace createPagesForUser with new fixtures

* refactor(test): use new fixtures for reply tests

* refactor: remove no longer used PagePlugin withConversation

* fix: accessibility improvements login(https://wearezeta.atlassian.net/browse/WPB-20819) (#19714)

* fix: make password toggle button accessible and localised(WPB-21228)

* fix: translate type

* fix: Login - New view is not announced

* fix: make back button accessible WPB-21466

* fix: make external link 2fa accessible(WPB-21279)

* fix: password toggle button text alternative(WPB-21228)

* fix: make verify account header focusable using screenkey and login subheading style adjustments

* fix: add toggle password show/hide label

* fix: address review comments

* chore: bump core packages

* fix: pipeline issues

* fix: PR comments

* fix: pipeline issues

* chore(deps): bump @wireapp/core from 46.46.3 to 46.46.5 (#19793)

Bumps [@wireapp/core](https://github.com/wireapp/wire-web-packages) from 46.46.3 to 46.46.5.
- [Commits](https://github.com/wireapp/wire-web-packages/compare/@wireapp/[email protected]...@wireapp/[email protected])

---
updated-dependencies:
- dependency-name: "@wireapp/core"
  dependency-version: 46.46.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump core-js from 3.46.0 to 3.47.0 (#19797)

Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.46.0 to 3.47.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.47.0/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-version: 3.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump emoji-picker-react from 4.15.1 to 4.15.2 (#19802)

Bumps [emoji-picker-react](https://github.com/ealush/emoji-picker-react) from 4.15.1 to 4.15.2.
- [Release notes](https://github.com/ealush/emoji-picker-react/releases)
- [Commits](https://github.com/ealush/emoji-picker-react/commits)

---
updated-dependencies:
- dependency-name: emoji-picker-react
  dependency-version: 4.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump html-webpack-plugin from 5.6.4 to 5.6.5 (#19800)

Bumps [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) from 5.6.4 to 5.6.5.
- [Release notes](https://github.com/jantimon/html-webpack-plugin/releases)
- [Changelog](https://github.com/jantimon/html-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](jantimon/html-webpack-plugin@v5.6.4...v5.6.5)

---
updated-dependencies:
- dependency-name: html-webpack-plugin
  dependency-version: 5.6.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump oidc-client-ts from 3.4.0 to 3.4.1 (#19801)

Bumps [oidc-client-ts](https://github.com/authts/oidc-client-ts) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/authts/oidc-client-ts/releases)
- [Commits](authts/oidc-client-ts@v3.4.0...v3.4.1)

---
updated-dependencies:
- dependency-name: oidc-client-ts
  dependency-version: 3.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump webpack from 5.102.1 to 5.103.0 (#19796)

Bumps [webpack](https://github.com/webpack/webpack) from 5.102.1 to 5.103.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](webpack/webpack@v5.102.1...v5.103.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.103.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump workbox-webpack-plugin from 7.3.0 to 7.4.0 (#19799)

Bumps [workbox-webpack-plugin](https://github.com/googlechrome/workbox) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](GoogleChrome/workbox@v7.3.0...v7.4.0)

---
updated-dependencies:
- dependency-name: workbox-webpack-plugin
  dependency-version: 7.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump stylelint from 16.25.0 to 16.26.0 (#19798)

Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.25.0 to 16.26.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](stylelint/stylelint@16.25.0...16.26.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 16.26.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump baseline-browser-mapping from 2.8.28 to 2.8.31 (#19792)

Bumps [baseline-browser-mapping](https://github.com/web-platform-dx/baseline-browser-mapping) from 2.8.28 to 2.8.31.
- [Release notes](https://github.com/web-platform-dx/baseline-browser-mapping/releases)
- [Commits](web-platform-dx/baseline-browser-mapping@v2.8.28...v2.8.31)

---
updated-dependencies:
- dependency-name: baseline-browser-mapping
  dependency-version: 2.8.31
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* test(WPB-19968): add tests for self deleting messages (#19805)

* test(TC-657): add test for sending ephemeral text message in 1:1

* test(TC-658): add test for sending ephemeral text message in group

* refactor: replace util sendTimedMessage with dedicated utils for enabling and disabling timed messages

* test(TC-662): Verify timer is applied to all messages until turning it off in 1:1

* test(TC-664): Verify that message with previous timer are deleted on start-up when the timeout passed in 1:1

* refactor: overload createPage fixture to optionally accept a context to reuse

* refactor: use team for tests using new fixture

* test(TC-675): Verify the message is not deleted for users that didn't read the message

* test(TC-3715): set global group conversation timer

* refactor(reply-tests): remove unused createUser fixture

* test(TC-3716): check current time is visible in details

* fix(a11y): add disabled attribute to MessageTimerButton

* test(TC-3718): check timed message button is disabled if timed messages are set globally

* test(TC-3719): globally set timer is shown on button next to input field

* test(TC-3720): system messages are shown for enabled / disabled timer messages

* test(TC-3717): check ephemeral message appear in search results

* test(TC-3731): add test for message to disappear from search results (currently broken)

* refactor: group search tests

* refactor: update search result tests to do assertions on receiver side

* refactor: group tests with self deleting messages set globally for a group conversation

* docs: add ticket number to comment for skipped test

* fix: prevent microphone disabled dialog display when muted (#19808)

* test(WPB-21957): update backend endpoint to match api version (#19809)

* chore: bump avs to v10.2.19 (#19810)

* chore(deps): bump pm2 from 6.0.13 to 6.0.14 in /server (#19814)

Bumps [pm2](https://github.com/Unitech/pm2) from 6.0.13 to 6.0.14.
- [Release notes](https://github.com/Unitech/pm2/releases)
- [Changelog](https://github.com/Unitech/pm2/blob/master/CHANGELOG.md)
- [Commits](Unitech/pm2@v6.0.13...v6.0.14)

---
updated-dependencies:
- dependency-name: pm2
  dependency-version: 6.0.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump js-yaml from 3.14.1 to 3.14.2 in /server (#19817)

Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](nodeca/js-yaml@3.14.1...3.14.2)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 3.14.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* test(WPB-19939): add authentication regression tests (#19826)

* test(TC-34579: verify signin button is disabled inc ase of empty credentials

* test(TC-3468): Verify sign in error appearance in case of suspended team account

* test(TC-3460): Verify current browser is set as temporary device

* test(TC-3465): Verify sign in error appearance in case of wrong credentials

* test(TC-3472): Ensure history is kept after refresh on permanent device

* test(TC-3473): create data driven test to also ensure history is kept on temporary device

* test(TC-1311): verify session expires

* test(TC-3480): check tls versions allowed by webapp server

* test(TC-1311): Ensure history is gone after logging out of public computer

* fix(websocket): optimise event handling. Add heartbeat [WPB-21950] (#19825)

* fix(lifecycle): optimise online / offline event handling. Add heartbeat for WS

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* chore: rename to updateConnectivityStatus

* chore: add copilot suggested improvements

---------

Co-authored-by: Copilot <[email protected]>

* chore(deps): bump express from 4.21.2 to 4.22.0 in /server (#19827)

Bumps [express](https://github.com/expressjs/express) from 4.21.2 to 4.22.0.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.22.0/History.md)
- [Commits](expressjs/express@4.21.2...4.22.0)

---
updated-dependencies:
- dependency-name: express
  dependency-version: 4.22.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: blocking user spec [19940] (#19784)

* test(WPB-19940): add tests for blocking users

* test(block): refactor block.spec.ts according to Review-Comments

add function to userActions.ts to send a connection request

add fixture for connection request

delete conversationNotConnected.modal.ts, replace it with acknowledge.modal.ts

* test(block): refactor block.spec.ts according to Review-Comments

* test(block): refactor block.spec.ts according to Review-Comments

* test(block): fixed unclear comments and variable namings

---------

Co-authored-by: Klaus Boldt <[email protected]>

* chore(deps): bump crowdin/github-action from 2.12.0 to 2.13.0 (#19828)

Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 2.12.0 to 2.13.0.
- [Release notes](https://github.com/crowdin/github-action/releases)
- [Commits](crowdin/github-action@v2.12.0...v2.13.0)

---
updated-dependencies:
- dependency-name: crowdin/github-action
  dependency-version: 2.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: integrate Collabora using iframe [WPB-21650] (#19813)

* initial commit

* add close modal handler

* added isFileEditable()

* added edit option for conversation assets

* add tests

* fixed getNode api call

* bump @webapp/core

* fix package.json

* fixed package.json

* fix package.json

* address PR comments

* fixed types

* chore(deps-dev): bump stylelint from 16.26.0 to 16.26.1 (#19820)

Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.26.0 to 16.26.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](stylelint/stylelint@16.26.0...16.26.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 16.26.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump @playwright/test from 1.56.1 to 1.57.0 (#19818)

Bumps [@playwright/test](https://github.com/microsoft/playwright) from 1.56.1 to 1.57.0.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](microsoft/playwright@v1.56.1...v1.57.0)

---
updated-dependencies:
- dependency-name: "@playwright/test"
  dependency-version: 1.57.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump baseline-browser-mapping from 2.8.31 to 2.8.32 (#19819)

Bumps [baseline-browser-mapping](https://github.com/web-platform-dx/baseline-browser-mapping) from 2.8.31 to 2.8.32.
- [Release notes](https://github.com/web-platform-dx/baseline-browser-mapping/releases)
- [Commits](web-platform-dx/baseline-browser-mapping@v2.8.31...v2.8.32)

---
updated-dependencies:
- dependency-name: baseline-browser-mapping
  dependency-version: 2.8.32
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump emoji-picker-react from 4.15.2 to 4.16.1 (#19822)

Bumps [emoji-picker-react](https://github.com/ealush/emoji-picker-react) from 4.15.2 to 4.16.1.
- [Release notes](https://github.com/ealush/emoji-picker-react/releases)
- [Commits](https://github.com/ealush/emoji-picker-react/commits)

---
updated-dependencies:
- dependency-name: emoji-picker-react
  dependency-version: 4.16.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* ci(WPB-21987): shard playwright tests across multiple runners (#19807)

* refactor: use nvmrc to select node version

* feat: add job to build test service

* feat: shard tests across multiple runners with integrated testservice & job to collect reports

* fix: build shadowJar of testservice

* fix: generate json report when merging blobs

* refactor: only download chrome browser for tests

* ci: use github reporter in CI

* fix: re-use playwright config when merging reports to generate json report for PR comment

* refactor: don't pass github user and token when building testservice

* feat: use 16 runners for sharding

* feat: execute regression tests in addition to critical flow

* fix: make script for reporting playwright summary work with nested test suites

* chore: use SHA for third party actions

(So Sonar shuts up)

* refactor: use line reporter instead of github

The report annotations are too annoying

* refactor: stop background process of testservice after test

* fix: run critical flow and regression tests

* ci: increase number of parallel test runners to 32

Now that the regression tests and critical flow tests are executed 16 runners is a bit too little

* style: ignore prettier for shard definition

* chore: safe guard stripAnsi function in report generation

* ci(WPB-21987): group test in playwright comment by file (#19830)

* refactor: update report script to group tests by file

* style: use list to render test cases

* feat: add direct link to download playwright report

* test(WPB-19966): fix getMessage locator to account for different message states (#19832)

* chore: add env var MAX_API_VERSION [WPB-22159] (#19831)

* runfix(cells): disable spammy tracking (#19829)

* test(WPB-19968): use a unique test message to avoid strict mode violation (#19834)

* test(WPB-19939): wait for login to finish before continuing (#19833)

* chore: Update translations

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Zafar Saeed Khan <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mark Brockhoff <[email protected]>
Co-authored-by: Arjita <[email protected]>
Co-authored-by: Adrian Weiß <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: JacquelineLehner <[email protected]>
Co-authored-by: Klaus Boldt <[email protected]>
Co-authored-by: Immad Abdul Jabbar <[email protected]>
e-maad pushed a commit that referenced this pull request Dec 3, 2025
…19825)

* fix(lifecycle): optimise online / offline event handling. Add heartbeat for WS

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* chore: rename to updateConnectivityStatus

* chore: add copilot suggested improvements

---------

Co-authored-by: Copilot <[email protected]>
e-maad added a commit that referenced this pull request Dec 3, 2025
* fix: remove call from the call state when a user is left the group (#19790)

* chore(deps-dev): bump rimraf from 6.1.0 to 6.1.2 in /server (#19791)

Bumps [rimraf](https://github.com/isaacs/rimraf) from 6.1.0 to 6.1.2.
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](isaacs/rimraf@v6.1.0...v6.1.2)

---
updated-dependencies:
- dependency-name: rimraf
  dependency-version: 6.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor(WPB-21957): create fixture for creating teams + refactor edit tests with it (#19804)

This is an attempt to resolve the race conditions happening when two users connect in a 1:1 for the first time starting the conversation as proteus but it's migrated to MLS automatically. This leads to a message sent during the migration being lost. Team members don't need to go through this step as they are aware of the spoken protocol of other members after login.

* test(WPB-19966): write "Reply" regression tests (#19760)

* test(TC-8038): add test for not replying to a ping

* test(TC-8039): add test for not replying to timed messages

* test(TC-2994): add test for quote in reply to vanish if source message is removed

* test(TC-2996): add test for searching message

* test(TC-2997): test for quote in reply to be truncated

* test(TC-3002): reply to a picture

* test(TC-3003): reply to an audio message

* test(TC-3004): reply to video

* test(TC-3005): reply to link

* test(TC3006): reply to file

* test(TC-3007): reply to reply

* test(TC-3008): reply to link with text

* test(TC-3011): Reply with timed message

* test(TC-3013): test clicking the reply

* test(TC-3014): test replying in a conversation I'm no longer part of

* test(TC-3016): click on mention in reply opens user profile

* fix: remove visibility check from sendMessage

* test(TC-3009): add test case for replying to a location + util for sending location via testservice

* refactor: replace createPagesForUser with new fixtures

* refactor(test): use new fixtures for reply tests

* refactor: remove no longer used PagePlugin withConversation

* fix: accessibility improvements login(https://wearezeta.atlassian.net/browse/WPB-20819) (#19714)

* fix: make password toggle button accessible and localised(WPB-21228)

* fix: translate type

* fix: Login - New view is not announced

* fix: make back button accessible WPB-21466

* fix: make external link 2fa accessible(WPB-21279)

* fix: password toggle button text alternative(WPB-21228)

* fix: make verify account header focusable using screenkey and login subheading style adjustments

* fix: add toggle password show/hide label

* fix: address review comments

* chore: bump core packages

* fix: pipeline issues

* fix: PR comments

* fix: pipeline issues

* chore(deps): bump @wireapp/core from 46.46.3 to 46.46.5 (#19793)

Bumps [@wireapp/core](https://github.com/wireapp/wire-web-packages) from 46.46.3 to 46.46.5.
- [Commits](https://github.com/wireapp/wire-web-packages/compare/@wireapp/[email protected]...@wireapp/[email protected])

---
updated-dependencies:
- dependency-name: "@wireapp/core"
  dependency-version: 46.46.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump core-js from 3.46.0 to 3.47.0 (#19797)

Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.46.0 to 3.47.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.47.0/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-version: 3.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump emoji-picker-react from 4.15.1 to 4.15.2 (#19802)

Bumps [emoji-picker-react](https://github.com/ealush/emoji-picker-react) from 4.15.1 to 4.15.2.
- [Release notes](https://github.com/ealush/emoji-picker-react/releases)
- [Commits](https://github.com/ealush/emoji-picker-react/commits)

---
updated-dependencies:
- dependency-name: emoji-picker-react
  dependency-version: 4.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump html-webpack-plugin from 5.6.4 to 5.6.5 (#19800)

Bumps [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) from 5.6.4 to 5.6.5.
- [Release notes](https://github.com/jantimon/html-webpack-plugin/releases)
- [Changelog](https://github.com/jantimon/html-webpack-plugin/blob/main/CHANGELOG.md)
- [Commits](jantimon/html-webpack-plugin@v5.6.4...v5.6.5)

---
updated-dependencies:
- dependency-name: html-webpack-plugin
  dependency-version: 5.6.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump oidc-client-ts from 3.4.0 to 3.4.1 (#19801)

Bumps [oidc-client-ts](https://github.com/authts/oidc-client-ts) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/authts/oidc-client-ts/releases)
- [Commits](authts/oidc-client-ts@v3.4.0...v3.4.1)

---
updated-dependencies:
- dependency-name: oidc-client-ts
  dependency-version: 3.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump webpack from 5.102.1 to 5.103.0 (#19796)

Bumps [webpack](https://github.com/webpack/webpack) from 5.102.1 to 5.103.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](webpack/webpack@v5.102.1...v5.103.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-version: 5.103.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump workbox-webpack-plugin from 7.3.0 to 7.4.0 (#19799)

Bumps [workbox-webpack-plugin](https://github.com/googlechrome/workbox) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](GoogleChrome/workbox@v7.3.0...v7.4.0)

---
updated-dependencies:
- dependency-name: workbox-webpack-plugin
  dependency-version: 7.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump stylelint from 16.25.0 to 16.26.0 (#19798)

Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.25.0 to 16.26.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](stylelint/stylelint@16.25.0...16.26.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 16.26.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump baseline-browser-mapping from 2.8.28 to 2.8.31 (#19792)

Bumps [baseline-browser-mapping](https://github.com/web-platform-dx/baseline-browser-mapping) from 2.8.28 to 2.8.31.
- [Release notes](https://github.com/web-platform-dx/baseline-browser-mapping/releases)
- [Commits](web-platform-dx/baseline-browser-mapping@v2.8.28...v2.8.31)

---
updated-dependencies:
- dependency-name: baseline-browser-mapping
  dependency-version: 2.8.31
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* test(WPB-19968): add tests for self deleting messages (#19805)

* test(TC-657): add test for sending ephemeral text message in 1:1

* test(TC-658): add test for sending ephemeral text message in group

* refactor: replace util sendTimedMessage with dedicated utils for enabling and disabling timed messages

* test(TC-662): Verify timer is applied to all messages until turning it off in 1:1

* test(TC-664): Verify that message with previous timer are deleted on start-up when the timeout passed in 1:1

* refactor: overload createPage fixture to optionally accept a context to reuse

* refactor: use team for tests using new fixture

* test(TC-675): Verify the message is not deleted for users that didn't read the message

* test(TC-3715): set global group conversation timer

* refactor(reply-tests): remove unused createUser fixture

* test(TC-3716): check current time is visible in details

* fix(a11y): add disabled attribute to MessageTimerButton

* test(TC-3718): check timed message button is disabled if timed messages are set globally

* test(TC-3719): globally set timer is shown on button next to input field

* test(TC-3720): system messages are shown for enabled / disabled timer messages

* test(TC-3717): check ephemeral message appear in search results

* test(TC-3731): add test for message to disappear from search results (currently broken)

* refactor: group search tests

* refactor: update search result tests to do assertions on receiver side

* refactor: group tests with self deleting messages set globally for a group conversation

* docs: add ticket number to comment for skipped test

* fix: prevent microphone disabled dialog display when muted (#19808)

* test(WPB-21957): update backend endpoint to match api version (#19809)

* chore: bump avs to v10.2.19 (#19810)

* chore(deps): bump pm2 from 6.0.13 to 6.0.14 in /server (#19814)

Bumps [pm2](https://github.com/Unitech/pm2) from 6.0.13 to 6.0.14.
- [Release notes](https://github.com/Unitech/pm2/releases)
- [Changelog](https://github.com/Unitech/pm2/blob/master/CHANGELOG.md)
- [Commits](Unitech/pm2@v6.0.13...v6.0.14)

---
updated-dependencies:
- dependency-name: pm2
  dependency-version: 6.0.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump js-yaml from 3.14.1 to 3.14.2 in /server (#19817)

Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](nodeca/js-yaml@3.14.1...3.14.2)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 3.14.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* test(WPB-19939): add authentication regression tests (#19826)

* test(TC-34579: verify signin button is disabled inc ase of empty credentials

* test(TC-3468): Verify sign in error appearance in case of suspended team account

* test(TC-3460): Verify current browser is set as temporary device

* test(TC-3465): Verify sign in error appearance in case of wrong credentials

* test(TC-3472): Ensure history is kept after refresh on permanent device

* test(TC-3473): create data driven test to also ensure history is kept on temporary device

* test(TC-1311): verify session expires

* test(TC-3480): check tls versions allowed by webapp server

* test(TC-1311): Ensure history is gone after logging out of public computer

* fix(websocket): optimise event handling. Add heartbeat [WPB-21950] (#19825)

* fix(lifecycle): optimise online / offline event handling. Add heartbeat for WS

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* chore: rename to updateConnectivityStatus

* chore: add copilot suggested improvements

---------

Co-authored-by: Copilot <[email protected]>

* chore(deps): bump express from 4.21.2 to 4.22.0 in /server (#19827)

Bumps [express](https://github.com/expressjs/express) from 4.21.2 to 4.22.0.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.22.0/History.md)
- [Commits](expressjs/express@4.21.2...4.22.0)

---
updated-dependencies:
- dependency-name: express
  dependency-version: 4.22.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: blocking user spec [19940] (#19784)

* test(WPB-19940): add tests for blocking users

* test(block): refactor block.spec.ts according to Review-Comments

add function to userActions.ts to send a connection request

add fixture for connection request

delete conversationNotConnected.modal.ts, replace it with acknowledge.modal.ts

* test(block): refactor block.spec.ts according to Review-Comments

* test(block): refactor block.spec.ts according to Review-Comments

* test(block): fixed unclear comments and variable namings

---------

Co-authored-by: Klaus Boldt <[email protected]>

* chore(deps): bump crowdin/github-action from 2.12.0 to 2.13.0 (#19828)

Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 2.12.0 to 2.13.0.
- [Release notes](https://github.com/crowdin/github-action/releases)
- [Commits](crowdin/github-action@v2.12.0...v2.13.0)

---
updated-dependencies:
- dependency-name: crowdin/github-action
  dependency-version: 2.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: integrate Collabora using iframe [WPB-21650] (#19813)

* initial commit

* add close modal handler

* added isFileEditable()

* added edit option for conversation assets

* add tests

* fixed getNode api call

* bump @webapp/core

* fix package.json

* fixed package.json

* fix package.json

* address PR comments

* fixed types

* chore(deps-dev): bump stylelint from 16.26.0 to 16.26.1 (#19820)

Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.26.0 to 16.26.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](stylelint/stylelint@16.26.0...16.26.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 16.26.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump @playwright/test from 1.56.1 to 1.57.0 (#19818)

Bumps [@playwright/test](https://github.com/microsoft/playwright) from 1.56.1 to 1.57.0.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](microsoft/playwright@v1.56.1...v1.57.0)

---
updated-dependencies:
- dependency-name: "@playwright/test"
  dependency-version: 1.57.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump baseline-browser-mapping from 2.8.31 to 2.8.32 (#19819)

Bumps [baseline-browser-mapping](https://github.com/web-platform-dx/baseline-browser-mapping) from 2.8.31 to 2.8.32.
- [Release notes](https://github.com/web-platform-dx/baseline-browser-mapping/releases)
- [Commits](web-platform-dx/baseline-browser-mapping@v2.8.31...v2.8.32)

---
updated-dependencies:
- dependency-name: baseline-browser-mapping
  dependency-version: 2.8.32
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump emoji-picker-react from 4.15.2 to 4.16.1 (#19822)

Bumps [emoji-picker-react](https://github.com/ealush/emoji-picker-react) from 4.15.2 to 4.16.1.
- [Release notes](https://github.com/ealush/emoji-picker-react/releases)
- [Commits](https://github.com/ealush/emoji-picker-react/commits)

---
updated-dependencies:
- dependency-name: emoji-picker-react
  dependency-version: 4.16.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* ci(WPB-21987): shard playwright tests across multiple runners (#19807)

* refactor: use nvmrc to select node version

* feat: add job to build test service

* feat: shard tests across multiple runners with integrated testservice & job to collect reports

* fix: build shadowJar of testservice

* fix: generate json report when merging blobs

* refactor: only download chrome browser for tests

* ci: use github reporter in CI

* fix: re-use playwright config when merging reports to generate json report for PR comment

* refactor: don't pass github user and token when building testservice

* feat: use 16 runners for sharding

* feat: execute regression tests in addition to critical flow

* fix: make script for reporting playwright summary work with nested test suites

* chore: use SHA for third party actions

(So Sonar shuts up)

* refactor: use line reporter instead of github

The report annotations are too annoying

* refactor: stop background process of testservice after test

* fix: run critical flow and regression tests

* ci: increase number of parallel test runners to 32

Now that the regression tests and critical flow tests are executed 16 runners is a bit too little

* style: ignore prettier for shard definition

* chore: safe guard stripAnsi function in report generation

* ci(WPB-21987): group test in playwright comment by file (#19830)

* refactor: update report script to group tests by file

* style: use list to render test cases

* feat: add direct link to download playwright report

* test(WPB-19966): fix getMessage locator to account for different message states (#19832)

* chore: add env var MAX_API_VERSION [WPB-22159] (#19831)

* runfix(cells): disable spammy tracking (#19829)

* test(WPB-19968): use a unique test message to avoid strict mode violation (#19834)

* test(WPB-19939): wait for login to finish before continuing (#19833)

* chore: Update translations

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Zafar Saeed Khan <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mark Brockhoff <[email protected]>
Co-authored-by: Arjita <[email protected]>
Co-authored-by: Adrian Weiß <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: JacquelineLehner <[email protected]>
Co-authored-by: Klaus Boldt <[email protected]>
Co-authored-by: Immad Abdul Jabbar <[email protected]>
aweiss-dev added a commit that referenced this pull request Dec 8, 2025
aweiss-dev added a commit that referenced this pull request Dec 8, 2025
github-actions bot pushed a commit that referenced this pull request Dec 8, 2025
aweiss-dev added a commit that referenced this pull request Dec 9, 2025
github-actions bot pushed a commit that referenced this pull request Dec 12, 2025
zskhan added a commit that referenced this pull request Dec 12, 2025
otto-the-bot added a commit that referenced this pull request Dec 12, 2025
* Revert "fix(websocket): optimise event handling. Add heartbeat [WPB-21950] (#19825)" (#19865) (#19887)

This reverts commit 94a6eb8.

Co-authored-by: Adrian Weiß <[email protected]>

* chore: Update translations

---------

Co-authored-by: Zafar Saeed Khan <[email protected]>
Co-authored-by: Adrian Weiß <[email protected]>
aweiss-dev added a commit that referenced this pull request Dec 23, 2025
…19825)

* fix(lifecycle): optimise online / offline event handling. Add heartbeat for WS

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* chore: rename to updateConnectivityStatus

* chore: add copilot suggested improvements

---------

Co-authored-by: Copilot <[email protected]>
aweiss-dev added a commit that referenced this pull request Dec 23, 2025
…19825)

* fix(lifecycle): optimise online / offline event handling. Add heartbeat for WS

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* Update src/script/repositories/event/EventRepository.ts

Co-authored-by: Copilot <[email protected]>

* chore: rename to updateConnectivityStatus

* chore: add copilot suggested improvements

---------

Co-authored-by: Copilot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants