Skip to content

Release 26.06.21-01

Choose a tag to compare

@dotCMS-Machine-User dotCMS-Machine-User released this 21 Jun 17:47

Release: v26.06.15-01 → v26.06.21-01

Caution

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

  • Content Types: Adds a new PATCH /v1/contenttype/id/{idOrVar}/metadata endpoint and persists Style Editor Schema metadata; rolling back can strand metadata written against the new API. (#36070)
  • OpenSearch Migration: Changes how Phase 3 reindex writes the indicies table (gates ES pointers, purges legacy rows); rolling back after a Phase 3 reindex can leave the index store in an inconsistent state. (#36191)

Features & Enhancements

  • Content Editing: The legacy image editor can now be launched directly from binary fields in the content editor. (#36166)
  • Content Editing: Redesigned the History sidebar with a card layout, hover-revealed inode, and an improved version-preview/restore flow. (#36171)
  • Content Types: New PATCH /v1/contenttype/id/{idOrVar}/metadata endpoint saves a content type's Style Editor Schema without modifying the rest of the content type. (#36070)
  • dotAI: Added AWS Bedrock as a supported AI provider, covering multiple model families through a single Converse-based integration. (#35242)
  • Agentic Tools (MCP): Exposed the new /api/v2/assets file-asset endpoints through the agentic-tools MCP server. (#36200)
  • OpenSearch Migration: Startup now logs a single verbose, easy-to-locate banner with the migration phase, endpoints, masked secrets, and connection outcome (including an explicit anonymous-connection warning). (#36234)

Fixes and Known Issues

  • Viewtools / ES Search: $estool.raw() now lowercases the query like $estool.search(), fixing silently-empty aggregation buckets for camelCase fields such as contentType. (#36170)
  • Clustering: Widened dot_cluster.cluster_id to varchar(255) via an idempotent startup task. (#36176)
  • Content: Fixed an HTTP 500 when saving relationship fields via "Translate Manually" where a related contentlet had no version in the target language. (#36178)
  • Pages: Archived content is now excluded from page render in all modes and no longer blocks page saves with a 400 error. (#36215)
  • UVE: Declining to create a translation now keeps the user on the selected language (read-only) instead of reverting to the previous one. (#36231)
  • UVE: The Page Health scanner now receives all page-resolving params (mode, language, persona, variant, time machine) so it scans exactly what the editor shows. (#36184)
  • Apps: Environment-variable overrides are no longer leaked into or corrupting app secrets exports; the stored value is exported instead. (#36187)
  • Global Store: The current site and user now load reactively from auth state, fixing "Select a site" and a null userId crash after initial login without a refresh. (#36190)
  • Block Editor: Body-portaled overlays (dialogs, selects, autocompletes) now render above the fullscreen editor shell. (#36173)
  • Block Editor: Fixed web-component styling inside the legacy JSP host — list markers now render, PrimeNG/editor spacing is preserved, and the image/video picker dialog no longer overflows short viewports. (#36235, #36249)
  • Locales Selector: Removed an unwanted gap between the All/Translated/Pending tabs in the enhanced (>5 locales) view. (#36227)
  • Push Publishing: Push-remove of content now removes the corresponding artifact from static endpoints even when the content was already unpublished locally. (#36193)
  • Push Publishing: Pushing an archived Site with a non-Remove operation now archives it on the receiver instead of deleting it and its content. (#36174)
  • Angular SSR Example: Removed the invalid public property from vercel.json that broke deployments. (#36212)
  • OpenSearch Migration: A Phase 3 reindex no longer orphans stale ES rows in the indicies table. (#36191)
  • OpenSearch Migration: Migration bootstrap failures now abort startup loudly instead of coming up half-initialized, and per-shard ES failure causes are surfaced instead of the generic "all shards failed". (#36240)
  • OpenSearch Migration: Index bootstrap is now idempotent against orphaned cluster indices, reusing and re-mapping an existing physical index instead of failing with resource_already_exists. (#36238)

Infrastructure & Security

  • Security: Upgraded Bouncy Castle from 1.81 to 1.84 (via Tika 3.3.1) to address CVE-2025-14813. (#36139)
  • Build: Migrated core-web from Yarn Classic to pnpm 10.17.1, with faster installs, a smaller node_modules, and CI/Maven wiring updated accordingly. (#36169)
  • CI/CD: Switched automatic PR reviews to DeepSeek V3.2 and bumped ai-workflows to v3.1.5 for clearer failure diagnostics. (#36182)
  • Agentic Tools: Stopped tracking the generated spec.json, which is now built on demand. (#36207)
  • Report an Issue: Removed the now-launched FEATURE_FLAG_REPORT_ISSUE_ENABLED default from config. (#36217)
  • Performance: Eliminated avoidable per-call allocations in hot logging/config paths to reduce GC pressure. (#36150)
  • Performance: Removed avoidable per-render allocations in the Velocity template engine hot path. (#36202)
  • Documentation: Rewrote the OpenSearch migration test plan to the corrected TC-001–TC-058 case set. (#36230)