Skip to content

Release 8.3.0#39778

Open
rocketchat-github-ci wants to merge 220 commits intomasterfrom
release-8.3.0
Open

Release 8.3.0#39778
rocketchat-github-ci wants to merge 220 commits intomasterfrom
release-8.3.0

Conversation

@rocketchat-github-ci
Copy link
Collaborator

@rocketchat-github-ci rocketchat-github-ci commented Mar 20, 2026

You can see below a preview of the release change log:

8.3.0

Engine versions

  • Node: 22.16.0
  • Deno: 1.43.5
  • MongoDB: 8.0
  • Apps-Engine: 1.61.0

Minor Changes

  • (#39750) Adds support to name changes on federated rooms

  • (#39268) refactor(ui-kit): Remove UiKit deprecations

  • (#38978 by @ahmed-n-abdeltwab) Add OpenAPI support for the Rocket.Chat autotranslate translateMessage API endpoints by migrating to a modern chained route definition syntax and utilizing shared AJV schemas for validation to enhance API documentation and ensure type safety through response validation

  • (#37922) Introduces native screen sharing for internal voice calls. This feature is currently in beta and can be disabled through admin settings.

  • (#39225 by @sezallagwal) Add OpenAPI support for the chat.followMessage and chat.unfollowMessage API endpoints by migrating to a modern chained route definition syntax and utilizing AJV schemas for body and response validation.

  • (#39227 by @sezallagwal) Add OpenAPI support for the chat.starMessage and chat.unStarMessage API endpoints by migrating to a modern chained route definition syntax and utilizing AJV schemas for body and response validation.

  • (#38957 by @Verifieddanny) Migrated rooms.leave endpoint to new OpenAPI pattern with AJV validation

  • (#38549 by @Rohitgiri02) migrated rooms.delete endpoint to new OpenAPI pattern with AJV validation

  • (#39094 by @ahmed-n-abdeltwab) Adds OpenAPI support for the Rocket.Chat e2e.updateGroupKey endpoints by migrating to a modern chained route definition syntax and utilizing shared AJV schemas for validation to enhance API documentation and ensure type safety through response validation.

  • (#36402 by @ahmed-n-abdeltwab) Add OpenAPI support for the Rocket.Chat users.getAvatarSuggestion API endpoints by migrating to a modern chained route definition syntax and utilizing shared AJV schemas for validation to enhance API documentation and ensure type safety through response validation.

  • (#38881 by @smirk-dev) adds instances.get API endpoint to new chained pattern with response schemas

  • (#38883 by @smirk-dev) Migrates ldap.testConnection and ldap.testSearch REST API endpoints from legacy addRoute pattern to the new chained .post() API pattern with typed response schemas and AJV body validation (replacing Meteor check()).

  • (#38882 by @smirk-dev) Migrates presence.getConnections and presence.enableBroadcast REST API endpoints from legacy addRoute pattern to the new chained .get()/.post() API pattern with typed response schemas.

  • (#38610) Fixes Custom Sounds Contextualbar state and refresh behavior

  • (#36779 by @ahmed-n-abdeltwab) Add OpenAPI support for the Rocket.Chat e2e.fetchMyKeys endpoints by migrating to a modern chained route definition syntax and utilizing shared AJV schemas for validation to enhance API documentation and ensure type safety through response validation.

  • (#39425) Adds support for multiple files in message composer, improving file upload experience

  • (#36916 by @ahmed-n-abdeltwab) Add OpenAPI support for the Rocket.Chat custom-user-status.list API endpoints by migrating to a modern chained route definition syntax and utilizing shared AJV schemas for validation to enhance API documentation and ensure type safety through response validation

  • (#39219 by @ahmed-n-abdeltwab) Add OpenAPI support for the Rocket.Chat e2e endpoints by migrating to a modern chained route definition syntax and utilizing shared AJV schemas for validation to enhance API documentation and ensure type safety through response validation.

  • (#38610) Adds new custom-sounds.getOne REST endpoint to retrieve a single custom sound by _id and updates client to consume it.

Patch Changes

  • (#39492) Security Hotfix (https://docs.rocket.chat/docs/security-fixes-and-updates)

  • (#39010) Fixes an authorization issue that allowed users to confirm uploads from other users

  • (#39092) Fixes main channel scroll position changing when jumping to a thread message from search

  • (#38531) Fixes a cross-resource access issue that allowed users to retrieve emojis from the Custom Sounds endpoint and sounds from the Custom Emojis endpoint when using the FileSystem storage mode.

  • (#39752) Fixes an issue on Federation where all domains ending with the pattern where being allowed to communicate, the feature is meant to work with a list, url by url

  • (#38662 by @TheRazorbill) Fixes wrong i18n key in RegisterWorkspace confirmation step so the text is translated instead of showing a missing key.

  • (#38983 by @copilot-swe-agent) Fixes incoming webhook messages ignoring literal \n escape sequences, and fixes the MarkdownText document variant not rendering newlines as line breaks.

  • (#39087) Fixes race condition causing duplicate open livechat rooms per visitor token.

  • (#39460) Fixes inconsistent username formatting causing '@@username' for federated users

  • (#38989) chore(eslint): Upgrades ESLint and its configuration

  • (#39541) Fixes an issue when forwarding messages to a password-protected room.

  • (#39003) Fix marking a message as sent before the request finishes

  • (#36786 by @ahmed-n-abdeltwab) Add OpenAPI support for the Rocket.Chat e2e.getUsersOfRoomWithoutKey endpoints by migrating to a modern chained route definition syntax and utilizing shared AJV schemas for validation to enhance API documentation and ensure type safety through response validation.

  • (#38932) Fixes version update banner showing outdated versions after server upgrade.

  • (#39461) Deprecates Anonymous write. Feature will be removed in version 9.0.0.

  • (#39545) Fixes the intermittent behavior where the "New messages" indicator appears incorrectly after the user sends a message

  • (#39753) Fixes an issue where emails were not saved for users logging in via the GitHub OAuth provider.

  • (#39491) Fixes calendar events modifying the wrong status property when attempting to sync busy status.

  • (#39054) Fixes a mismatch in the room icons on the sidebar items, ABAC Managed rooms were not displaying the correct icon

  • (#38760 by @Khizarshah01) Limits Outgoing webhook maximum response size to 10mb.

  • (#39612) Fixes the download of attachments with non-unicode names on E2EE rooms

  • (#36882 by @ahmed-n-abdeltwab) Add OpenAPI support for the Rocket.Chat push.test API endpoints by migrating to a modern chained route definition syntax and utilizing shared AJV schemas for validation to enhance API documentation and ensure type safety through response validation.

  • (#39718) Fixes an issue where, sometimes, updatedAt was not being set during the subscription creation

  • (#39557) Fixes main team channels being able to be converted into public or private with only the create-team-channel or create-team-group (the correct permission for main teams are create-c and create-p)

  • (#39559 by @copilot-swe-agent) Splits the single AJV validator instance into two: ajv (coerceTypes: false) for request body validation and ajvQuery (coerceTypes: true) for query parameter validation.

    Why this matters: Previously, a single AJV instance with coerceTypes: true was used everywhere. This silently accepted values with wrong types — for example, sending { "rid": 12345 } (number) where a string was expected would pass validation because 12345 was coerced to "12345". With this change, body validation is now strict: the server will reject payloads with incorrect types instead of silently coercing them.

    What may break for API consumers:

    • Numeric values sent as strings in POST/PUT/PATCH bodies (e.g., { "count": "10" } instead of { "count": 10 }) will now be rejected. Ensure JSON bodies use proper types.
    • Boolean values sent as strings in bodies (e.g., { "readThreads": "true" } instead of { "readThreads": true }) will now be rejected.
    • null values where a string is expected (e.g., { "name": null } for a type: 'string' field without nullable: true) will no longer be coerced to "".

    No change for query parameters: GET query params (e.g., ?count=10&offset=0) continue to be coerced via ajvQuery, since HTTP query strings are always strings.

  • (#39250) Fixes inquiries.take not failing when attempting to take a chat while over chat limits

  • (#38852) Fixes an issue where Production flag was not being respected when initializing Push Notifications configuration

  • (#39363 by @gauravsingh001-cyber) Fixes "Join" button on Outlook Calendar bubbling click event, also opening the calendar event details.

  • (#38944 by @Khizarshah01) Limits Omnichannel webhook maximum response size to 10mb.

  • (#39678) Adds support for ban management in federated rooms, enabling authorized users to ban and unban members via UI and slash commands.

  • (#38954) Fixes reactivity of Custom Sounds and Custom Emojis storage settings

  • (#35995 by @ahmed-n-abdeltwab) Add OpenAPI support for the Rocket.Chat rooms.favorite APIs endpoints by migrating to a modern chained route definition syntax and utilizing shared AJV schemas for validation to enhance API documentation and ensure type safety through response validation.

  • (#39505) Fixes ssrf validation for oauth endpoints, which allows internal endpoints to be used during the auth flow.

  • (#36523 by @ahmed-n-abdeltwab) Add OpenAPI support for the Rocket.Chat emoji-custom.create API endpoints by migrating to a modern chained route definition syntax and utilizing shared AJV schemas for validation to enhance API documentation and ensure type safety through response validation.

  • (#36953 by @ahmed-n-abdeltwab) Add OpenAPI support for the Rocket.Chat commands.get API endpoints by migrating to a modern chained route definition syntax and utilizing shared AJV schemas for validation to enhance API documentation and ensure type safety through response validation.

  • (#38974 by @ahmed-n-abdeltwab) Add OpenAPI support for the Rocket.Chat dm.close/im.close API endpoints by migrating to a modern chained route definition syntax and utilizing shared AJV schemas for validation to enhance API documentation and ensure type safety through response validation.

  • Updated dependencies [602b20a, e206889, e65b176, 6b80941, d1bf2cc, 02b1e6e, 9a70095, cd2fc20, 87f9262, a4e3c16, 652ff8c, 539659a, b1b1d6c, 1741a20, 5518503, a4341ec, 4025314, 85c0ac7, 803b807, 1361a1f, c217b0b, 2a27010, 78e37dc, 37acece, 43d0cfc, d8baf39, ddc0ed3, d83a1a9, eae3fb3, 4c2e444, 722df6f, 78b3fe3, 98a6c58, 29b453e, 39f2e87, c117492, 7c73241]:
    • @rocket.chat/model-typings@2.1.2
    • @rocket.chat/models@2.1.2
    • @rocket.chat/federation-matrix@0.1.0
    • @rocket.chat/message-parser@0.31.35
    • @rocket.chat/fuselage-ui-kit@29.0.0
    • @rocket.chat/ui-kit@1.0.0
    • @rocket.chat/apps-engine@1.61.0
    • @rocket.chat/rest-typings@8.3.0
    • @rocket.chat/i18n@2.2.0
    • @rocket.chat/ui-voip@19.0.0
    • @rocket.chat/server-cloud-communication@0.0.3
    • @rocket.chat/omnichannel-services@0.3.50
    • @rocket.chat/web-ui-registration@29.0.0
    • @rocket.chat/network-broker@0.2.32
    • @rocket.chat/password-policies@0.1.1
    • @rocket.chat/omni-core-ee@0.0.18
    • @rocket.chat/instance-status@0.1.53
    • @rocket.chat/media-signaling@0.2.0
    • @rocket.chat/patch-injection@0.0.2
    • @rocket.chat/media-calls@0.3.0
    • @rocket.chat/pdf-worker@0.3.32
    • @rocket.chat/account-utils@0.0.3
    • @rocket.chat/core-services@0.13.2
    • @rocket.chat/message-types@0.1.1
    • @rocket.chat/mongo-adapter@0.0.3
    • @rocket.chat/ui-video-conf@29.0.0
    • @rocket.chat/cas-validate@0.0.4
    • @rocket.chat/core-typings@8.3.0
    • @rocket.chat/server-fetch@0.1.2
    • @rocket.chat/presence@0.2.53
    • @rocket.chat/http-router@7.9.20
    • @rocket.chat/poplib@0.0.3
    • @rocket.chat/ui-composer@0.6.0
    • @rocket.chat/ui-contexts@29.0.0
    • @rocket.chat/license@1.1.13
    • @rocket.chat/api-client@0.2.53
    • @rocket.chat/log-format@0.0.3
    • @rocket.chat/gazzodown@29.0.0
    • @rocket.chat/omni-core@0.0.18
    • @rocket.chat/ui-avatar@25.0.0
    • @rocket.chat/ui-client@29.0.0
    • @rocket.chat/abac@0.1.6
    • @rocket.chat/favicon@0.0.5
    • @rocket.chat/tracing@0.0.2
    • @rocket.chat/agenda@0.1.1
    • @rocket.chat/base64@1.0.14
    • @rocket.chat/logger@1.0.1
    • @rocket.chat/random@1.2.3
    • @rocket.chat/sha256@1.0.13
    • @rocket.chat/tools@0.2.5
    • @rocket.chat/apps@0.6.6
    • @rocket.chat/cron@0.1.53
    • @rocket.chat/jwt@0.2.1

ggazzo and others added 30 commits February 20, 2026 15:06
Co-authored-by: Kevin Aleman <kaleman960@gmail.com>
Co-authored-by: Khizarshah01 <5263975+Khizarshah01@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilherme@gazzo.xyz>
…ints (#38861)

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ggazzo <5263975+ggazzo@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Guilherme Gazzo <guilherme@gazzo.xyz>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ggazzo <5263975+ggazzo@users.noreply.github.com>
…38864)

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ggazzo <guilherme@gazzo.xyz>
#38760)

Co-authored-by: Kevin Aleman <11577696+KevLehman@users.noreply.github.com>
Co-authored-by: Kevin  Aleman <kaleman960@gmail.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
Co-authored-by: Guilherme Gazzo <guilherme@gazzo.xyz>
…nd add Contextualbar bug fixes (#38610)

Co-authored-by: gabriellsh <40830821+gabriellsh@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilherme@gazzo.xyz>
Co-authored-by: Kevin Aleman <kaleman960@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Guilherme Gazzo <guilherme@gazzo.xyz>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Douglas Fabris <devfabris@gmail.com>
Co-authored-by: Guilherme Gazzo <guilherme@gazzo.xyz>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Kevin Aleman <kaleman960@gmail.com>
Co-authored-by: Guilherme Gazzo <guilherme@gazzo.xyz>
… parser (#38958)

Co-authored-by: ggazzo <5263975+ggazzo@users.noreply.github.com>
…r custom-sounds and emoji-custom endpoints (#38531)

Co-authored-by: Guilherme Gazzo <guilherme@gazzo.xyz>
gabriellsh and others added 21 commits March 19, 2026 18:57
Co-authored-by: Douglas Fabris <devfabris@gmail.com>
Co-authored-by: Gabriel Henriques <gabriel.henriques@rocket.chat>
Co-authored-by: Pierre Lehnen <pierre.lehnen@rocket.chat>
Co-authored-by: Guilherme Gazzo <guilherme@gazzo.xyz>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Co-authored-by: Julio Araujo <julio.araujo@rocket.chat>
Co-authored-by: Aleksander Nicacio da Silva <aleksander.silva@rocket.chat>
Co-authored-by: Diego Sampaio <chinello@gmail.com>
Removed the patch version for '@rocket.chat/ui-theming'.
@rocketchat-github-ci rocketchat-github-ci requested review from a team as code owners March 20, 2026 21:52
@changeset-bot
Copy link

changeset-bot bot commented Mar 20, 2026

🦋 Changeset detected

Latest commit: d7325cd

The changes in this PR will be included in the next version bump.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@dionisio-bot
Copy link
Contributor

dionisio-bot bot commented Mar 20, 2026

Looks like this PR is not ready to merge, because of the following issues:

  • This PR is missing the 'stat: QA assured' label
  • This PR is missing the required milestone or project

Please fix the issues and try again

If you have any trouble, please check the PR guidelines

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

3 issues found across 1653 files

Note: This PR contains a large number of files. cubic only reviews up to 75 files per PR, so some files may not have been reviewed.

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name=".changeset/eight-colts-kiss.md">

<violation number="1" location=".changeset/eight-colts-kiss.md:6">
P3: Fix the release-note sentence grammar to avoid unclear wording in the published changelog.</violation>
</file>

<file name=".github/workflows/dedupe-issues.yml">

<violation number="1" location=".github/workflows/dedupe-issues.yml:26">
P1: Pin the third-party action to an immutable commit SHA instead of `@beta` to avoid supply-chain risk when handling repository secrets.</violation>

<violation number="2" location=".github/workflows/dedupe-issues.yml:35">
P2: `always()` causes duplicate-comment-added telemetry to be sent even when dedupe fails; gate this step on successful prior execution to avoid false-positive metrics.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

uses: actions/checkout@v6

- name: Run Claude Code slash command
uses: anthropics/claude-code-base-action@beta
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 20, 2026

Choose a reason for hiding this comment

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

P1: Pin the third-party action to an immutable commit SHA instead of @beta to avoid supply-chain risk when handling repository secrets.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/dedupe-issues.yml, line 26:

<comment>Pin the third-party action to an immutable commit SHA instead of `@beta` to avoid supply-chain risk when handling repository secrets.</comment>

<file context>
@@ -0,0 +1,83 @@
+        uses: actions/checkout@v6
+
+      - name: Run Claude Code slash command
+        uses: anthropics/claude-code-base-action@beta
+        with:
+          prompt: '/dedupe ${{ github.repository }}/issues/${{ github.event.issue.number || inputs.issue_number }}'
</file context>
Fix with Cubic

GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Log duplicate comment event to Statsig
if: always()
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 20, 2026

Choose a reason for hiding this comment

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

P2: always() causes duplicate-comment-added telemetry to be sent even when dedupe fails; gate this step on successful prior execution to avoid false-positive metrics.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/dedupe-issues.yml, line 35:

<comment>`always()` causes duplicate-comment-added telemetry to be sent even when dedupe fails; gate this step on successful prior execution to avoid false-positive metrics.</comment>

<file context>
@@ -0,0 +1,83 @@
+            GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+      - name: Log duplicate comment event to Statsig
+        if: always()
+        env:
+          STATSIG_API_KEY: ${{ secrets.STATSIG_API_KEY }}
</file context>
Suggested change
if: always()
if: success()
Fix with Cubic

"@rocket.chat/meteor": patch
---

Fixes an issue on Federation where all domains ending with the pattern where being allowed to communicate, the feature is meant to work with a list, url by url
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 20, 2026

Choose a reason for hiding this comment

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

P3: Fix the release-note sentence grammar to avoid unclear wording in the published changelog.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .changeset/eight-colts-kiss.md, line 6:

<comment>Fix the release-note sentence grammar to avoid unclear wording in the published changelog.</comment>

<file context>
@@ -0,0 +1,6 @@
+"@rocket.chat/meteor": patch
+---
+
+Fixes an issue on Federation where all domains ending with the pattern where being allowed to communicate, the feature is meant to work with a list, url by url
</file context>
Fix with Cubic

@codecov
Copy link

codecov bot commented Mar 20, 2026

Codecov Report

❌ Patch coverage is 85.28736% with 64 lines in your changes missing coverage. Please review.
✅ Project coverage is 70.62%. Comparing base (5e92280) to head (d7325cd).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master   #39778      +/-   ##
==========================================
+ Coverage   70.57%   70.62%   +0.05%     
==========================================
  Files        3188     3256      +68     
  Lines      112623   115778    +3155     
  Branches    20402    21015     +613     
==========================================
+ Hits        79480    81771    +2291     
- Misses      31089    31948     +859     
- Partials     2054     2059       +5     
Flag Coverage Δ
e2e 60.50% <71.87%> (+0.17%) ⬆️
e2e-api 48.14% <ø> (+0.35%) ⬆️
unit 71.16% <86.21%> (-0.43%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.