Caveat 🔥
These are the release notes of the upcoming release (pull requests merged to the main branch).
- ℹ️ this document is updated automatically by a bot (pr’s to categorize section)
- ℹ️ this document will be roughly updated manually once a week (put PRs + description to the right section)
- 🔥 We don’t guarantee stable APIs. They can still change until the official release
- 🔥 Integration against the upcoming release (currently
masterbranch) is at your own risk
PRs to Categorize
fix(deps): update dependency @livingdocs/framework from 32.10.2 to v32.10.3 (main)
fix(deps): update dependency @livingdocs/framework from 32.10.2 to v32.10.3 (main)
chore(deps): update aws-sdk from 3.916.0 to v3.917.0 (main) (minor)
Media center batch actions: add saving status + batch actions
Media center batch actions: improve multi select in enabling keyboard navigation
fix(deps): update dependency @livingdocs/framework from 32.10.1 to v32.10.2 (main)
fix(deps): update dependency @livingdocs/framework from 32.10.1 to v32.10.2 (main)
Run asset url patching on metadata and document before running publish hooks
Prevent error if task properties beforeLabel or afterLabel are not configured
li-image: Reintroduce accidentally removed default forreadOnlyShow task panel when opening document from task screen in new tab
chore(deps): update dependency mocha from 11.7.3 to v11.7.4 (main)
Prevent crashing server if a scheduled publication cannot be found
Remove in-text-linked=false from Retresco enrich URL when saving pods data
Display news agency screen search results in the order they were created
fix(deps): update dependency posthog-node from 5.8.8 to v5.9.1 (main)
fix(deps): update dependency on-change from 5.0.1 to v6 (main)
Disable auto reload on news agency screens when user loaded additional pages
fix(deps): update dependency sass from 1.93.1 to v1.93.2 (main)
chore(deps): update dependency eslint-plugin-jsdoc from 60.1.1 to v60.2.0 (main)
fix(deps): update dependency sass from 1.93.0 to v1.93.1 (main)
fix(deps): update dependency posthog-node from 5.8.6 to v5.8.8 (main)
Index documents without locale in their projects default locale
fix(deps): update dependency sass from 1.92.1 to v1.93.0 (main)
fix(deps): update aws-sdk from 3.884.0 to v3.893.0 (main) (minor)
fix(deps): update dependency posthog-node from 5.8.4 to v5.8.6 (main)
fix(deps): update dependency sharp from 0.34.3 to v0.34.4 (main)
fix(deps): update dependency @livingdocs/framework from 32.10.0 to v32.10.1 (main)
chore(deps): update dependency puppeteer-core from 24.20.0 to v24.21.0 (main)
fix(deps): update dependency axios from 1.11.0 to 1.12.0 [security] (main)
chore(deps): update dependency eslint-plugin-jsdoc from 55.4.0 to v57 (main)
chore(deps): update dependency eslint-plugin-jsdoc from 55.1.2 to v55.4.0 (main)
Prevent upload center select all error when metadata config properties are undefined
fix(deps): update dependency @azure/identity from 4.11.1 to v4.11.2 (main)
chore(deps): update dependency eslint-plugin-jsdoc from 54.5.0 to v54.7.0 (main)
chore(deps): update dependency eslint from 9.34.0 to v9.35.0 (main)
fix(deps): update dependency pino from 9.9.2 to v9.9.4 (main)
Support setting migration sequence to 0 with documentApi.createV2
fix(deps): update dependency dedent from 1.6.0 to v1.7.0 (main)
fix(deps): update dependency posthog-node from 5.8.1 to v5.8.2 (main)
fix(deps): update dependency pino from 9.9.1 to v9.9.2 (main)
fix(deps): update dependency pino from 9.9.0 to v9.9.1 (main)
To get an overview about new functionality, read the Release Notes.
To learn about the necessary actions to update Livingdocs to release-2025-11, read on.
Attention: If you skipped one or more releases, please also check the release-notes of the skipped ones.
Webinar
- Feature Webinar Recording: TODO
- Feature Webinar Documentation: TODO
- Dev Webinar Recording: TODO
- Dev Webinar Slides: TODO
- Release Newsletter Subscription
System Requirements
Suggested
| Name | Version |
|---|---|
| Node | 22 |
| NPM | 10 |
| Postgres | 16 |
| Elasticsearch | 8.x |
| OpenSearch | 2.3.0 |
| Redis | 7 |
| Livingdocs Server Docker Image | livingdocs/server-base:22 |
| Livingdocs Editor Docker Image | livingdocs/editor-base:22 |
| Browser Support | Chrome >= 142, Edge >= 142, Firefox >= 144, Safari >= 26.0 |
Minimal
| Name | Version |
|---|---|
| Node | 20.19 |
| NPM | 10 |
| Postgres | 13 |
| Elasticsearch | 7.x |
| OpenSearch | 1 |
| Redis | 6.2 |
| Livingdocs Server Docker Image | livingdocs/server-base:20:10 |
| Livingdocs Editor Docker Image | livingdocs/editor-base:20:10 |
| Browser Support | Chrome >= 130, Edge >= 130, Firefox >= 132, Safari >= 18.1 |
Deployment
Before the deployment
No pre-deployment steps are required before rolling out this release.
Rollout deployment
Migrate the Postgres Database
No migrations are required for this release.
After the deployment
No post-deployment steps are required after rolling out this release.
Rollback
No rollback steps are required for this release.
Breaking Changes 🔥
Replaced News Agency Properties displayFilterOptionsSource and displayFilterOptionsCategory 🔥
The news agency project configuration properties newsAgency.screens[].displayFilterOptionsSource and newsAgency.screens[].displayFilterOptionsCategory have been replaced by new properties newsAgency.sources and newsAgency.categories, respectively (see Displaying Custom Values for News Agency Report Properties).
Removed Server Feature li-design-stats 🔥
Server feature li-design-stats, including its server API (designStatsApi.listDesigns), has been removed. In addition, the server API projectApi.getStats has also been removed. Please remove any usages of these APIs.
Removed Functions sql, insert, and begin of lib/db 🔥
- Function
require('@livingdocs/server/lib/db').sqlhas been removed. Please useliServer.db.sqlinstead. - Function
require('@livingdocs/server/lib/db').inserthas been removed. Please useliServer.db.insertinstead. - Function
require('@livingdocs/server/lib/db').beginhas been removed. Please useliServer.db.begininstead.
API documentApi.executeDocumentCommands Requires Parameter userId 🔥
Unpublishing documents with documentApi.executeDocumentCommands without providing a userId is no longer supported. Please provide a userId.
iMatrics Category Concepts Shown By Default 🔥
iMatrics concepts of type category are now shown by default. Previously, they were excluded unless ignoredConceptTypes: [] was set.
If you want to keep the existing behavior, please set ignoredConceptTypes: ['category'] in your li-imatrics-nlp-tags metadata configuration.
Deprecations
Simplified li-target-length and li-system-target-length UI Configuration
The following li-target-length and li-system-target-length UI configuration properties are deprecated and will be removed in release-2026-05:
ui.config.allowAnyNumberui.config.showExactCountCheckboxui.config.unit
Use the new property ui.config.modes instead.
Features
Media Library Batch Actions
We are extending the multi-selection functionality within the Media Library. To improve efficiency when working with Media Library elements (such as images, videos or files), users can now perform actions on multiple media items simultaneously. Additionally, this release introduces two enhancements to the Media Library Dashboard Side Panel.
Batch Actions on the Media Library Dashboard
On the Media Library Dashboard, users can select multiple media elements and perform the following actions:
- Download selected elements
- Send selected elements to a document inbox
- Store selected elements in archive / remove selected elements from archive
- Delete selected elements
- Remove selection

