diff --git a/source/administration-guide/upgrade/important-upgrade-notes.rst b/source/administration-guide/upgrade/important-upgrade-notes.rst index fa6bd01b6e3..dd61949266f 100644 --- a/source/administration-guide/upgrade/important-upgrade-notes.rst +++ b/source/administration-guide/upgrade/important-upgrade-notes.rst @@ -12,6 +12,37 @@ We recommend reviewing the `additional upgrade notes <#additional-upgrade-notes> | If you're upgrading | Then... | | from a version earlier than... | | +====================================================+==================================================================================================================================================================+ +| v11.10 | This migration adds a new composite index, ``idx_propertyvalues_groupid_updateat_id``, on the ``PropertyValues`` table covering the columns ``GroupID``, | +| | ``UpdateAt``, and ``ID``. The ``PropertyValues`` table is part of the Properties/Custom Attributes feature introduced in recent Mattermost versions. This index | +| | improves query performance for lookups and range scans that filter or sort by ``GroupID`` and ``UpdateAt``, which are common access patterns for this feature. | +| | The index is created using ``CONCURRENTLY``, so the build process does not block concurrent reads or writes against the ``PropertyValues`` table. The migrations | +| | are fully backwards-compatible and no database downtime is expected for this upgrade. The SQL queries included are: | +| | | +| | .. code-block:: sql | +| | | +| | -- morph:nontransactional | +| | CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_propertyvalues_groupid_updateat_id | +| | ON PropertyValues(GroupID, UpdateAt, ID); | +| | | +| | .. code-block:: sql | +| | | +| | -- morph:nontransactional | +| | DROP INDEX CONCURRENTLY IF EXISTS idx_propertyvalues_groupid_updateat_id; | +| +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| | This migration adds a new nullable ``lastnotifiedat`` column (``bigint``) to the ``useraccesstokens`` table. The column is intended to track the last time a | +| | notification was sent for a given user access token, enabling improved token-related notification logic. Because the column is nullable with no default value, | +| | PostgreSQL performs a catalog-only operation — no table rewrite occurs — and the lock is held for only a few milliseconds. Previous versions of Mattermost will | +| | simply ignore the new column, ensuring seamless compatibility across a rolling upgrade. The migrations are fully backwards-compatible and no database downtime | +| | is expected for this upgrade. The SQL queries included are: | +| | | +| | .. code-block:: sql | +| | | +| | -- Up migration | +| | ALTER TABLE useraccesstokens ADD COLUMN IF NOT EXISTS lastnotifiedat bigint; | +| | | +| | -- Down migration | +| | ALTER TABLE useraccesstokens DROP COLUMN IF EXISTS lastnotifiedat; | ++----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v11.9 | Mattermost v11.9 changes how redirect URI allowlist patterns are matched for OAuth Dynamic Client Registration (DCR). Patterns are now evaluated per URL | | | component (scheme, host, path, and query) rather than as a whole-string glob. As a result, a pattern such as ``https://*.example.com/**`` no longer matches | | | redirect URIs that include a query string (for example, ``https://app.example.com/callback?tenant=foo``); redirect URIs without a query string continue to | diff --git a/source/administration-guide/upgrade/open-source-components.rst b/source/administration-guide/upgrade/open-source-components.rst index ab16f0e8ec2..5ab11d380c9 100644 --- a/source/administration-guide/upgrade/open-source-components.rst +++ b/source/administration-guide/upgrade/open-source-components.rst @@ -9,6 +9,7 @@ The following open source components are used to provide the full benefits of Ma Desktop -------- +- Mattermost Desktop v6.3.0 - `View Open Source Components `__. - Mattermost Desktop v6.2.0 - `View Open Source Components `__. - Mattermost Desktop v6.1.0 - `View Open Source Components `__. - Mattermost Desktop v6.0.0 - `View Open Source Components `__. @@ -39,6 +40,7 @@ Desktop Mobile ------- +- Mattermost Mobile v2.43.0 - `View Open Source Components `__. - Mattermost Mobile v2.42.0 - `View Open Source Components `__. - Mattermost Mobile v2.41.0 - `View Open Source Components `__. - Mattermost Mobile v2.40.0 - `View Open Source Components `__. @@ -142,6 +144,7 @@ Mobile Server ------------------------------ +- Mattermost Enterprise Edition v11.10.0 - `View Open Source Components `__. - Mattermost Enterprise Edition v11.9.0 - `View Open Source Components `__. - Mattermost Enterprise Edition v11.8.0 - `View Open Source Components `__. - Mattermost Enterprise Edition v11.7.0 - `View Open Source Components `__. diff --git a/source/administration-guide/upgrade/prepare-to-upgrade-mattermost.rst b/source/administration-guide/upgrade/prepare-to-upgrade-mattermost.rst index 37eddc87485..63d3c79efd2 100644 --- a/source/administration-guide/upgrade/prepare-to-upgrade-mattermost.rst +++ b/source/administration-guide/upgrade/prepare-to-upgrade-mattermost.rst @@ -100,17 +100,17 @@ Ensure you review the :doc:`important-upgrade-notes` for all intermediate releas ALTER TABLE users ALTER COLUMN notifyprops TYPE jsonb USING notifyprops::jsonb; ALTER TABLE users ALTER COLUMN timezone TYPE jsonb USING timezone::jsonb; - Once you've identified the table being affected, verify how many invalid occurrences of `\u0000` you have using the following SELECT query: + Once you've identified the table being affected, verify how many invalid occurrences of `\\u0000` you have using the following SELECT query: .. code-block:: sh - SELECT COUNT(*) FROM TableName WHERE ColumnName LIKE '%\u0000%'; + SELECT COUNT(*) FROM TableName WHERE ColumnName LIKE '%\\u0000%'; Then select and fix the rows accordingly. If you prefer, you can also fix all occurrences at once in a given table or column using the following UPDATE query: .. code-block:: sh - UPDATE TableName SET ColumnName = regexp_replace(ColumnName, '\\u0000', '', 'g') WHERE ColumnName LIKE '%\u0000%'; + UPDATE TableName SET ColumnName = regexp_replace(ColumnName, '\\u0000', '', 'g') WHERE ColumnName LIKE '%\\u0000%'; Upgrade high availability cluster-based deployments --------------------------------------------------- diff --git a/source/deployment-guide/server/linux/deploy-rhel.rst b/source/deployment-guide/server/linux/deploy-rhel.rst index 4faaa6c0483..446403a445b 100644 --- a/source/deployment-guide/server/linux/deploy-rhel.rst +++ b/source/deployment-guide/server/linux/deploy-rhel.rst @@ -44,7 +44,7 @@ In a terminal window, ssh onto the system that will host the Mattermost Server. .. code-block:: sh - wget https://releases.mattermost.com/11.9.0/mattermost-11.9.0-linux-amd64.tar.gz + wget https://releases.mattermost.com/11.10.0/mattermost-11.10.0-linux-amd64.tar.gz .. tab:: Current ESR diff --git a/source/deployment-guide/server/linux/deploy-tar.rst b/source/deployment-guide/server/linux/deploy-tar.rst index 98498e99fb6..aa33eec0e53 100644 --- a/source/deployment-guide/server/linux/deploy-tar.rst +++ b/source/deployment-guide/server/linux/deploy-tar.rst @@ -45,7 +45,7 @@ In a terminal window, ssh onto the system that will host the Mattermost Server. .. code-block:: sh - wget https://releases.mattermost.com/11.9.0/mattermost-11.9.0-linux-amd64.tar.gz + wget https://releases.mattermost.com/11.10.0/mattermost-11.10.0-linux-amd64.tar.gz .. tab:: Current ESR diff --git a/source/deployment-guide/software-hardware-requirements.rst b/source/deployment-guide/software-hardware-requirements.rst index 565d1aff8a9..87f7e62c773 100644 --- a/source/deployment-guide/software-hardware-requirements.rst +++ b/source/deployment-guide/software-hardware-requirements.rst @@ -50,10 +50,10 @@ PC web .. csv-table:: :header: "Browser", "Self-Hosted Technical Requirement", "Cloud Technical Requirement" - "Chrome", "v146+", "v146+" + "Chrome", "v150+", "v150+" "Firefox", "v140+", "v140+" "Safari", "v26.2+", "v26.2+" - "Edge", "v146+", "v146+" + "Edge", "v150+", "v150+" `*` Internet Explorer (IE11) is no longer supported. We recommend using the `Mattermost desktop app `_ or another supported browser. See `this forum post `__ to learn more. @@ -78,8 +78,8 @@ Mobile web .. csv-table:: :header: "Browser", "Technical Requirement" - "iOS", "iOS 16.0+ with Safari 26.2+ or Chrome 146+" - "Android", "Android 7+ with Chrome 146+" + "iOS", "iOS 16.0+ with Safari 26.2+ or Chrome 150+" + "Android", "Android 7+ with Chrome 150+" Email client ^^^^^^^^^^^^ @@ -131,11 +131,11 @@ When a PostgreSQL version reaches its end of life (EOL), Mattermost will require +------------------------------------------------------------+------------------+--------------------------------+ | **Mattermost Version** | **Release Date** | **Minimum PostgreSQL Version** | +============================================================+==================+================================+ -| :ref:`v9.11 ESR ` | 2024-8-15 | 11.x | +| :ref:`v9.11 ESR ` | 2024-8-16 | 11.x | +------------------------------------------------------------+------------------+--------------------------------+ -| :ref:`v10.5 ESR ` | 2025-2-15 | 11.x | +| :ref:`v10.5 ESR ` | 2025-2-16 | 11.x | +------------------------------------------------------------+------------------+--------------------------------+ -| :ref:`v10.6 ` | 2025-3-15 | 13.x | +| :ref:`v10.6 ` | 2025-3-16 | 13.x | +------------------------------------------------------------+------------------+--------------------------------+ | :ref:`v10.11 ESR `| 2025-8-15 | 13.x | +------------------------------------------------------------+------------------+--------------------------------+ diff --git a/source/product-overview/mattermost-server-releases.md b/source/product-overview/mattermost-server-releases.md index 23687b1dcb4..1c155bb4c84 100644 --- a/source/product-overview/mattermost-server-releases.md +++ b/source/product-overview/mattermost-server-releases.md @@ -19,6 +19,7 @@ Mattermost releases a new server version on the 16th of each month in [binary fo | **Release** | **Released on** | **Support ends** | |:---|:---|:---| +| v11.10 [Download](https://releases.mattermost.com/11.10.0/mattermost-11.10.0-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-08-14 | 2026-11-15 | | v11.9 [Download](https://releases.mattermost.com/11.9.0/mattermost-11.9.0-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-07-16 | 2026-10-15 | | v11.8 [Download](https://releases.mattermost.com/11.8.4/mattermost-11.8.4-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-06-16 | 2026-09-15 | | v11.7 [Download](https://releases.mattermost.com/11.7.7/mattermost-11.7.7-linux-amd64.tar.gz) \| {ref}`Changelog ` \|
SBOM
| 2026-05-15 | 2027-05-15 {ref}`EXTENDED ` | diff --git a/source/product-overview/release-policy.md b/source/product-overview/release-policy.md index e5ea9bb4722..e47f9a35491 100644 --- a/source/product-overview/release-policy.md +++ b/source/product-overview/release-policy.md @@ -25,9 +25,9 @@ See the full list of all Mattermost Server and desktop app releases and life cyc Mattermost Extended Support Releases (ESRs) are a strategic choice for organizations looking for stability and reduced frequency of updates. Using ESRs can minimize disruptions associated with frequent upgrades, making them an attractive option for environments where stability is paramount. -Starting with the August 2025 Mattermost server and desktop app releases (server v10.11 and desktop app v5.13), Mattermost has adjusted the ESR life cycle as follows: - - **Extended Cadence**: ESRs are released every 9 months. - - **Prolonged Support**: ESRs are supported for 12 months. +The ESR lifecycle for Mattermost server and desktop app Extended Support Releases is as follows: + - **Cadence**: ESRs are released every 9 months. + - **Support**: ESRs are supported for 12 months. We strongly recommend planning ahead for upgrades before the end of an ESR's life cycle to ensure continuity in receiving security updates. @@ -48,7 +48,6 @@ gantt axisFormat %b %y section Releases - v10.10 :done, 2025-07-16, 2025-10-15 v10.11 & Desktop App v5.13 Extended Support :crit, 2025-08-16, 2026-08-15 v10.12 :done, 2025-09-16, 2025-12-15 v11.0 :done, 2025-10-16, 2026-01-15 @@ -61,7 +60,8 @@ gantt v11.7 & Desktop App v6.2 Extended Support :crit, 2026-05-15, 2027-05-15 v11.8 :active, 2026-06-16, 2026-09-15 v11.9 :active, 2026-07-16, 2026-10-15 - v11.10 :active, 2026-08-16, 2026-11-15 + v11.10 :active, 2026-08-14, 2026-11-15 + v11.11 :active, 2026-09-16, 2026-12-15 ``` **Timeline Legend:** diff --git a/source/product-overview/ui-ada-changelog.rst b/source/product-overview/ui-ada-changelog.rst index c429b74f77b..e7fe9d5972f 100644 --- a/source/product-overview/ui-ada-changelog.rst +++ b/source/product-overview/ui-ada-changelog.rst @@ -12,6 +12,32 @@ Changelog * - Version - Change Description + * - v11.10 + - (UI) Added a WYSIWYG editor option for message composition, allowing users to compose messages with rich-text formatting while preserving full markdown round-trip. + * - v11.10 + - (UI) Added a media gallery layout for posts with multiple images or videos, plus inline frame previews for single videos. + * - v11.10 + - (UI) Added support for a file upload element type in interactive dialogs. + * - v11.10 + - (UI) Added support for MM Blocks as a new way to create Interactive Messages. + * - v11.10 + - (UI) Plugins and integrations can now open stacked child dialogs from within an interactive dialog using the new ``action_button`` element type. + * - v11.10 + - (UI) Bot accounts, OAuth apps, incoming webhooks, and plugins can now deliver posts silently — visible in the channel without producing notifications, unread badges, or the "New Messages" separator. + * - v11.10 + - (UI) Bot accounts managed by a plugin now display the managing plugin's ID in the Bot Accounts list instead of a generic "Managed by plugin" label. + * - v11.10 + - (UI) Added inline plugin metadata to the Plugin Management page and plugin settings page showing the plugin ID, version, and links to the website and release notes when available. + * - v11.10 + - (UI) The agent selector now respects the configured default agent and remembers your last-selected agent. + * - v11.10 + - (UI) Mattermost now proactively warns the owner of a personal access token with a direct message from the system bot as the token approaches expiry (7, 3, and 1 days before), so token-backed integrations no longer break without warning. + * - v11.10 + - (UI) Token owners are now notified by a direct message from the system bot when one of their personal access tokens is removed after expiring. + * - v11.10 + - (UI) Added a **Regenerate** option to Personal Access Tokens in **Account Settings > Security**. + * - v11.10 + - (UI) Changed left-hand-side/right-hand-side to only be resizable with the left mouse button. * - v11.9 - (UI) Added zoom and pan support to the image file preview: use the scroll wheel to zoom at the cursor, click-and-drag to pan, and +/-/0 keyboard shortcuts (reported on webapp). * - v11.9