From 45e4a89805bf72d14849a40f35a7aea4e8635263 Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Wed, 8 Jul 2026 12:58:17 +1000 Subject: [PATCH 01/16] TINYDOC-3528 - Populate TinyMCE 8.8.0 release date --- modules/ROOT/pages/8.8.0-release-notes.adoc | 2 +- modules/ROOT/pages/changelog.adoc | 2 +- modules/ROOT/partials/misc/supported-versions.adoc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/ROOT/pages/8.8.0-release-notes.adoc b/modules/ROOT/pages/8.8.0-release-notes.adoc index 1e1e6859ea..8f2fdad0d0 100644 --- a/modules/ROOT/pages/8.8.0-release-notes.adoc +++ b/modules/ROOT/pages/8.8.0-release-notes.adoc @@ -11,7 +11,7 @@ include::partial$misc/admon-releasenotes-for-stable.adoc[] [[overview]] == Overview -{productname} {release-version} was released for {enterpriseversion} and {cloudname} on ,
^^, . These release notes provide an overview of the changes for {productname} {release-version}, including: +{productname} {release-version} was released for {enterpriseversion} and {cloudname} on Wednesday, July 15^th^, 2026. These release notes provide an overview of the changes for {productname} {release-version}, including: // Remove sections and section boilerplates as necessary. // Pluralise as necessary or remove the placeholder plural marker. diff --git a/modules/ROOT/pages/changelog.adoc b/modules/ROOT/pages/changelog.adoc index 8a3e74752b..780107992d 100644 --- a/modules/ROOT/pages/changelog.adoc +++ b/modules/ROOT/pages/changelog.adoc @@ -4,7 +4,7 @@ NOTE: This is the {productname} Community version changelog. For information about the latest {cloudname} or {enterpriseversion} Release, see: xref:release-notes.adoc[{productname} Release Notes]. -== xref:8.8.0-release-notes.adoc[8.8.0 - ] +== xref:8.8.0-release-notes.adoc[8.8.0 - 2026-07-15] //TODO diff --git a/modules/ROOT/partials/misc/supported-versions.adoc b/modules/ROOT/partials/misc/supported-versions.adoc index 8f559df8b8..66c6cf81d8 100644 --- a/modules/ROOT/partials/misc/supported-versions.adoc +++ b/modules/ROOT/partials/misc/supported-versions.adoc @@ -6,7 +6,7 @@ Supported versions of {productname}: [cols="^,^,^",options="header"] |=== |Version |Release Date |End of Premium Support -|8.8 | | +|8.8 |2026-07-15 |2028-01-15 |8.7 |2026-06-30 |2027-12-30 |8.6 |2026-06-03 |2027-12-03 |8.5 |2026-04-29 |2027-10-29 From d0b554eda10d98fc62bea148151b5305b35b89d1 Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Tue, 14 Jul 2026 09:21:05 +1000 Subject: [PATCH 02/16] Docs: TINYDOC-3528 - The TinyMCE AI plugin now ignores non-string values returned by tinymceai_tool_data_callback (#4273) --- modules/ROOT/pages/8.8.0-release-notes.adoc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/modules/ROOT/pages/8.8.0-release-notes.adoc b/modules/ROOT/pages/8.8.0-release-notes.adoc index 8f2fdad0d0..84b02dc259 100644 --- a/modules/ROOT/pages/8.8.0-release-notes.adoc +++ b/modules/ROOT/pages/8.8.0-release-notes.adoc @@ -71,6 +71,21 @@ The {productname} {release-version} release includes an accompanying release of For information on the **** plugin, see: xref:.adoc[]. +=== TinyMCE AI + +The {productname} {release-version} release includes an accompanying release of the **TinyMCE AI** premium plugin. + +**TinyMCE AI** includes the following fix. + +==== The TinyMCE AI plugin now ignores non-string values returned by `tinymceai_tool_data_callback` +// #TINYMCE-14525 + +Previously, the xref:tinymceai.adoc#tinymceai_tool_data_callback[`+tinymceai_tool_data_callback+`] callback could return a value that was not a string, such as a number. The **TinyMCE AI** plugin then displayed that value directly in the Chat sidebar status message, even though the option documents a return type of `+string | undefined+`. As a result, the status message shown while a Model Context Protocol (MCP) tool ran did not make sense. + +In {productname} {release-version}, the **TinyMCE AI** plugin validates the value returned by the callback. When the callback returns a value that is not a string, the plugin ignores that value, treats the result as `+undefined+`, and shows the default status message instead. + +For information on the **TinyMCE AI** plugin, see: xref:tinymceai.adoc[TinyMCE AI]. + [[accompanying-premium-plugin-end-of-life-announcement]] == Accompanying Premium plugin end-of-life announcement From 3a58e13dd0978903356a9c09a1ec08abb7c1a1d5 Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Tue, 14 Jul 2026 09:21:16 +1000 Subject: [PATCH 03/16] Docs: TINYDOC-3528 - The TinyMCE AI chat sidebar now shows only one tooltip at a time (#4272) --- modules/ROOT/pages/8.8.0-release-notes.adoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/ROOT/pages/8.8.0-release-notes.adoc b/modules/ROOT/pages/8.8.0-release-notes.adoc index 84b02dc259..6a616a6500 100644 --- a/modules/ROOT/pages/8.8.0-release-notes.adoc +++ b/modules/ROOT/pages/8.8.0-release-notes.adoc @@ -131,6 +131,13 @@ For information on using Enhanced Skins & Icon Packs, see: xref:enhanced-skins-a // CCFR here. +=== The {productname} AI chat sidebar now shows only one tooltip at a time +// #TINYMCE-14507 + +Previously, each button in the {productname} AI chat sidebar managed its tooltip independently, with no coordination between them. Opening one tooltip did not close a tooltip that was already visible, so more than one tooltip could remain on screen at the same time. + +In {productname} {release-version}, opening a tooltip in the {productname} AI chat sidebar closes any other open tooltip, so the chat sidebar shows only one tooltip at a time. This keeps the interface clear and consistent. + [[additions]] == Additions From a843efa6b3fa22aaa0eaeaf680f760eb8ad838df Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Tue, 14 Jul 2026 09:22:10 +1000 Subject: [PATCH 04/16] TINYDOC-3528: Added configurable welcome actions to the TinyMCE AI Chat empty state (#4267) * Docs: TINYDOC-3528 - Added configurable welcome actions to the TinyMCE AI Chat empty state * Docs: TINYDOC-3528 - Expand tinymceai_chat_welcome_actions example with interleaved text, ToggleSidebar, and non-AI command * Docs: TINYDOC-3528 - Add welcome actions to the TinyMCE AI chat live demo --- .../examples/live-demos/tinymceai/example.js | 8 ++++ .../examples/live-demos/tinymceai/index.js | 8 ++++ modules/ROOT/pages/8.8.0-release-notes.adoc | 7 +++ .../configuration/tinymceai_options.adoc | 48 +++++++++++++++++++ 4 files changed, 71 insertions(+) diff --git a/modules/ROOT/examples/live-demos/tinymceai/example.js b/modules/ROOT/examples/live-demos/tinymceai/example.js index be2e035af6..03786aa8b2 100644 --- a/modules/ROOT/examples/live-demos/tinymceai/example.js +++ b/modules/ROOT/examples/live-demos/tinymceai/example.js @@ -6,6 +6,14 @@ tinymce.init({ plugins: ['tinymceai', 'advlist', 'lists', 'link', 'autolink', 'table', 'wordcount'], toolbar: 'undo redo | tinymceai-chat ai-quickactions-translate tinymceai-review | styles | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link', sidebar_show: 'tinymceai-chat', + tinymceai_chat_welcome_message: '