Elements can only be deleted if the user has the necessary permissions and the selected items are not stored in the archive. Elements can only be stored in the archive if the selection does not include archived or revoked items and the user has sufficient permission rights.
How to select multiple elements:
- Hold down the
Shiftkey and use the arrow keys, or - Hold down the
Commandkey (Mac) /Ctrlkey (Windows) and click on the desired elements. - Press
Escapeto clear the selection.
use2025behaviour needs to be enabled. If not configured, instead the legacy Archive functionality will be available.
For more details, see the 2025 Behavior guide.Improvements on the Media Library Dashboard Sidepanel
When an element is selected on the Media Library Dashboard, the Side Panel automatically opens. This panel has been enhanced with the following improvements:
A saving status indicator now appears in the top-left corner, showing whether an element’s metadata is currently being saved or has already been saved. This behavior is consistent with the Media Library Detail view.
Users can now navigate between selected items in the Side Panel to review them in more detail - without changing their selection on the main Media Library dashboard.

News Agency Improvements
This release refines the News Agency module with new metadata properties and user experience improvements.
release-2025-09.New Metadata Properties for News Agency Reports
News agency reports have been extended to include two optional metadata properties:
location: Stores geographical information related to a report (e.g., city, region, or country).note: Contains additional details from the news agency, such as contact information or publishing restrictions.
Both properties are displayed alongside the already existing metadata properties.

