Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
45e4a89
TINYDOC-3528 - Populate TinyMCE 8.8.0 release date
kemister85 Jul 8, 2026
d0b554e
Docs: TINYDOC-3528 - The TinyMCE AI plugin now ignores non-string val…
kemister85 Jul 13, 2026
3a58e13
Docs: TINYDOC-3528 - The TinyMCE AI chat sidebar now shows only one t…
kemister85 Jul 13, 2026
a843efa
TINYDOC-3528: Added configurable welcome actions to the TinyMCE AI Ch…
kemister85 Jul 13, 2026
cfb4ee7
TINYDOC-3528: Clicking the reply button triggered an editor blur even…
kemister85 Jul 14, 2026
5d8898e
Docs: TINYDOC-3528 - Double tooltips appeared on tags in the prompt c…
kemister85 Jul 14, 2026
7328dda
TINYDOC-3528: The cursor could be placed at the start of a list item …
kemister85 Jul 14, 2026
b90ea98
TINYDOC-3528: Clicking anchor links with special characters could thr…
kemister85 Jul 14, 2026
9d97b18
TINYDOC-3528: Added the aria-valuenow, aria-valuemin, and aria-valuem…
kemister85 Jul 14, 2026
005f281
Docs: TINYDOC-3528 - Opening table properties on a nested table could…
kemister85 Jul 14, 2026
a4ce3a3
Docs: TINYDOC-3528 - Updated the bundled DOMPurify dependency to the …
kemister85 Jul 14, 2026
32f02bb
Docs: TINYDOC-3528 - The misspelled word highlight disappeared when p…
kemister85 Jul 14, 2026
c8c3afb
TINYDOC-3528: Add changelog.
kemister85 Jul 14, 2026
7d603e5
TINYDOC-3528: Template cleanup for release preperation.
kemister85 Jul 14, 2026
9cefc48
TINYDOC-3528: Move heading into premium section.
kemister85 Jul 15, 2026
adb7b01
TINYDOC-3528: api-version bump.
kemister85 Jul 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .api-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8.7.0
8.8.0
8 changes: 8 additions & 0 deletions modules/ROOT/examples/live-demos/tinymceai/example.js
Original file line number Diff line number Diff line change
Expand Up @@ -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: '<p>Welcome to TinyMCE AI. Pick an action below or type your own prompt.</p>',
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())
Expand Down
8 changes: 8 additions & 0 deletions modules/ROOT/examples/live-demos/tinymceai/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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: '<p>Welcome to TinyMCE AI. Pick an action below or type your own prompt.</p>',
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',
Expand Down
11 changes: 0 additions & 11 deletions modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -422,20 +422,9 @@
** 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<s>[New Premium Plugin<s>]
**** xref:8.8.0-release-notes.adoc#new-open-source-plugin<s>[New Open Source Plugin<s>]
**** 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]
Expand Down
179 changes: 61 additions & 118 deletions modules/ROOT/pages/8.8.0-release-notes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,185 +11,128 @@ include::partial$misc/admon-releasenotes-for-stable.adoc[]
[[overview]]
== Overview

{productname} {release-version} was released for {enterpriseversion} and {cloudname} on <weekday>, <month> <DD>^<st|nd|rd|th>^, <YYYY>. 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.
* xref:new-premium-plugin<s>[New Premium plugin<s>]
* xref:new-open-source-plugin<s>[New Open Source plugin<s>]
* 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<s>]]
== New Premium plugin<s>

The following new Premium plugin was released alongside {productname} {release-version}.

=== <Premium plugin name>

The new Premium plugin, **<Premium plugin name>** // description here.

For information on the **<Premium plugin name>** plugin, see xref:<plugincode>.adoc[<Premium plugin name>].


[[new-open-source-plugin]]
== New Open Source plugin

The following new Open Source plugin was released alongside {productname} {release-version}.

=== <Open source plugin name>

The new open source plugin, **<Open source plugin name>** // description here.

For information on the **<Open source plugin name>** plugin, see xref:<plugincode>.adoc[<Open source plugin name>].


[[accompanying-premium-plugin-changes]]
== Accompanying Premium plugin changes

The following premium plugin updates were released alongside {productname} {release-version}.

=== <Premium plugin name 1> <Premium plugin name 1 version>

The {productname} {release-version} release includes an accompanying release of the **<Premium plugin name 1>** premium plugin.

**<Premium plugin name 1>** <Premium plugin name 1 version> includes the following <fixes, changes, improvements>.
=== Spell Checker

==== <Premium plugin name 1 change 1>
The {productname} {release-version} release includes an accompanying release of the **Spell Checker** premium plugin.

// CCFR here.
**Spell Checker** includes the following fix.

For information on the **<Premium plugin name 1>** plugin, see: xref:<plugincode>.adoc[<Premium plugin name 1>].
==== 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.

[[accompanying-premium-plugin-end-of-life-announcement]]
== Accompanying Premium plugin end-of-life announcement
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.

