Skip to content

Release 26.04.22-01

Choose a tag to compare

@dotCMS-Machine-User dotCMS-Machine-User released this 22 Apr 19:51

Release: v26.04.21-01 → v26.04.22-01

Caution

Rollback Warning: This release contains irrevertable changes that are non-trivial to rollback from.

  • Database Migration: Task250604UpdateFolderInodes rewrites folder inodes in-place; rolling back leaves the database in an inconsistent state. (#35393)
  • Feature Flags: Restores the original feature flag semantics (no flag = ON, flag OFF = OFF, flag ON = ON); rolling back reintroduces the broken behavior. (#35411)

Features & Enhancements

  • UVE: Default device controls (desktop/tablet/mobile + orientation toggle) are now a dedicated pill component in the browser toolbar; the device selector menu is reduced to custom devices, social media, and search engines only. (#35419)

Fixes and Known Issues

  • Database Migration: Fixed Task250604UpdateFolderInodes hanging indefinitely on large databases by replacing a per-row N×M query storm with a single HashSet pre-load, and releasing idle Hibernate transactions before ALTER TABLE DDL to prevent lock deadlock. (#35393)
  • Feature Flags: Restored original behavior where the absence of a flag leaves a feature enabled, preventing features from being incorrectly disabled by default. (#35411)
  • URL Map: Fixed a 404 error when a URL-mapped contentlet lives on a different site than the one receiving the request by adding a cross-site fallback query when the host-restricted lookup returns no results. (#35345)
  • Edit Content: Fixed a race condition that could silently blank Category fields on contentlets with multiple Category fields after a lock/unlock cycle or form rebuild. (#35388)
  • Key-Value Field: null values imported via CSV are now displayed as the string "null" in both legacy and new Edit Content UIs instead of being silently dropped. (#35401)
  • OpenSearch: Fixed OSBulkHelper.getIndexName() always returning the hardcoded fallback "dotcms_content" due to a silent null return from an incorrect index type lookup; it now queries the active working index directly. (#35390)
  • OpenSearch: Made shadow-write failure log verbosity configurable via DOTCMS_SHADOW_WRITE_LOG_LEVEL (default WARN) to reduce noise during OS migrations. (#35389)
  • UI: Fixed container list right-click context menu, corrected warning toast severity mapping (WARNINGwarn), fixed bundle upload dialog to restrict file picker to .tar.gz/.gz/.tgz and display the selected filename, and corrected container copy() from PUT to POST (was returning 405). (#35380)
  • URL Title: Replaced inline HTML string manipulation in url-title_old.vtl with safe DOM methods for slug suggestion links, eliminating an XSS risk. (#35406)
  • Localization: Added missing tag-select-host translation key for the host selection label in the UI. (#35405)

Infrastructure & Security

  • Reindex: Converted ReindexEntry from a mutable POJO to an @Value.Immutable value object, preserving original equals/hashCode semantics. (#35391)
  • Tooling: Removed the dotcms-frontend-review Claude skill and its exclusive agents; added .venv/ to .gitignore. (#35400)