Welcome to TinyMCE AI. Pick an action below or type your own prompt.

', + tinymceai_chat_welcome_actions: [ + { text: 'Here are some actions to get started:' }, + { title: 'Summarize the document', command: 'TinyMCEAIQuickActionsSummarize' }, + { title: 'Continue writing', command: 'TinyMCEAIQuickActionContinueWriting' }, + { title: 'Translate to Spanish', command: 'TinyMCEAIQuickActionTranslate', value: 'spanish' }, + { title: 'Review my document', command: 'ToggleSidebar', value: 'tinymceai-review' } + ], tinymceai_token_provider: async () => { return fetch('/api/tinymceai-token', { credentials: 'include' }) .then(resp => resp.text()) diff --git a/modules/ROOT/examples/live-demos/tinymceai/index.js b/modules/ROOT/examples/live-demos/tinymceai/index.js index a5b7ebd3a4..c1b12a167a 100644 --- a/modules/ROOT/examples/live-demos/tinymceai/index.js +++ b/modules/ROOT/examples/live-demos/tinymceai/index.js @@ -27,6 +27,14 @@ tinymce.init({ toolbar: 'undo redo | tinymceai-chat tinymceai-review ai-quickactions-translate spellchecker | styles | bold italic underline forecolor backcolor casechange | link uploadcare table addcomment | align bullist numlist checklist removeformat | code fullscreen help', quickbars_selection_toolbar: 'tinymceai-quickactions addcomment', sidebar_show: 'tinymceai-chat', + tinymceai_chat_welcome_message: '

Welcome to TinyMCE AI. Pick an action below or type your own prompt.

