Release 26.08.07-01
dotCMS 26.08.07-01 brings a Content Drive Action Center for bulk workflow operations, an Angular Users portlet in beta, and the libvips image engine enabled by default, alongside search-matching fixes and OpenSearch migration hardening.
Features
- Content Drive gains an Action Center dialog for running quick actions and workflow actions across a multi-item selection, with per-action eligibility counts. [#36817]
- Selecting a workflow action in the Action Center now opens a preview of the contentlets it will run on, so the payload can be reviewed and trimmed before firing. [#36884]
- New Angular Users portlet ships as an opt-in beta with a list view, debounced search, Filter by access type, sortable columns, pagination, and bulk delete. [#36716]
- Edit Content can now open in a right-to-left slide-in side panel from Content Drive, Query Tool, UVE, and relationship fields, behind the
FEATURE_FLAG_EDIT_CONTENT_SIDE_PANELflag. [#36631] - Dev-tool portlets (Query Tool, ES Search, Velocity Playground) now remember your last query across reloads, add a clear-query action, and share a single editor theme. [#36692]
- The libvips image engine is now enabled by default, falling back to the legacy Java2D engine when the native library is unavailable or an operation fails. [#36885]
Enhancements & Adjustments
- Block Editor HTML input now supports the same rich-node vocabulary as Markdown via namespaced
dotcms-*elements, so HTML is no longer the lossier save-path format. [#36659] - Folder tree rendering in the Edit Content host-folder field and the Content Drive sidebar is unified behind a shared component with paginated load-more support. [#36848]
- Cache flush log messages now identify the user who triggered the flush, and four previously debug-only flush logs were promoted to info. [#36830]
- Node.js requirement bumped to v22.22.3, with Angular ESLint configurations streamlined across apps and libraries. [#36838]
dotcms-modelsnow compiles under TypeScript strict mode, with nullability aligned onDotPageRenderandDotPageRenderState. [#35934]
Fixes
- Global search now matches mid-token fragments and exact full values (for example
1004orIMG_1004.jpeg), affecting the Content Search portlet, Content Drive keyword search, and relationship field lookups. [#36791] - Content Drive keyword search now uses the same index query as the Content Search portlet, eliminating slow and irrelevant results. [#36688]
- Reverted the H22 cache virtual-thread migration that could stall startup — embedded H2 is file I/O, which does not unmount a virtual thread, so commits pinned their carriers. [#36892]
- A folder's Content Drive upload-mode preference can now be cleared back to "ask each time" instead of silently keeping its previous value. [#35577]
- Push publishing a content type whose field was re-created with a different data type now applies that data type on the receiver instead of dropping it. [#36636]
- Site Search index mirrors across Elasticsearch and OpenSearch now self-heal on crawl, with deletes sweeping both engines so rollback leftovers are not orphaned. [#36360]
- An OpenSearch shadow store that stops accepting writes is now surfaced as a single actionable error instead of thousands of repeated warnings. [#36222]
- Side panel accordion labels no longer overlap content when scrolling in the Edit Content sidebar. [#36630]
- The Content Type dialog now focuses the Name input when creating and focuses nothing when editing, instead of jumping to the new-editor banner checkbox. [#36816]
- The comment character counter and validation error in the Edit Content sidebar now share one row, error left and counter right, at a constant height. [#36629]
- Fixed the UVE ema-shell layout when the feature-flag toggle lock is on. [#36866]
- UVE now handles draft pages whose response is undefined or GraphQL-only, keeping the editor stable while the page resolves. [#36905]
- Template thumbnail fields now reset cleanly on an empty ID and gained proper
id/nameattributes, plus safer file-input handling in the binary upload button. [#35930] - Applied eager change detection across several Angular components and made custom event handlers register synchronously, so iframe events such as push-publish are never dropped while feature flags load. [#36907]
- Publishing Queue polish: larger copy-bundle-id target, a compact delete-asset button, and consistent Remove/Delete wording across confirmation dialogs. [#36897]
Infrastructure & Security
- Evergreen
standardandtrailingtrack promotion now runs unattended on a daily 06:00 ET cron, with manual dispatch retained as the reviewer-gated break-glass path. [#36902] - Integration-test suites now run full-reindex and content-type-scanning classes first, so they no longer pay for content accumulated by earlier tests. [#36910]
- Removed real-time waits and per-iteration content-type creation from the slowest integration tests, recovering roughly 4.5 minutes of suite time. [#36913]
- Installed and customized GitHub Spec-Kit for dotCMS with a legacy-aware constitution and a mandatory ADR-consultation gate on the planning phase. [#36416]
- Added governance for first-party skills: a naming convention, scaffolder, generated catalog, linter, and a CI gate. [#36466]