The following Premium plugin has been announced as reaching its end-of-life:
For information on the **Spell Checker** plugin, see: xref:introduction-to-tiny-spellchecker.adoc[Spell Checker].

=== <Premium plugin name eol>
=== Comments

{productname}’s xref:<plugincode>.adoc[<Premium plugin name eol>] plugin will be deactivated on <month> <DD>, <YYYY>, and is no longer available for purchase.
The {productname} {release-version} release includes an accompanying release of the **Comments** premium plugin.

**Comments** includes the following fix.

[[accompanying-open-source-plugin-end-of-life-announcement]]
== Accompanying open source plugin end-of-life announcement
==== Clicking the reply button triggered an editor blur event
// #TINYMCE-12236

The following open source plugin has been announced as reaching its end-of-life:
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.

=== <Open source plugin name eol>
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.

{productname}’s xref:<plugincode>.adoc[<Open source plugin name eol>] plugin will be deactivated on <month> <DD>, <YYYY>, and is no longer available for purchase.
For information on the **Comments** plugin, see: xref:introduction-to-tiny-comments.adoc[Comments].

=== TinyMCE AI

[[accompanying-enhanced-skins-and-icon-packs-changes]]
== Accompanying Enhanced Skins & Icon Packs changes
The {productname} {release-version} release includes an accompanying release of the **TinyMCE AI** premium plugin.

The {productname} {release-version} release includes an accompanying release of the **Enhanced Skins & Icon Packs**.
**TinyMCE AI** includes the following addition and fixes.

=== Enhanced Skins & Icon Packs
=== Added configurable welcome actions to the TinyMCE AI Chat empty state
// #TINYMCE-14508

The **Enhanced Skins & Icon Packs** release includes the following updates:
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.

The **Enhanced Skins & Icon Packs** were rebuilt to pull in the changes also incorporated into the default {productname} {release-version} skin, Oxide.
Welcome actions are configured with the new xref:tinymceai.adoc#tinymceai_chat_welcome_actions[`+tinymceai_chat_welcome_actions+`] option and are disabled by default.

For information on using Enhanced Skins & Icon Packs, see: xref:enhanced-skins-and-icon-packs.adoc[Enhanced Skins & Icon Packs].
==== 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.

[[improvements]]
== Improvements

{productname} {release-version} also includes the following improvement<s>:

=== <TINY-vwxyz 1 changelog entry>
// #TINY-vwxyz1
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.

// CCFR here.
==== 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.

[[additions]]
== Additions
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.

{productname} {release-version} also includes the following addition<s>:
=== The {productname} AI chat sidebar now shows only one tooltip at a time
// #TINYMCE-14507

=== <TINY-vwxyz 1 changelog entry>
// #TINY-vwxyz1
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.

// CCFR here.
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 the **TinyMCE AI** plugin, see: xref:tinymceai.adoc[TinyMCE AI].

[[changes]]
== Changes

{productname} {release-version} also includes the following change<s>:
[[improvements]]
== Improvements

=== <TINY-vwxyz 1 changelog entry>
// #TINY-vwxyz1
{productname} {release-version} also includes the following improvements:

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

[[removed]]
== Removed
In {productname} {release-version}, DOMPurify has been updated to the latest version. This resolves the scanner warnings without changing {productname}'s sanitization behavior.

{productname} {release-version} also includes the following removal<s>:
=== Added the `+aria-valuenow+`, `+aria-valuemin+`, and `+aria-valuemax+` attributes to the editor resize handle when resizing vertically
// #TINYMCE-14493

=== <TINY-vwxyz 1 changelog entry>
// #TINY-vwxyz1
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.

// CCFR here.
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.


[[bug-fixes]]
== Bug fixes

{productname} {release-version} also includes the following bug fix<es>:

=== <TINY-vwxyz 1 changelog entry>
// #TINY-vwxyz1

// CCFR here.


[[security-fixes]]
== Security fixes

{productname} {release-version} includes <a fix | fixes for the following security issue<s>:

=== <TINY-vwxyz 1 changelog entry>
// #TINY-vwxyz1

// CCFR here.

{productname} {release-version} also includes the following bug fixes:

[[deprecated]]
== Deprecated
=== Opening table properties on a nested table could edit the wrong table
// #TINYMCE-13767

{productname} {release-version} includes the following deprecation<s>:
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.

=== The `<plugin>` configuration property, `<name>`, has been deprecated
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.

// placeholder 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.

[[known-issues]]
== Known issues
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.

This section describes issues that users of {productname} {release-version} may encounter and possible workarounds for these issues.
=== The cursor could be placed at the start of a list item instead of the clicked position
// #TINYMCE-14490

There <is one | are <number> known issue<s> in {productname} {release-version}.
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].

=== <TINY-vwxyz 1 changelog entry>
// #TINY-vwxyz1
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.

// CCFR here.
14 changes: 12 additions & 2 deletions modules/ROOT/pages/changelog.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,19 @@

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 - <YYYY-MM-DD>]
== 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]

Expand Down
Loading
Loading