Changes Report
tsdoc shared configuration
![]()
The default tsdoc configuration is now distributed in a dedicated package. See how-to use it in your packages.
Page Extra Attachment Tab honors versions
![]()
The Attachment tab located in the Page Extra area now honors versions: when viewing a version, it displays the attachments that existed in that version, at that time.
Jakarta Priority support
![]()
XWiki component API now supports jakarta.annotation.Priority. See Component Module for more details.
Improvements to the display of extension support plans
![]()
Extension support plans now display fields horizontally, and provide a link to the supported extension documentation page.
Notification Messages text format
![]()
An XWiki.widgets.Notification.textFormat() method is now available. It indicates how the text parameter is interpreted.
Callers can check for the presence of this method to decide whether to escape their input:
- When this method is available, the text parameter is treated as plain text and must not be escaped.
- When this method is missing (before 18.4.0RC1/17.10.9), the text parameter is interpreted as HTML and may need to be escaped.
The returned value is always the "plain" string.
Confirmation Box text content format
![]()
And XWiki.widgets.ConfirmationBox.textContentFormat() method is now available. It indicates how the text parameter is interpreted.
Callers can check for the presence of this method to decide whether to escape their input:
- When this method is available, the text parameter is treated as plain text and must not be escaped.
- When this method is missing (before 18.4.0RC1/17.10.9), the text parameter is interpreted as HTML and may need to be escaped.
The returned value is always the "plain" string.
PDF Export Optimization
![]()
We discovered that the code responsible for transforming external links to internal ones, when the target page is included in the export, was quite inefficient. We optimized that code, reducing the export time by up to 2 minutes for large exports of 2k print pages. See the PDF Export Application for more information.
Partial Binary Message Handler
![]()
If your WebSocket end-point needs to handle binary messages, you can now use the helper AbstractPartialBinaryMessageHandler:
session.addMessageHandler(new AbstractPartialBinaryMessageHandler(this.configuration.getMaxMessageSize())
{
@Override
public void onMessage(byte[] message)
{
// ...
}
});It collects and aggregates all the binary message parts, optionally allowing you to enforce an upper limit for the message size. See the WebSocket Integration module documentation for more information.
Instance Id REST Endpoint
![]()
A new /instanceId REST endpoint has been added to get the XWiki instance unique id.
New styles for LiveData table headers

LiveData table headers now have a more subtle and elegant style, closer to what LiveTables have.
Improved contrast on tree navigation

When navigating XWiki trees using a keyboard, the focused element will now have a focus ring instead of a slight highlight in background color.
Front-end links suggestions implementation
![]()
An implementation of the client-side links suggestion API is now available for XWiki, it is published in the @xwiki/platform-link-suggest-xwiki package.
Front-end hierarchy packages
![]()
The front-end package for the handling of pages hierarchy has been moved from cristal, as well as the XWiki specific implementation of the API.
Control DB ports in Docker distribution
![]()
It's now possible to control the DB port used by the XWiki Docker image.
Docker Test Improvement
![]()
Add the ability to install the XS Flavor and WAR, instead of generating a minimal XWiki instance. Useful, for example, inside XS Flavor Docker tests, or when developing a feature, if the dev wants to take screenshots with a full XS UI, while being inside the docker tests of a specific module.
Clarify original and target pages during replace dialog



When moving a child page to a location where there's already content, the popup form has been made clearer.
Disabled users not listed in User picker


When defining a "List of Users" property (e.g. in an AWM application), it's now possible to decide if disabled users will be proposed in the suggest picker or not. The default has changed for listing all users, to now listing only active users.
Annotation changes create minor revisions
![]()
Creating, modifying and deleting annotations now generate minor revisions, similar to what happens for comments (they used to create major revisions which was not consistent with comments).
Skip recycle bin when deleting pages
![]()
It's now possible to skip the recycle bin when deleting a page (or a translation of a page).