Displaying Custom Values for News Agency Report Sources and Categories
You can now define custom labels for news agency report sources and categories. Previously, Livingdocs displayed the raw imported values (e.g., abbreviated sources or untranslated categories). This update allows you to map those raw values to more descriptive or localized labels.
To support this, two new project configuration properties have been added:
newsAgency: {
sources: [
{label: 'DPA', value: 'dpa'},
{label: 'DPA - OTS', value: 'ots'},
{label: 'SDA', value: 'sda'}
],
categories: [
{label: {en: 'Politics', de: 'Politik'}, value: 'politics'},
{label: {en: 'Economy', de: 'Wirtschaft'}, value: 'economy'},
{label: {en: 'Sports', de: 'Sport'}, value: 'sports'}
]
}
For example, if a news agency report import provides the source ots, editors will now see DPA - OTS. Similarly, categories like politics appear as Politik or Politics, depending on the active language.
In addition, these new properties define the display filter options shown on news agency screens for filtering reports by source or category. They therefore replace the project configuration properties newsAgency.screens[].displayFilterOptionsSource and newsAgency.screens[].displayFilterOptionsCategory (see Breaking Changes).
News Agency Screen Search Results Ordered by Datetime
Search results on news agency screens are now ordered by datetime instead of relevance. This ensures reports appear in the sequence they were received. Previously, results followed the same relevance-based order used on other dashboards, but feedback showed that for news agency reports, chronological order is more valuable.
Showing More Reports on News Agency Screens
News agency screens now show 100 instead of 35 reports per page, allowing users to view more reports at once without needing to click “load more”.
Enabling All News Agency Notifications
The user experience for managing news agency notification categories has been improved with a new “Select all” checkbox. Roles that want to receive all notifications can now enable every notification category with a single click.

Simplified li-target-length and li-system-target-length UI Configuration
Over time, the metadata plugins li-target-length and li-system-target-length have gained many UI configuration options, some of which are redundant. To make these plugins easier to understand and explain, we are simplifying their configuration.
To achieve this, we are introducing a new configuration property: ui.config.modes. This property replaces the existing configuration options ui.config.allowAnyNumber, ui.config.showExactCountCheckbox, and ui.config.unit (see Deprecations).
The new configuration property ui.config.modes defines which input modes are available in the Livingdocs editor:
steps: A slider with pre-configured step values, requiresstepsto be configuredcharacters: A number input for entering a character countlines: A number input for entering a line count
ui: {
config: {
modes: ['steps', 'characters', 'lines'],
steps: [
{label: {en: 'S', de: 'Klein'}, value: 100},
{label: {en: 'M', de: 'Mittel'}, value: 200}
]
// ...
}
}
The migration to the new configuration is straightforward. Determine which UI modes should be available to your users and specify them under modes.
Example:
// OLD (deprecated)
ui: {
config: {
steps: [{label: 'S', value: 100}],
unit: 'characters',
showExactCountCheckbox: true
}
}
// NEW
ui: {
config: {
modes: ['steps', 'characters'], // replaces the old properties
steps: [{label: 'S', value: 100}]
}
}
Input Mode: steps

Input Mode: characters

Input Mode: lines

Vulnerability Patches
We are constantly patching module vulnerabilities for the Livingdocs Server and Livingdocs Editor as module fixes are available. Below is a list of all patched vulnerabilities included in the release.
Livingdocs Server
This release we have patched the following vulnerabilities in the Livingdocs Server:
- TBD
No known vulnerabilities. 🎉
Livingdocs Editor
This release we have patched the following vulnerabilities in the Livingdocs Editor:
- TBD
We are aware of the following vulnerabilities in the Livingdocs Editor:
- CVE-2023-44270 vulnerability in
postcss, it affects linters using PostCSS to parse external Cascading Style Sheets (CSS). It is not exploitable in the editor as we don’t load untrusted external CSS at build time. - CVE-2022-25844, CVE-2022-25869, CVE-2023-26116, CVE-2023-26117, CVE-2023-26118, CVE-2024-8372, CVE-2024-8373, CVE-2024-21490, CVE-2025-0716 are all AngularJS vulnerabilities that don’t have a patch available. We are working on removing all AngularJS from our code and vulnerabilities will go away when we complete the transition to Vue.js.
- CVE-2024-9506 vulnerability in
vue, an ReDoS vulnerability exploitable through inefficient regex evaluation in parseHTML function. The issue can cause excessive CPU usage but is not exploitable in the editor as we don’t load untrusted HTML at runtime.
Patches
Here is a list of all patches after the release has been announced.
Livingdocs Server Patches
- v284.0.8: fix(retresco): Support API versions in Retresco re-enrich endpoint
- v284.0.7: fix(public-api): Add 2025-11 to Public API versions
- v284.0.6: fix(auth): Use accessTokenTtl for serve-image token expiration
Livingdocs Editor Patches
v121.3.4: fix(dashboard filters): Overlooked “low res” filter
v121.3.3: fix(media-center-batch-actions): fix broken media library in article editor
v121.3.2: fix(media center): Multi select polish
Icon Legend
- Breaking changes: 🔥
- Feature: 🎁