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
mainbranch) is at your own risk
PRs to Categorize
fix(properties): correct German word order in char-limit labels
Fix 500 error when a document’s media already exists in the target project
Stop the media library indexing consumer group from drifting
chore(deps): update aws-sdk from 3.1110.0 to v3.1111.0 (main)
chore(deps): update dependency mocha from 12.0.0-rc.5 to v12.0.0-rc.6 (main)
Preserve document updatedAt when re-enriching Retresco metadata
fix(deps): update dependency @livingdocs/framework from 34.2.1 to v34.2.2 (main)
Replace the legacy ld-card CSS class with the li-card component
fix(indexing): Always load the elasticsearch configs into the process
feat(media-library): improve filename visibility and add copy button
feat(media-library): substring search on asset filenames via ngram
Match metadata image urls to the server to avoid merge conflicts
chore(deps): update dependency execa from 10.0.0 to v10.0.1 (main)
fix(deps): update dependency @livingdocs/framework from 34.2.0 to v34.2.1 (main)
chore(deps): update dependency posthog-node from 5.46.1 to v5.47.0 (main)
fix(indexing): Avoid caching empty media-library locale fields at startup
fix(deps): update dependency pusher-js from 8.5.0 to v8.6.0 (main)
chore(deps): update dependency jose from 6.2.3 to v6.2.4 (main)
fix(deps): update dependency js-yaml from 5.2.1 to 5.2.2 [security] (main)
fix(i18n): adjust nb-NO editor labels and bundle panel strings
fix(deps): update dependency nanoid from 5.1.16 to v6 (main)
fix(deps): update dependency nanoid from 5.1.16 to v6 (main)
fix(draft-storage): Never silently drop unsaved content when saving is disabled
Update logo and favicon assets; serve browser-support logo locally
Fix release date in deprecation message of li-authentication functions
Run node vulnerability patch weekly across main and the three latest releases
fix(search): Position simple-search cheat sheet flyout correctly
Hide license profile tag when license profiles are not configured
fix(auth): Always refresh tokens, makes
auth.authTokenRenewalIntervalconfig obsoleteAdd standard cost class translation to the license profile form
chore(deps): update dependency webpack from 5.108.3 to v5.108.4 (main)
To get an overview about new functionality, read the Release Notes.
To learn about the necessary actions to update Livingdocs to release-2026-09, 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
- Release Newsletter Subscription
System Requirements
Suggested
| Name | Version |
|---|---|
| Node | 24 |
| NPM | 11 |
| Postgres | 17 |
| Elasticsearch | 9 |
| OpenSearch | 3 |
| Redis | 8 |
| Livingdocs Server Docker Image | livingdocs/server-base:24 |
| Livingdocs Editor Docker Image | livingdocs/editor-base:24 |
| Browser Support | Chrome >= 145, Edge >= 145, Firefox >= 148, Safari >= 26.3 |
Minimal
| Name | Version |
|---|---|
| Node | 22.17.1 |
| NPM | 10 |
| Postgres | 14 |
| Elasticsearch | 8 |
| OpenSearch | 2 |
| Redis | 6.2 |
| Livingdocs Server Docker Image | livingdocs/server-base:22 |
| Livingdocs Editor Docker Image | livingdocs/editor-base:22 |
| Browser Support | Chrome >= 138, Edge >= 138, Firefox >= 140, Safari >= 18.6 |
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 🔥
Removal of the editor.imageCrop configuration
The editor cropping tool was rebuilt in this release (see Improved Image Cropping). Its settings were specific to the old tool and have been removed without replacement.
Detect
In the editor config, an imageCrop key under editor. Search for imageCrop.
Fix
Remove the editor.imageCrop block and its options (maxArea, showSurroundingImage, surroundingImageOpacity, and zoomStep) from all editor configs and test fixtures. No replacement is needed.
Deprecations ⚠️
Features 🎁
Improved Image Cropping
The image cropping tool has been improved, visually and functionally. It is more intuitive to use. Editors can now:
- Resize crops with a fixed aspect ratio by dragging the frame, which previously was not possible.
- Grab the crop frame on its corners as well as on its sides.
- Move one edge of the frame without moving the opposite edge along with it.

Ratios configured with recommendedRatios are now always enforced. The crop can be resized, but it keeps the selected ratio. Previously the ratio was dropped as soon as an editor resized the crop. For unconstrained cropping, the picker now offers an additional freeform ratio. In freeform mode, the current aspect ratio can still be preserved by holding the Shift key while resizing.
The behavior of imageRatios is unchanged. Those ratios are always enforced and there is no freeform option.
The new cropping tool is available automatically. No configuration is required.
For more information, see the doc-image directive documentation.
Search by Filename
Not every image arrives with a title or description. When metadata is missing, the filename is often the only thing that identifies an image. Editors can now search for images by their filename, and read or copy the full name straight from the detail view.
Find images by any part of the filename
Media Library text search now matches any part of a filename, not just the beginning. Matching is case-insensitive and needs at least three characters. Searching for AXZ87D3X finds imago-AXZ87D3X-john-doe-cc.jpg.
Substring filename search is opt-in. Recreate the media library Elasticsearch index only if you want the feature; until then, search keeps working as before, and it activates automatically the next time the index is recreated for any other reason.
livingdocs-server elasticsearch-index --handle li-media --recreate -y
--recreate deletes and rebuilds the index in place, so media search returns incomplete results while it runs (roughly 6,000 to 7,000 entries per second). Plan it for a low-traffic window.
Read and copy the full filename
In the media detail view, the “Information” section now shows the complete filename instead of truncating it to a single line. A copy button next to it grabs the full name in one click, which makes long agency filenames and stock IDs easy to reuse.
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
No known vulnerabilities. 🎉
Patches
Patches typically fix bugs and apply improvements within the current release. Keeping your deployment up-to-date with the latest patch version means you benefit from those fixes. No explicit action is required per patch — bumping the version is enough.