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
master
branch) is at your own risk
PRs to Categorize
- fix(deps): update dependency webpack from 5.99.5 to v5.99.6 (main)
- fix(deps): update dependency fastify from 5.3.1 to 5.3.2 [security] (main)
- chore(deps): update dependency eslint from 9.24.0 to v9.25.0 (main)
- fix(deps): update dependency fastify from 5.3.0 to 5.3.1 [security] (main)
- fix(deps): update dependency fastify from 5.3.0 to 5.3.1 [security] (main)
- Add parameters concurrency and batchSize to change-design-name-and-version-to-latest-project-design CLI
- fix(deps): update dependency open from 10.1.0 to v10.1.1 (main)
- fix(deps): update dependency posthog-node from 4.11.6 to v4.11.7 (main)
- Allow deletion of media library entry translations in mediaLibraryApi.update()
- Add CLI task change-design-name-and-version-to-latest-project-design
- Require Facebook credentials when all oEmbed providers are loaded
- Optimize data migration database query
- Migrate Angular comment-wrapper component to Vue
- Add Bluesky, Pinterest and Reddit oEmbed providers
- implement
li-button-confirm
with floating-ui library - Adjust exposure boost durations
- fix(deps): update dependency posthog-node from 4.11.3 to v4.11.6 (main)
- Feat/li Button Concept
- Remove
config.contentTypes
fromli-document-search
- fix(deps): update dependency mime from 4.0.6 to v4.0.7 (main)
- fix(deps): update dependency fastify from 5.2.2 to v5.3.0 (main)
- fix(deps): update dependency fastify from 5.2.2 to v5.3.0 (main)
- fix(deps): update dependency nodemailer from 6.10.0 to v6.10.1 (main)
- fix(deps): update dependency posthog-node from 4.11.2 to v4.11.3 (main)
- fix(deps): update dependency jose from 5.10.0 to v6 (main)
- fix(deps): update dependency chartist from 1.3.0 to v1.3.1 (main)
- Fix/li-card Body Height
- fix(deps): update dependency express from 5.0.1 to v5.1.0 (main)
- Set image default width on image directive if present
- Fix distribution date in non-planning-boards
- Make design in document revision optional
- Reload document when only document design changed
- Improvement/Metadata View Layout
- Fix/Assistant Busy Button
- Fix GIF image upload with use2025behavior
- fix(deps): update dependency posthog-node from 4.11.1 to v4.11.2 (main)
- Restrict distinct query of delivery status to project & document scope
- chore(deps): update dependency eslint from 9.23.0 to v9.24.0 (main)
- Remove mapping of desknet properties in projectProxy and systemProxy
- Remove Desk-Net properties, features, and plugins
- Feat: add missing cells to table dashboard
- Only render the document preview after the iframe load event fires to prevent flickers
- Prevent token and user stats consumer deadlocks in postgres
- fix(deps): update dependency sass from 1.86.2 to v1.86.3 (main)
- fix(li-form-textarea): non-editable state
- Allow configuring
alt
in shortcuts - fix(deps): update aws-sdk (main) (minor)
- Prevent text-info-settings from blocking text selection
- Remove unused @forward declarations in sass
- Upgrade to node v20.19
- Migrate Angular comment-thread component to Vue
- Feat: clickable titles in teaser sidebar
- improvement(visited document highlight): Animation added
- Chore/small icon size corrections
- fix(manual document status): Empty state
- Migrate Angular li-comment component to Vue
- fix(deps): update dependency posthog-node from 4.10.1 to v4.10.2 (main)
- fix(deps): update dependency fastify from 5.2.1 to v5.2.2 (main)
- fix(deps): update dependency fastify from 5.2.1 to v5.2.2 (main)
- fix(deps): update aws-sdk (main) (patch)
- Apply crops in top left corner of an image
- Show content type label instead of content type handle in li-document-resource component
- chore(deps): update dependency eslint from 9.22.0 to v9.23.0 (main)
- Check entry exists before displaying stored in archive icon in the media library card component
- fix(deps): update aws-sdk from 3.758.0 to v3.772.0 (main) (minor)
- fix(deps): update dependency @livingdocs/framework from 32.7.2 to v32.7.3 (main)
- fix(deps): update dependency @livingdocs/framework from 32.7.2 to v32.7.3 (main)
- Fix: clipboard use first descendant with content for description
- fix(deps): update dependency axios from 1.8.3 to v1.8.4 (main)
- fix(deps): update dependency axios from 1.8.3 to v1.8.4 (main)
- Improvement/Example Server Design
- Fix: add cloudinary storage for image variants
- fix(deps): update playwright monorepo from 1.51.0 to v1.51.1 (main) (patch)
- fix(deps): update dependency pg from 8.14.0 to v8.14.1 (main)
- Fix: peiq check externalid on image drop
- fix: document usage of single quotes for secret-add value
- fix(deps): update dependency @livingdocs/framework from 32.7.1 to v32.7.2 (main)
- fix(deps): update dependency @livingdocs/framework from 32.7.1 to v32.7.2 (main)
- Patch vulnerabilities [main]
- Patch vulnerabilities [main]
- Add li-kordiam-integration to supported dashboard columns
- Make document dashboard toolbar action button active state reactive
- fix(li-button–bar): Long labels
- Show image for current locale in media library lightbox
- Remove Menu Tool
- Remove Menu Tool
- feat: migrate comment header from angular to vue
- fix(deps): update dependency axios from 1.8.2 to v1.8.3 (main)
- fix(deps): update dependency @babel/core from 7.26.9 to v7.26.10 (main)
- Show more than 100 revisions in history
- Ignore the legacy revision.data.layout property that prevents diffing history entries on content type change
- Save field extractor changes after assistant finished
- fix(deps): update dependency @livingdocs/framework from 32.7.0 to v32.7.1 (main)
- fix(deps): update dependency @livingdocs/framework from 32.7.0 to v32.7.1 (main)
- Do not try to serialize streams in pino serializer for axios
- Fix: peiq add externalid and systemname to elasticsearch
- No longer allow videos and files in inbox
- Omit devDependencies from npm-shrinkwrap.json
- Account for migratedDocumentVersionDelta when component condition is triggered
- Fix: rename url path to serve-image instead of serve-images
- Fix: rename url path to serve-image instead of serve-images
- Add tests for version 2025-03 of /latestPublication
- fix(deps): update dependency axios from 1.7.9 to 1.8.2 [security] (main)
- Throw LIBREAKING038 and LIBREAKING039 messages
- Fix creation flow warning
- Fix distribution dates
- Open documents from task screen with task panel open
- Clear authorization middleware cache on api client token or user session change
- Fix: peiq do metadata extraction when replacing an image
- fix(media library): detail details
- fix(deps): update dependency @livingdocs/framework from 32.6.2 to v32.7.0 (main)
- Fix positioning for named crops in portrait mode
- Fix Editor Scrolling
- fix(deps): update dependency exifreader from 4.26.1 to v4.26.2 (main)
- Use Print instead of Druck for german print version labels
- Trackjs Sanitization
- fix(distribution dates): Polish
- Fix: image-variants pass strip path prefix
- Prevent notification composition failure when no modes are defined
- Account for migratedDocumentVersionDelta when setting model version after an update
- Only show “Store in Archive” when
use2025Behavior: true
- Fix: azure storage not handling 404 correctly
- Rename media library config option preserveOriginalAssets to use2025Behavior (Part II)
- Prevent serving invalid images from Public API
- Do not focus component when mentioning user in comment
- Do not let format popover slip behind preview panel
- Fix/media library footer width
- Make webhook timeout configurable
- Keep support for beta routes
- Fix opening document inbox when in visibility mode
To get an overview about new functionality, read the Release Notes.
To learn about the necessary actions to update Livingdocs to release-2025-05
, 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 OpenSearch | 8.x v2.3.0 |
Redis | 7 |
Livingdocs Server Docker Image | livingdocs/server-base:22 |
Livingdocs Editor Docker Image | livingdocs/editor-base:22 |
Browser Support | Edge >= 92, Firefox >= 90, Chrome >= 92, Safari >= 15.4, iOS Safari >= 15.4, Opera >= 78 |
Minimal
Name | Version |
---|---|
Node | 20.18 |
NPM | 10 |
Postgres | 13 |
Elasticsearch OpenSearch | 7.x 1 |
Redis | 6.2 |
Livingdocs Server Docker Image | livingdocs/server-base:20:7 |
Livingdocs Editor Docker Image | livingdocs/editor-base:20:7 |
Browser Support | Edge >= 92, Firefox >= 90, Chrome >= 92, Safari >= 15.4, iOS Safari >= 15.4, Opera >= 78 |
Breaking Changes 🔥
Migrate the Postgres Database 🔥
It’s a simple/fast migration with no expected data losses.
# run `livingdocs-server migrate up` to update to the newest database schema
livingdocs-server migrate up
TODO: check migration
Deprecations
Features
Exposure Boosting 🎁
When using algorithmic teasers, the order of the documents is determined by a sort criteria. Oftentimes, this is the latest publication date. By activating the exposure boost for a document, it will appear before all non-boosted documents returned by an algorithm. This is useful, in scenarios where algorithms receive high frequency updates and important topics would get pushed down quickly. The effect will go away automatically after a certain time.
Add the
li-exposure-boost
plugin to your content type metadata{ handle: 'article', // ... metadata: [ // ... { handle: 'exposureBoost', type: 'li-exposure-boost', config: { index: true } } ] }
- handle: Make sure to use the same handle for all content types where the plugin is configured
- indexing: The config option
index
needs to be enabled for it to work
Generally allow exposure boosting for certain teasers in their service params schema
{ name: 'someTeaserService', paramsSchema: [ // ... { handle: 'someTeaser', type: 'li-teaser', config: { // ... algorithm: { // ... allowExposureBoost: true } } } ] }
Show the exposure boost UI on a Table Dashboard (optional)
{ handle: 'someDashboard', // ... columns: [ // ... { label: 'Boost', minWidth: 100, growFactor: 0, priority: 1, metadataPropertyName: 'exposureBoost', editable: true } ] }
Visit the li-exposure-boost
plugin page for more information.
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-2023-26116, CVE-2023-26118, CVE-2023-26117, CVE-2022-25869, CVE-2022-25844 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.
Patches
Here is a list of all patches after the release has been announced.
Livingdocs Server Patches
Livingdocs Editor Patches
Icon Legend
- Breaking changes: 🔥
- Feature: 🎁