', + tinymceai_chat_welcome_actions: [ + { text: 'Here are some actions to get started:' }, + { title: 'Summarize the document', command: 'TinyMCEAIQuickActionsSummarize' }, + { title: 'Continue writing', command: 'TinyMCEAIQuickActionContinueWriting' }, + { title: 'Translate to Spanish', command: 'TinyMCEAIQuickActionTranslate', value: 'spanish' }, + { title: 'Review my document', command: 'ToggleSidebar', value: 'tinymceai-review' } + ], toolbar_mode: 'sliding', visual: false, images_file_types: 'jpeg,jpg,jpe,jfi,jif,jfif,png,gif,bmp,webp,svg', diff --git a/modules/ROOT/pages/8.8.0-release-notes.adoc b/modules/ROOT/pages/8.8.0-release-notes.adoc index 6a616a6500..21e1b44a86 100644 --- a/modules/ROOT/pages/8.8.0-release-notes.adoc +++ b/modules/ROOT/pages/8.8.0-release-notes.adoc @@ -149,6 +149,13 @@ In {productname} {release-version}, opening a tooltip in the {productname} AI ch // CCFR here. +=== Added configurable welcome actions to the TinyMCE AI Chat empty state +// #TINYMCE-14508 + +In {productname} {release-version}, the TinyMCE AI Chat sidebar can display a configurable set of welcome actions in its empty state, giving users suggested starting points instead of a blank prompt. Each item can show descriptive text or a button that runs a Quick Action, sends a chat prompt, or runs another editor command. Welcome actions appear before the first request is sent and are hidden once a conversation begins. + +Welcome actions are configured with the new xref:tinymceai.adoc#tinymceai_chat_welcome_actions[`+tinymceai_chat_welcome_actions+`] option and are disabled by default. + [[changes]] == Changes diff --git a/modules/ROOT/partials/configuration/tinymceai_options.adoc b/modules/ROOT/partials/configuration/tinymceai_options.adoc index 9ab4dcc21f..49d736a774 100644 --- a/modules/ROOT/partials/configuration/tinymceai_options.adoc +++ b/modules/ROOT/partials/configuration/tinymceai_options.adoc @@ -276,6 +276,54 @@ tinymce.init({ }); ---- +[[tinymceai_chat_welcome_actions]] +=== `+tinymceai_chat_welcome_actions+` + +Adds a set of suggested welcome actions to the Chat sidebar empty state, shown below the xref:tinymceai.adoc#tinymceai_chat_welcome_message[`+tinymceai_chat_welcome_message+`] when a conversation is empty. Welcome actions give users a set of starting points instead of a blank prompt. The actions are shown only before the first request is sent. They are hidden after the first request and shown again when a new conversation is started. + +*Type:* `+Array+` + +*Default value:* `+[]+` (no welcome actions) + +Each item in the array is one of the following: + +* A `+String+`, or an object with a `+text+` property (`+{ text: 'string' }+`), shown as descriptive text. +* An action object, shown as a clickable button, with the following properties: +** `+title+` (`+String+`): The label shown on the button. +** `+command+` (`+String+`): The editor command run when the button is selected, using `+editor.execCommand(command, false, value)+`. This can be a Quick Action or Chat command, the core `+ToggleSidebar+` command, or any other registered editor command, such as `+Bold+`. For the AI command names, see xref:editor-command-identifiers.adoc#tinymceai[TinyMCE AI]. +** `+value+` (optional): The argument passed to the command. The accepted value matches the command, for example a language label for `+TinyMCEAIQuickActionTranslate+`, a `+{ prompt, displayedPrompt }+` object for `+TinyMCEAIChatPrompt+`, or a sidebar name such as `+'tinymceai-review'+` for `+ToggleSidebar+`. +** `+icon+` (optional `+String+`): The name of the icon shown on the button, using any editor icon identifier. When omitted, an icon is selected automatically based on the command. + +Text items and action buttons can be interleaved to group related actions under short headings. + +.Example +[source,js] +---- +tinymce.init({ + selector: 'textarea', + plugins: 'tinymceai', + toolbar: 'tinymceai-chat tinymceai-quickactions tinymceai-review', + tinymceai_chat_welcome_actions: [ + { text: 'Here are some actions to get started:' }, + { title: 'Summarize the document', command: 'TinyMCEAIQuickActionsSummarize' }, + { title: 'Continue writing', command: 'TinyMCEAIQuickActionContinueWriting' }, + { title: 'Translate to Spanish', command: 'TinyMCEAIQuickActionTranslate', value: 'spanish' }, + { + title: 'Draft a reply', + command: 'TinyMCEAIChatPrompt', + value: { prompt: 'Draft a reply to this message in a professional tone.', displayedPrompt: 'Draft a reply' } + }, + { title: 'Review my document', command: 'ToggleSidebar', value: 'tinymceai-review' }, + { text: 'Other editor commands are also supported:' }, + { title: 'Bold', command: 'Bold', icon: 'bold' } + ], + // Required for authentication + tinymceai_token_provider: () => { + return fetch('/api/token').then(r => r.json()); + } +}); +---- + [[tinymceai_tool_data_callback]] === `+tinymceai_tool_data_callback+` From cfb4ee776569f26e6311ba452e2d182b4540d6b3 Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Tue, 14 Jul 2026 12:11:54 +1000 Subject: [PATCH 05/16] TINYDOC-3528: Clicking the reply button triggered an editor blur event (#4271) * Docs: TINYDOC-3528 - Clicking the reply button triggered an editor blur event * Docs: TINYDOC-3528 - Reference the concrete reply count button in the blur event note * Update modules/ROOT/pages/8.8.0-release-notes.adoc Co-authored-by: tiny-ben-tran * Docs: TINYDOC-3528 - Correct the blur event mechanism to focus loss to document body --------- Co-authored-by: tiny-ben-tran --- modules/ROOT/pages/8.8.0-release-notes.adoc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/modules/ROOT/pages/8.8.0-release-notes.adoc b/modules/ROOT/pages/8.8.0-release-notes.adoc index 21e1b44a86..0248a8a2a0 100644 --- a/modules/ROOT/pages/8.8.0-release-notes.adoc +++ b/modules/ROOT/pages/8.8.0-release-notes.adoc @@ -71,6 +71,21 @@ The {productname} {release-version} release includes an accompanying release of For information on the **** plugin, see: xref:.adoc[]. +=== Comments + +The {productname} {release-version} release includes an accompanying release of the **Comments** premium plugin. + +**Comments** includes the following fix. + +==== Clicking the reply button triggered an editor blur event +// #TINYMCE-12236 + +Previously, selecting the reply button on a comment thread, such as *1 reply*, could cause the editor to fire a `+blur+` event, even though the user was still working within the editor. Expanding the replies re-rendered the comment, and because the focused element was removed during the re-render, focus fell back to the document body instead of remaining within the editor. The editor interpreted this loss of focus as the user leaving the editor entirely. Applications that rely on the `+blur+` event to detect when editing has finished could behave incorrectly. + +In {productname} {release-version}, the Comments plugin preserves editor focus when expanding replies. The editor no longer fires an unexpected `+blur+` event when the reply button is selected. + +For information on the **Comments** plugin, see: xref:introduction-to-tiny-comments.adoc[Comments]. + === TinyMCE AI The {productname} {release-version} release includes an accompanying release of the **TinyMCE AI** premium plugin. From 5d8898e2ee18fdebb10320ebf112527ccd9f29a3 Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Tue, 14 Jul 2026 12:56:21 +1000 Subject: [PATCH 06/16] Docs: TINYDOC-3528 - Double tooltips appeared on tags in the prompt context in Safari (#4270) --- modules/ROOT/pages/8.8.0-release-notes.adoc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/ROOT/pages/8.8.0-release-notes.adoc b/modules/ROOT/pages/8.8.0-release-notes.adoc index 0248a8a2a0..214f86acf9 100644 --- a/modules/ROOT/pages/8.8.0-release-notes.adoc +++ b/modules/ROOT/pages/8.8.0-release-notes.adoc @@ -90,7 +90,14 @@ For information on the **Comments** plugin, see: xref:introduction-to-tiny-comme The {productname} {release-version} release includes an accompanying release of the **TinyMCE AI** premium plugin. -**TinyMCE AI** includes the following fix. +**TinyMCE AI** includes the following fixes. + +==== Double tooltips appeared on tags in the prompt context in Safari +// #TINYMCE-14485 + +Previously, in Safari, hovering over the context source tags in the AI Chat prompt could display duplicated tooltips, and a tooltip could appear even when the tag text was not truncated. The tags were missing the attribute that prevents tooltip duplication in Safari. + +In {productname} {release-version}, the context source tags include the attribute that resolves Safari tooltip duplication. Each tag now shows a single tooltip, and only when its text is truncated. ==== The TinyMCE AI plugin now ignores non-string values returned by `tinymceai_tool_data_callback` // #TINYMCE-14525 From 7328ddaed65e9bc9e5237e399aa92833b851b85a Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Tue, 14 Jul 2026 13:17:31 +1000 Subject: [PATCH 07/16] TINYDOC-3528: The cursor could be placed at the start of a list item instead of the clicked position (#4269) * Docs: TINYDOC-3528 - The cursor could be placed at the start of a list item instead of the clicked position * Docs: TINYDOC-3528 - Link the upstream Chromium issue in the list-item cursor fix note * Docs: TINYDOC-3528 - Clarify the list item cursor bug affects clicks after the text ends --- modules/ROOT/pages/8.8.0-release-notes.adoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/ROOT/pages/8.8.0-release-notes.adoc b/modules/ROOT/pages/8.8.0-release-notes.adoc index 214f86acf9..5a3a2a0b00 100644 --- a/modules/ROOT/pages/8.8.0-release-notes.adoc +++ b/modules/ROOT/pages/8.8.0-release-notes.adoc @@ -211,6 +211,13 @@ Welcome actions are configured with the new xref:tinymceai.adoc#tinymceai_chat_w // CCFR here. +=== The cursor could be placed at the start of a list item instead of the clicked position +// #TINYMCE-14490 + +Previously, in Chromium-based browsers such as Chrome and Edge, clicking within a list item after the end of its text — for example, in the empty space to the right of the line — could place the cursor at the start of the item instead of at the end of the line. Clicking directly within a list item's text was not affected. This behavior originates from a known link:https://issues.chromium.org/issues/40767343[Chromium browser issue]. + +In {productname} {release-version}, {productname} detects this browser behavior and corrects the cursor position. Clicking within these list items now places the cursor at the expected position. + [[security-fixes]] == Security fixes From b90ea980ae2f238fd6178f51abbde1da8438bc9b Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Tue, 14 Jul 2026 13:52:53 +1000 Subject: [PATCH 08/16] TINYDOC-3528: Clicking anchor links with special characters could throw a querySelectorAll error (#4268) * Docs: TINYDOC-3528 - Clicking anchor links with special characters could throw a querySelectorAll error * Docs: TINYDOC-3528 - Expand querySelectorAll anchor fix note with error message and full fix scope --- modules/ROOT/pages/8.8.0-release-notes.adoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/ROOT/pages/8.8.0-release-notes.adoc b/modules/ROOT/pages/8.8.0-release-notes.adoc index 5a3a2a0b00..2b60280328 100644 --- a/modules/ROOT/pages/8.8.0-release-notes.adoc +++ b/modules/ROOT/pages/8.8.0-release-notes.adoc @@ -211,6 +211,13 @@ Welcome actions are configured with the new xref:tinymceai.adoc#tinymceai_chat_w // CCFR here. +=== Clicking anchor links with special characters could throw a `+querySelectorAll+` error +// #TINYMCE-8784 + +Previously, clicking an anchor link whose href contained special characters, such as the semicolons common in Google Web Toolkit (GWT) place tokens like `+#!placetoken;param1=value1;param2=value2+`, threw a `+querySelectorAll+` syntax error: `+Uncaught SyntaxError: Failed to execute 'querySelectorAll' on 'Document': '...' is not a valid selector+`. This occurred both in read-only mode and when using the Link plugin *Open link* feature through the toolbar button, the context menu, and the Alt+Enter keyboard shortcut. The error appeared in the console and prevented navigation to the target bookmark. + +In {productname} {release-version}, anchor href values are escaped with `+CSS.escape+` before they are used as `+querySelectorAll+` selectors, so all ASCII special characters in an href are handled. Clicking anchor links with special characters no longer throws an error, and the editor scrolls to the target bookmark across different URL fragment formats. + === The cursor could be placed at the start of a list item instead of the clicked position // #TINYMCE-14490 From 9d97b187ef077e4f30a18f8c1c9b2ef0f17e6158 Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Tue, 14 Jul 2026 13:59:05 +1000 Subject: [PATCH 09/16] TINYDOC-3528: Added the aria-valuenow, aria-valuemin, and aria-valuemax attributes to the editor resize handle when resizing vertically (#4265) * Docs: TINYDOC-3528 - Added the aria-valuenow, aria-valuemin, and aria-valuemax attributes to the editor resize handle when resizing vertically * Docs: TINYDOC-3528 - Link WAI-ARIA separator spec and document aria-valuemax fallback in resize handle note --- modules/ROOT/pages/8.8.0-release-notes.adoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/ROOT/pages/8.8.0-release-notes.adoc b/modules/ROOT/pages/8.8.0-release-notes.adoc index 2b60280328..cbaac40d1a 100644 --- a/modules/ROOT/pages/8.8.0-release-notes.adoc +++ b/modules/ROOT/pages/8.8.0-release-notes.adoc @@ -153,6 +153,13 @@ For information on using Enhanced Skins & Icon Packs, see: xref:enhanced-skins-a // CCFR here. +=== Added the `+aria-valuenow+`, `+aria-valuemin+`, and `+aria-valuemax+` attributes to the editor resize handle when resizing vertically +// #TINYMCE-14493 + +Previously, the editor resize handle did not expose the Accessible Rich Internet Applications (ARIA) value attributes recommended for the link:https://www.w3.org/TR/wai-aria/#separator[`+separator+` role]. Automated accessibility scanners reported this as a specification violation on the resize handle. + +In {productname} {release-version}, the resize handle exposes the `+aria-valuenow+`, `+aria-valuemin+`, and `+aria-valuemax+` attributes when the editor is configured for vertical resizing, which is the default `+resize: true+` behavior. `+aria-valuenow+` reports the current editor height, `+aria-valuemin+` reflects the `+min_height+` option, and `+aria-valuemax+` reflects the `+max_height+` option, or the current height plus the 20px keyboard resize step when `+max_height+` is not set. Editors configured for two-dimensional resizing with `+resize: 'both'+` are unchanged, because no recommended accessible pattern currently exists for two-dimensional resize handles. + === The {productname} AI chat sidebar now shows only one tooltip at a time // #TINYMCE-14507 From 005f2815d66d384ca1de49b2af3d4e69bc0a19c7 Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Tue, 14 Jul 2026 14:01:44 +1000 Subject: [PATCH 10/16] Docs: TINYDOC-3528 - Opening table properties on a nested table could edit the wrong table (#4263) --- modules/ROOT/pages/8.8.0-release-notes.adoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/ROOT/pages/8.8.0-release-notes.adoc b/modules/ROOT/pages/8.8.0-release-notes.adoc index cbaac40d1a..aaac89072e 100644 --- a/modules/ROOT/pages/8.8.0-release-notes.adoc +++ b/modules/ROOT/pages/8.8.0-release-notes.adoc @@ -218,6 +218,13 @@ Welcome actions are configured with the new xref:tinymceai.adoc#tinymceai_chat_w // CCFR here. +=== Opening table properties on a nested table could edit the wrong table +// #TINYMCE-13767 + +Previously, when a table was nested inside another table, opening the table properties dialog for the outer table could display and edit the properties of the inner table instead. In Chrome and Edge, right-clicking near the left edge of a cell and selecting *Table properties* resolved to the nested table, so the settings shown did not match the selected table. This made nested tables confusing and error prone to edit. + +In {productname} {release-version}, the table properties dialog determines the target table by starting from the selected cell and finding the table that directly contains it. The dialog now reliably targets the table currently being edited, and property changes apply to the intended table. + === Clicking anchor links with special characters could throw a `+querySelectorAll+` error // #TINYMCE-8784 From a4ce3a3a40e74dcec61a00a196a6a75e339756e8 Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Tue, 14 Jul 2026 14:41:40 +1000 Subject: [PATCH 11/16] Docs: TINYDOC-3528 - Updated the bundled DOMPurify dependency to the latest version (#4264) --- modules/ROOT/pages/8.8.0-release-notes.adoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/ROOT/pages/8.8.0-release-notes.adoc b/modules/ROOT/pages/8.8.0-release-notes.adoc index aaac89072e..b365483e8f 100644 --- a/modules/ROOT/pages/8.8.0-release-notes.adoc +++ b/modules/ROOT/pages/8.8.0-release-notes.adoc @@ -153,6 +153,13 @@ For information on using Enhanced Skins & Icon Packs, see: xref:enhanced-skins-a // CCFR here. +=== Updated the bundled DOMPurify dependency to the latest version +// #TINYMCE-14556 + +Previously, {productname} bundled an older version of the DOMPurify sanitization library. Although {productname} was not affected by the published DOMPurify advisories, because they relate to DOMPurify options that {productname} does not use, the outdated version could be flagged by automated security scanners. + +In {productname} {release-version}, DOMPurify has been updated to the latest version. This resolves the scanner warnings without changing {productname}'s sanitization behavior. + === Added the `+aria-valuenow+`, `+aria-valuemin+`, and `+aria-valuemax+` attributes to the editor resize handle when resizing vertically // #TINYMCE-14493 From 32f02bb050847ad8c92ea4087caabe6cf99ec7c7 Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Tue, 14 Jul 2026 14:41:57 +1000 Subject: [PATCH 12/16] Docs: TINYDOC-3528 - The misspelled word highlight disappeared when pressing Enter to create a new line (#4266) --- modules/ROOT/pages/8.8.0-release-notes.adoc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/modules/ROOT/pages/8.8.0-release-notes.adoc b/modules/ROOT/pages/8.8.0-release-notes.adoc index b365483e8f..269e172912 100644 --- a/modules/ROOT/pages/8.8.0-release-notes.adoc +++ b/modules/ROOT/pages/8.8.0-release-notes.adoc @@ -71,6 +71,21 @@ The {productname} {release-version} release includes an accompanying release of For information on the **** plugin, see: xref:.adoc[]. +=== Spell Checker + +The {productname} {release-version} release includes an accompanying release of the **Spell Checker** premium plugin. + +**Spell Checker** includes the following fix. + +==== The misspelled word highlight disappeared when pressing Enter to create a new line +// #TINYMCE-12934 + +Previously, deleting the last letter of a misspelled word with the *Backspace* key and then pressing *Enter* to start a new line removed the red highlight from the word, even though the word remained misspelled. The Spell Checker plugin did not re-check the affected line after the new block was created, so the word appeared as though it were spelled correctly. + +In {productname} {release-version}, the Spell Checker plugin re-checks both the new line and the previous line after a new block is created. Words that remain misspelled keep their highlighting. + +For information on the **Spell Checker** plugin, see: xref:introduction-to-tiny-spellchecker.adoc[Spell Checker]. + === Comments The {productname} {release-version} release includes an accompanying release of the **Comments** premium plugin. From c8c3afbbb3859dbc379d7b78ac7973072a5b955e Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Wed, 15 Jul 2026 09:34:00 +1000 Subject: [PATCH 13/16] TINYDOC-3528: Add changelog. --- modules/ROOT/pages/changelog.adoc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/ROOT/pages/changelog.adoc b/modules/ROOT/pages/changelog.adoc index 780107992d..14c77404ae 100644 --- a/modules/ROOT/pages/changelog.adoc +++ b/modules/ROOT/pages/changelog.adoc @@ -6,7 +6,17 @@ NOTE: This is the {productname} Community version changelog. For information abo == xref:8.8.0-release-notes.adoc[8.8.0 - 2026-07-15] -//TODO +### Improved +* Added the `aria-valuenow`, `aria-valuemin`, and `aria-valuemax` attributes to the editor resize handle when resizing vertically. +// #TINYMCE-14493 + +### Fixed +* Opening table properties on a nested table could edit the wrong table. +// #TINYMCE-13767 +* Clicking anchor links with special characters like semicolons in readonly mode or using the link plugin was throwing a querySelectorAll syntax error. +// #TINYMCE-8784 +* Worked around an edge case of a Chromium bug where clicking on the right of an `li` could fail. +// #TINYMCE-14490 == xref:8.7.0-release-notes.adoc[8.7.0 - 2026-06-30] From 7d603e5a91d4c2b82badd7c3660f3deb1cbe24a4 Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Wed, 15 Jul 2026 09:40:16 +1000 Subject: [PATCH 14/16] TINYDOC-3528: Template cleanup for release preperation. --- modules/ROOT/nav.adoc | 10 -- modules/ROOT/pages/8.8.0-release-notes.adoc | 169 ++------------------ 2 files changed, 9 insertions(+), 170 deletions(-) diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 8a1ffb1aed..706cb77c7e 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -422,20 +422,10 @@ ** xref:release-notes.adoc[Release notes for {productname}] *** {productname} 8.8.0 **** xref:8.8.0-release-notes.adoc#overview[Overview] -**** xref:8.8.0-release-notes.adoc#new-premium-plugin[New Premium Plugin] -**** xref:8.8.0-release-notes.adoc#new-open-source-plugin[New Open Source Plugin] **** xref:8.8.0-release-notes.adoc#accompanying-premium-plugin-changes[Accompanying Premium Plugin changes] -**** xref:8.8.0-release-notes.adoc#accompanying-premium-plugin-end-of-life-announcement[Accompanying Premium Plugin end-of-life announcement] -**** xref:8.8.0-release-notes.adoc#accompanying-open-source-plugin-end-of-life-announcement[Accompanying Open Source Plugin end-of-life announcement] -**** xref:8.8.0-release-notes.adoc#accompanying-enhanced-skins-and-icon-packs-changes[Accompanying Enhanced Skins & Icon Packs changes] **** xref:8.8.0-release-notes.adoc#improvements[Improvements] **** xref:8.8.0-release-notes.adoc#additions[Additions] -**** xref:8.8.0-release-notes.adoc#changes[Changes] -**** xref:8.8.0-release-notes.adoc#removed[Removed] **** xref:8.8.0-release-notes.adoc#bug-fixes[Bug fixes] -**** xref:8.8.0-release-notes.adoc#security-fixes[Security fixes] -**** xref:8.8.0-release-notes.adoc#deprecated[Deprecated] -**** xref:8.8.0-release-notes.adoc#known-issues[Known issues] *** {productname} 8.7.0 **** xref:8.7.0-release-notes.adoc#overview[Overview] **** xref:8.7.0-release-notes.adoc#accompanying-premium-plugin-changes[Accompanying Premium Plugin changes] diff --git a/modules/ROOT/pages/8.8.0-release-notes.adoc b/modules/ROOT/pages/8.8.0-release-notes.adoc index 269e172912..34e14521e2 100644 --- a/modules/ROOT/pages/8.8.0-release-notes.adoc +++ b/modules/ROOT/pages/8.8.0-release-notes.adoc @@ -13,45 +13,10 @@ include::partial$misc/admon-releasenotes-for-stable.adoc[] {productname} {release-version} was released for {enterpriseversion} and {cloudname} on Wednesday, July 15^th^, 2026. These release notes provide an overview of the changes for {productname} {release-version}, including: -// Remove sections and section boilerplates as necessary. -// Pluralise as necessary or remove the placeholder plural marker. -* xref:new-premium-plugin[New Premium plugin] -* xref:new-open-source-plugin[New Open Source plugin] * xref:accompanying-premium-plugin-changes[Accompanying Premium plugin changes] -* xref:accompanying-premium-plugin-end-of-life-announcement[Accompanying Premium plugin end-of-life announcement] -* xref:accompanying-open-source-plugin-end-of-life-announcement[Accompanying open source plugin end-of-life-announcement] -* xref:accompanying-enhanced-skins-and-icon-packs-changes[Accompanying Enhanced Skins & Icon Packs changes] * xref:improvements[Improvements] * xref:additions[Additions] -* xref:changes[Changes] * xref:bug-fixes[Bug fixes] -* xref:security-fixes[Security fixes] -* xref:deprecated[Deprecated] -* xref:known-issues[Known issues] - - -[[new-premium-plugin]] -== New Premium plugin - -The following new Premium plugin was released alongside {productname} {release-version}. - -=== - -The new Premium plugin, **** // description here. - -For information on the **** plugin, see xref:.adoc[]. - - -[[new-open-source-plugin]] -== New Open Source plugin - -The following new Open Source plugin was released alongside {productname} {release-version}. - -=== - -The new open source plugin, **** // description here. - -For information on the **** plugin, see xref:.adoc[]. [[accompanying-premium-plugin-changes]] @@ -59,18 +24,6 @@ For information on the **** plugin, see xref: - -The {productname} {release-version} release includes an accompanying release of the **** premium plugin. - -**** includes the following . - -==== - -// CCFR here. - -For information on the **** plugin, see: xref:.adoc[]. - === Spell Checker The {productname} {release-version} release includes an accompanying release of the **Spell Checker** premium plugin. @@ -114,59 +67,27 @@ Previously, in Safari, hovering over the context source tags in the AI Chat prom In {productname} {release-version}, the context source tags include the attribute that resolves Safari tooltip duplication. Each tag now shows a single tooltip, and only when its text is truncated. -==== The TinyMCE AI plugin now ignores non-string values returned by `tinymceai_tool_data_callback` +==== The {productname} AI plugin now ignores non-string values returned by `tinymceai_tool_data_callback` // #TINYMCE-14525 Previously, the xref:tinymceai.adoc#tinymceai_tool_data_callback[`+tinymceai_tool_data_callback+`] callback could return a value that was not a string, such as a number. The **TinyMCE AI** plugin then displayed that value directly in the Chat sidebar status message, even though the option documents a return type of `+string | undefined+`. As a result, the status message shown while a Model Context Protocol (MCP) tool ran did not make sense. In {productname} {release-version}, the **TinyMCE AI** plugin validates the value returned by the callback. When the callback returns a value that is not a string, the plugin ignores that value, treats the result as `+undefined+`, and shows the default status message instead. -For information on the **TinyMCE AI** plugin, see: xref:tinymceai.adoc[TinyMCE AI]. - - -[[accompanying-premium-plugin-end-of-life-announcement]] -== Accompanying Premium plugin end-of-life announcement - -The following Premium plugin has been announced as reaching its end-of-life: - -=== - -{productname}’s xref:.adoc[] plugin will be deactivated on
, , and is no longer available for purchase. - - -[[accompanying-open-source-plugin-end-of-life-announcement]] -== Accompanying open source plugin end-of-life announcement - -The following open source plugin has been announced as reaching its end-of-life: - -=== - -{productname}’s xref:.adoc[] plugin will be deactivated on
, , and is no longer available for purchase. - - -[[accompanying-enhanced-skins-and-icon-packs-changes]] -== Accompanying Enhanced Skins & Icon Packs changes - -The {productname} {release-version} release includes an accompanying release of the **Enhanced Skins & Icon Packs**. - -=== Enhanced Skins & Icon Packs +=== The {productname} AI chat sidebar now shows only one tooltip at a time +// #TINYMCE-14507 -The **Enhanced Skins & Icon Packs** release includes the following updates: +Previously, each button in the {productname} AI chat sidebar managed its tooltip independently, with no coordination between them. Opening one tooltip did not close a tooltip that was already visible, so more than one tooltip could remain on screen at the same time. -The **Enhanced Skins & Icon Packs** were rebuilt to pull in the changes also incorporated into the default {productname} {release-version} skin, Oxide. +In {productname} {release-version}, opening a tooltip in the {productname} AI chat sidebar closes any other open tooltip, so the chat sidebar shows only one tooltip at a time. This keeps the interface clear and consistent. -For information on using Enhanced Skins & Icon Packs, see: xref:enhanced-skins-and-icon-packs.adoc[Enhanced Skins & Icon Packs]. +For information on the **TinyMCE AI** plugin, see: xref:tinymceai.adoc[TinyMCE AI]. [[improvements]] == Improvements -{productname} {release-version} also includes the following improvement: - -=== -// #TINY-vwxyz1 - -// CCFR here. +{productname} {release-version} also includes the following improvements: === Updated the bundled DOMPurify dependency to the latest version // #TINYMCE-14556 @@ -182,23 +103,11 @@ Previously, the editor resize handle did not expose the Accessible Rich Internet In {productname} {release-version}, the resize handle exposes the `+aria-valuenow+`, `+aria-valuemin+`, and `+aria-valuemax+` attributes when the editor is configured for vertical resizing, which is the default `+resize: true+` behavior. `+aria-valuenow+` reports the current editor height, `+aria-valuemin+` reflects the `+min_height+` option, and `+aria-valuemax+` reflects the `+max_height+` option, or the current height plus the 20px keyboard resize step when `+max_height+` is not set. Editors configured for two-dimensional resizing with `+resize: 'both'+` are unchanged, because no recommended accessible pattern currently exists for two-dimensional resize handles. -=== The {productname} AI chat sidebar now shows only one tooltip at a time -// #TINYMCE-14507 - -Previously, each button in the {productname} AI chat sidebar managed its tooltip independently, with no coordination between them. Opening one tooltip did not close a tooltip that was already visible, so more than one tooltip could remain on screen at the same time. - -In {productname} {release-version}, opening a tooltip in the {productname} AI chat sidebar closes any other open tooltip, so the chat sidebar shows only one tooltip at a time. This keeps the interface clear and consistent. - [[additions]] == Additions -{productname} {release-version} also includes the following addition: - -=== -// #TINY-vwxyz1 - -// CCFR here. +{productname} {release-version} also includes the following addition: === Added configurable welcome actions to the TinyMCE AI Chat empty state // #TINYMCE-14508 @@ -208,37 +117,10 @@ In {productname} {release-version}, the TinyMCE AI Chat sidebar can display a co Welcome actions are configured with the new xref:tinymceai.adoc#tinymceai_chat_welcome_actions[`+tinymceai_chat_welcome_actions+`] option and are disabled by default. -[[changes]] -== Changes - -{productname} {release-version} also includes the following change: - -=== -// #TINY-vwxyz1 - -// CCFR here. - - -[[removed]] -== Removed - -{productname} {release-version} also includes the following removal: - -=== -// #TINY-vwxyz1 - -// CCFR here. - - [[bug-fixes]] == Bug fixes -{productname} {release-version} also includes the following bug fix: - -=== -// #TINY-vwxyz1 - -// CCFR here. +{productname} {release-version} also includes the following bug fixes: === Opening table properties on a nested table could edit the wrong table // #TINYMCE-13767 @@ -261,36 +143,3 @@ Previously, in Chromium-based browsers such as Chrome and Edge, clicking within In {productname} {release-version}, {productname} detects this browser behavior and corrects the cursor position. Clicking within these list items now places the cursor at the expected position. - -[[security-fixes]] -== Security fixes - -{productname} {release-version} includes : - -=== -// #TINY-vwxyz1 - -// CCFR here. - - -[[deprecated]] -== Deprecated - -{productname} {release-version} includes the following deprecation: - -=== The `` configuration property, ``, has been deprecated - -// placeholder here. - - -[[known-issues]] -== Known issues - -This section describes issues that users of {productname} {release-version} may encounter and possible workarounds for these issues. - -There known issue in {productname} {release-version}. - -=== -// #TINY-vwxyz1 - -// CCFR here. From 9cefc48afbe6d2624e350d44f18ce48b6e7d7b6e Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Wed, 15 Jul 2026 10:24:47 +1000 Subject: [PATCH 15/16] TINYDOC-3528: Move heading into premium section. --- modules/ROOT/nav.adoc | 1 - modules/ROOT/pages/8.8.0-release-notes.adoc | 23 +++++++-------------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 706cb77c7e..470e7a3a4e 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -424,7 +424,6 @@ **** xref:8.8.0-release-notes.adoc#overview[Overview] **** xref:8.8.0-release-notes.adoc#accompanying-premium-plugin-changes[Accompanying Premium Plugin changes] **** xref:8.8.0-release-notes.adoc#improvements[Improvements] -**** xref:8.8.0-release-notes.adoc#additions[Additions] **** xref:8.8.0-release-notes.adoc#bug-fixes[Bug fixes] *** {productname} 8.7.0 **** xref:8.7.0-release-notes.adoc#overview[Overview] diff --git a/modules/ROOT/pages/8.8.0-release-notes.adoc b/modules/ROOT/pages/8.8.0-release-notes.adoc index 34e14521e2..0a646a3ffc 100644 --- a/modules/ROOT/pages/8.8.0-release-notes.adoc +++ b/modules/ROOT/pages/8.8.0-release-notes.adoc @@ -15,7 +15,6 @@ include::partial$misc/admon-releasenotes-for-stable.adoc[] * xref:accompanying-premium-plugin-changes[Accompanying Premium plugin changes] * xref:improvements[Improvements] -* xref:additions[Additions] * xref:bug-fixes[Bug fixes] @@ -58,7 +57,14 @@ For information on the **Comments** plugin, see: xref:introduction-to-tiny-comme The {productname} {release-version} release includes an accompanying release of the **TinyMCE AI** premium plugin. -**TinyMCE AI** includes the following fixes. +**TinyMCE AI** includes the following addition and fixes. + +=== Added configurable welcome actions to the TinyMCE AI Chat empty state +// #TINYMCE-14508 + +In {productname} {release-version}, the TinyMCE AI Chat sidebar can display a configurable set of welcome actions in its empty state, giving users suggested starting points instead of a blank prompt. Each item can show descriptive text or a button that runs a Quick Action, sends a chat prompt, or runs another editor command. Welcome actions appear before the first request is sent and are hidden once a conversation begins. + +Welcome actions are configured with the new xref:tinymceai.adoc#tinymceai_chat_welcome_actions[`+tinymceai_chat_welcome_actions+`] option and are disabled by default. ==== Double tooltips appeared on tags in the prompt context in Safari // #TINYMCE-14485 @@ -104,19 +110,6 @@ Previously, the editor resize handle did not expose the Accessible Rich Internet In {productname} {release-version}, the resize handle exposes the `+aria-valuenow+`, `+aria-valuemin+`, and `+aria-valuemax+` attributes when the editor is configured for vertical resizing, which is the default `+resize: true+` behavior. `+aria-valuenow+` reports the current editor height, `+aria-valuemin+` reflects the `+min_height+` option, and `+aria-valuemax+` reflects the `+max_height+` option, or the current height plus the 20px keyboard resize step when `+max_height+` is not set. Editors configured for two-dimensional resizing with `+resize: 'both'+` are unchanged, because no recommended accessible pattern currently exists for two-dimensional resize handles. -[[additions]] -== Additions - -{productname} {release-version} also includes the following addition: - -=== Added configurable welcome actions to the TinyMCE AI Chat empty state -// #TINYMCE-14508 - -In {productname} {release-version}, the TinyMCE AI Chat sidebar can display a configurable set of welcome actions in its empty state, giving users suggested starting points instead of a blank prompt. Each item can show descriptive text or a button that runs a Quick Action, sends a chat prompt, or runs another editor command. Welcome actions appear before the first request is sent and are hidden once a conversation begins. - -Welcome actions are configured with the new xref:tinymceai.adoc#tinymceai_chat_welcome_actions[`+tinymceai_chat_welcome_actions+`] option and are disabled by default. - - [[bug-fixes]] == Bug fixes From adb7b01ae91d0c4aa49c0ab26fd404c785270199 Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Wed, 15 Jul 2026 12:52:05 +1000 Subject: [PATCH 16/16] TINYDOC-3528: api-version bump. --- .api-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.api-version b/.api-version index c0bcaebe8f..cfc27b4fab 100644 --- a/.api-version +++ b/.api-version @@ -1 +1 @@ -8.7.0 \ No newline at end of file +8.8.0 \ No newline at end of file