v12.0.0
v12.0.0
View on GitHubView PackagePublished: Jun 10, 2026

Release Notes

⚠️ Potential Breaking Changes

Introduced VERSION_KEY_ constants and renamed main to published @alvarosabu (#27397)* Backward Compatibility: You can now use ?version=published to resolve versions of the main item(s) via the version query parameter. For backward compatibility, ?version=main will continue to work.

Replaced status field with archived boolean in collection settings @alvarosabu (#27397) Backward Compatibility: Existing collections with string-based status fields continue to work unchanged; newly created collections now default to a boolean "Archived" field instead of the string "Status" field

Deprecated the VResizeable component @formfcw (#27437)

  • Deprecation for extensions: The globally registered VResizeable component has been deprecated. Extension authors using <v-resizeable> should migrate to @directus/vue-split-panel or their own implementation.

Updated type system, borders, and theme variables @formfcw (#27437)

  • Potential breaking change for theme extensions: headerShadow and sidebarShadow removed from LayoutConfig interface
  • Potential breaking change for theme extensions: boxShadow removed from header theme rules schema
  • Potential breaking change for theme extensions: sidebarShadow no longer exposed in layout wrapper state

Updated module navigation bar spacing and styling @HZooly (#27437)

  • Potential breaking change in theme extensions: Removed navigation.project.borderColor / navigation.project.borderWidth / navigation.project.background from theming. No action is required — these props will simply no longer have any effect.

Locked published items in versioned collections from editing and added a header action button to edit in the draft version @alvarosabu (#27397)

  • Breaking change — new behavior for versioned collections Published items in versioned collections are now locked. Edits must be made through the draft version.

Removed rounded buttons and adopted shared header action button across all views @formfcw (#27437)

  • Potential breaking change for extensions: The rounded prop has been removed from v-button. Extensions using rounded will still render correctly but buttons will appear as rounded rectangles instead of circles. No functional impact.

Changed license to MSCL-1.0-GPL (#27417)

  • Breaking Change: Relicensed from BUSL-1.1 to MSCL-1.0-GPL (Monospace Sustainable Core License, Version 1.0).

Updated header and navigation bar base design and merged their theme properties into a new shell scope @formfcw (#27437)

  • Potential breaking change for theme extensions: The theme properties navigation.background, navigation.backgroundAccent, navigation.borderWidth, navigation.borderColor, header.background, header.borderWidth, and header.borderColor have been removed and replaced by shell.background, shell.backgroundAccent, shell.borderWidth, and shell.borderColor.
  • Potential breaking change for theme extensions: Custom themes overriding any of these removed properties must migrate to the new shell scope. The corresponding CSS variables change from --theme--navigation--background, --theme--navigation--background-accent, --theme--navigation--border-*, --theme--header--background, and --theme--header--border-* to --theme--shell--background, --theme--shell--background-accent, and --theme--shell--border-*.

Removed the extra confirmation step from the publish flow @alvarosabu (#27487)

  • Breaking change — new publish flow: Publishing a version no longer shows an additional confirmation dialog after confirming changes in the comparison modal. The item is published directly once the changes are confirmed.

Updated sidebar styles @formfcw (#27437)

  • Potential breaking change for theme extensions: Removed section.toggle.borderWidth / section.toggle.borderColor in favor of section-level border tokens. No action is required — these props will simply no longer have any effect.
  • Potential breaking change for theme extensions: Removed sidebarShadow and headerShadow from defineLayout(). No action is required — these props will simply no longer have any effect.

Refactored focus ring from border/box-shadow to outline @formfcw (#27437)

  • Potential breaking change for theme extensions: borderColorFocus, boxShadowHover, and boxShadowFocus are removed from the theme schema — custom themes referencing these will lose their focus overrides silently
  • Potential breaking change for interface extensions that relied on --theme--form--field--input--border-color-focus or --theme--form--field--input--box-shadow-focus CSS variables will need to migrate to --theme--form--field--input--focus-ring-color

Updated header bar elements and deprecated the headline slot @formfcw (#27437)

  • Deprecation for extensions: The headline slot on the private view header bar has been deprecated. Existing content keeps rendering, but consumers using <template #headline> will now see a deprecation hint from Volar.

Fixed health check results not being shared in multi-instance settings. Restricted /server/health to authenticated users (#27160)

  • Health checks are cached by default and shared across multi-instance deployments
  • /server/health will return 404 for unauthenticated requests, use /server/ping for liveness checks
  • cache, rateLimiter and rateLimiterGlobal health checks have been replaced by a generic redis check using the redis: prefix

Changed the default of IP_TRUST_PROXY from true to false to harden the default deployment against IP spoofing. (#27607) The IP_TRUST_PROXY default was changed from true to false. If you run Directus behind a reverse proxy and rely on X-Forwarded-For (or similar) headers for client IP resolution, you must now explicitly set IP_TRUST_PROXY to true or a more specific trust configuration.

  • @directus/app

    • Locked published items in versioned collections from editing and added a header action button to edit in the draft version @alvarosabu (#27397 by @formfcw)
    • Removed rounded buttons and adopted shared header action button across all views @formfcw (#27437 by @formfcw)
    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
    • Updated header and navigation bar base design and merged their theme properties into a new shell scope @formfcw (#27437 by @formfcw)
    • Removed the extra confirmation step from the publish flow @alvarosabu (#27487 by @alvarosabu)
  • @directus/api

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
    • Fixed health check results not being shared in multi-instance settings. Restricted /server/health to authenticated users (#27160 by @ComfortablyCoding)
  • @directus/themes

    • Updated module navigation bar spacing and styling @HZooly (#27437 by @formfcw)

    • Updated header and navigation bar base design and merged their theme properties into a new shell scope @formfcw (#27437 by @formfcw)

    • Updated sidebar styles @formfcw (#27437 by @formfcw)

    • Refactored drawer header layout and simplified v-drawer API @formfcw (#27437 by @formfcw)

      • Deprecation for extensions: The globally registered v-breadcrumb component has been deprecated. Extensions using <v-breadcrumb> keep rendering but will see a deprecation hint from Volar.
      • Deprecation for extensions: On v-drawer, the subtitle prop (use the title prop instead), the subtitle slot, the header:append slot, and the actions:append slot have been deprecated. Existing usage keeps rendering — actions:append content lands in the secondary-actions zone, and for primary CTAs in the drawer header use the new actions:primary slot. Consumers will see deprecation hints from Volar.
      • Potential Breaking change for theme extensions: The theme properties header.headline.foreground and header.headline.fontFamily have been removed. Custom themes overriding these properties should remove them. The corresponding CSS variables --theme--header--headline--foreground and --theme--header--headline--font-family no longer exist.
  • @directus/types

    • Updated module navigation bar spacing and styling @HZooly (#27437 by @formfcw)

    • Updated header and navigation bar base design and merged their theme properties into a new shell scope @formfcw (#27437 by @formfcw)

    • Updated sidebar styles @formfcw (#27437 by @formfcw)

    • Refactored drawer header layout and simplified v-drawer API @formfcw (#27437 by @formfcw)

      • Deprecation for extensions: The globally registered v-breadcrumb component has been deprecated. Extensions using <v-breadcrumb> keep rendering but will see a deprecation hint from Volar.
      • Deprecation for extensions: On v-drawer, the subtitle prop (use the title prop instead), the subtitle slot, the header:append slot, and the actions:append slot have been deprecated. Existing usage keeps rendering — actions:append content lands in the secondary-actions zone, and for primary CTAs in the drawer header use the new actions:primary slot. Consumers will see deprecation hints from Volar.
      • Potential Breaking change for theme extensions: The theme properties header.headline.foreground and header.headline.fontFamily have been removed. Custom themes overriding these properties should remove them. The corresponding CSS variables --theme--header--headline--foreground and --theme--header--headline--font-family no longer exist.
  • @directus/extensions

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/extensions-registry

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/extensions-sdk

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/format-title

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/memory

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/pressure

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/release-notes-generator

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/update-check

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/validation

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/schema

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/schema-builder

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/specs

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/storage

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/storage-driver-cloudinary

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/storage-driver-supabase

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/storage-driver-azure

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/storage-driver-gcs

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/storage-driver-local

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/storage-driver-s3

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/stores

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • create-directus-extension

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • create-directus-project

    • Changed license to MSCL-1.0-GPL (#27417 by @ComfortablyCoding)
  • @directus/env

    • Changed the default of IP_TRUST_PROXY from true to false to harden the default deployment against IP spoofing. (#27607 by @br41nslug)
  • @directus/sdk

    • Fixed the outdated updateExtension command and added missing deleteExtension and extension registry commands (#27314 by @kheiner)

      ::notice

      • updateExtension now accepts an id instead of bundle and name
    • Refactor sdk error to use class over object (#27417 by @ComfortablyCoding)

      Requests that fail will now throw a RequestError instead of returning a response with an error property.

✨ New Features & Improvements

  • @directus/app
    • Introduced VERSION_KEY_* constants and renamed main to published @alvarosabu (#27397 by @formfcw)

    • Added auto-save for version editing @alvarosabu (#27449 by @alvarosabu)

    • Fixed Image Editor save button to use split button @HZooly (#27437 by @formfcw)

    • Added split-menu slot to v-button and migrate primary header actions @formfcw (#27437 by @formfcw)

    • Added AI-powered translations to the translations interface, including glossary, style guide, and configurable default model settings derived from the enabled providers and allowed models. (#26940 by @bryantgillespie)

    • Added version support to getItemRoute and update all callers to preserve version context when navigating to items from layouts and interfaces @alvarosabu (#27397 by @formfcw)

    • Added behavior to auto-switch to the draft version on the first edit of published item @alvarosabu (#27507 by @alvarosabu)

    • Added Publish without Review action to the publish split menu with shortcut @alvarosabu (#27501 by @alvarosabu)

    • Updated Visual Editor header bar buttons @formfcw (#27437 by @formfcw)

    • Updated content route middleware to handle singleton collections and draft flow via route guards @alvarosabu (#27397 by @formfcw)

    • Replaced status field with archived boolean in collection settings @alvarosabu (#27397 by @formfcw)

    • Updated module bar buttons style @HZooly (#27437 by @formfcw)

    • Deprecated the VResizeable component @formfcw (#27437 by @formfcw)

    • Updated VChip component to appear as a pill in form field label, group accordion, group tabs, kanban, deployment status, extension item, marketplace extension list item, marketplace extension banner, and user popover @formfcw (#27462 by @formfcw)

    • Added tresjs shader background for public pages @alvarosabu (#27428 by @alvarosabu)

    • Updated type system, borders, and theme variables @formfcw (#27437 by @formfcw)

    • Rendered non-clickable version menu without directus_versions read access @alvarosabu (#27461 by @alvarosabu)

    • Added item-less draft creation flow for versioned collections @alvarosabu (#27397 by @formfcw)

    • Updated module navigation bar spacing and styling @HZooly (#27437 by @formfcw)

    • Updated Visual Editor popover/modal action buttons @formfcw (#27437 by @formfcw)

    • Updated UI for the Draft & Publish workflow @formfcw (#27437 by @formfcw)

    • Updated mobile appearance of drawer sidebar @formfcw (#27437 by @formfcw)

    • Moved Promote/Publish button to header actions @alvarosabu (#27397 by @formfcw)

    • Updated primary header actions to show label and replace outlined header action buttons @formfcw (#27437 by @formfcw)

    • Updated SearchInput component to match the new design @formfcw (#27437 by @formfcw)

    • Added MCP OAuth 2.1 authorization server. MCP clients (like Claude, Codex) can now authenticate via standard OAuth flow with PKCE instead of requiring a manually provisioned static token. Enable with MCP_OAUTH_ENABLED=true. Dynamic and client ID metadata registration were kept separately opt-in with MCP_OAUTH_DCR_ENABLED=true and MCP_OAUTH_CIMD_ENABLED=true. (#27069 by @hanneskuettner)

    • Refactored header bar action slots and reorganized CTAs @formfcw (#27437 by @formfcw)

      • Deprecation for extensions: The actions:append slot in the header bar has been deprecated in favor of the new actions:primary slot for primary CTAs. Existing actions:append usage keeps rendering in the secondary-actions zone, but consumers will now see a deprecation hint from Volar.
    • Added navigation logic on discarding item-less versions @alvarosabu (#27397 by @formfcw)

    • Put the sidebar into the content area @HZooly (#27437 by @formfcw)

    • Updated color system for VChip and VersionMenu components @formfcw (#27437 by @formfcw)

    • Updated content section spacing and drawer content spacing @HZooly (#27437 by @formfcw)

    • Extracted the card subheader into a reusable subheader component @HZooly (#27437 by @formfcw)

    • Added version select to collection page @alvarosabu (#27397 by @formfcw)

    • Updated sidebar styles @formfcw (#27437 by @formfcw)

    • Renamed "Promote" to "Publish" in version menu and disabled create version and published selection for item-less versions @alvarosabu (#27397 by @formfcw)

    • Added version query param guards on content-item route @alvarosabu (#27397 by @formfcw)

    • Improved bookmark flow @formfcw (#27450 by @formfcw)

    • Forwarded theme tokens and i18n strings from Studio to the visual-editing iframe @formfcw (#27469 by @formfcw)

    • Refactored focus ring from border/box-shadow to outline @formfcw (#27437 by @formfcw)

    • Introduced VersionChip component @formfcw (#27437 by @formfcw)

    • Updated theme preview component to match the new design @formfcw (#27437 by @formfcw)

    • Updated collab avatar indicator design @formfcw (#27437 by @formfcw)

    • Refactored drawer header layout and simplified v-drawer API @formfcw (#27437 by @formfcw)

      • Deprecation for extensions: The globally registered v-breadcrumb component has been deprecated. Extensions using <v-breadcrumb> keep rendering but will see a deprecation hint from Volar.
      • Deprecation for extensions: On v-drawer, the subtitle prop (use the title prop instead), the subtitle slot, the header:append slot, and the actions:append slot have been deprecated. Existing usage keeps rendering — actions:append content lands in the secondary-actions zone, and for primary CTAs in the drawer header use the new actions:primary slot. Consumers will see deprecation hints from Volar.
      • Potential Breaking change for theme extensions: The theme properties header.headline.foreground and header.headline.fontFamily have been removed. Custom themes overriding these properties should remove them. The corresponding CSS variables --theme--header--headline--foreground and --theme--header--headline--font-family no longer exist.
    • Updated header bar elements and deprecated the headline slot @formfcw (#27437 by @formfcw)

    • Ensured to switch to the draft version when visually editing an item of a versioned collection @formfcw (#27595 by @formfcw)

    • Extracted reusable ModuleBarButton component @formfcw (#27437 by @formfcw)

    • Moved client-validation to promote version workflow instead of save version @alvarosabu (#27397 by @formfcw)

    • Added Create New action to publish split menu with shortcut @alvarosabu (#27425 by @alvarosabu)

  • @directus/api
    • Introduced VERSION_KEY_* constants and renamed main to published @alvarosabu (#27397 by @formfcw)
    • Added auto-save for version editing @alvarosabu (#27449 by @alvarosabu)
    • Added AI-powered translations to the translations interface, including glossary, style guide, and configurable default model settings derived from the enabled providers and allowed models. (#26940 by @bryantgillespie)
    • Added Publish without Review action to the publish split menu with shortcut @alvarosabu (#27501 by @alvarosabu)
    • Added MCP OAuth 2.1 authorization server. MCP clients (like Claude, Codex) can now authenticate via standard OAuth flow with PKCE instead of requiring a manually provisioned static token. Enable with MCP_OAUTH_ENABLED=true. Dynamic and client ID metadata registration were kept separately opt-in with MCP_OAUTH_DCR_ENABLED=true and MCP_OAUTH_CIMD_ENABLED=true. (#27069 by @hanneskuettner)
    • Added JSON filtering, alias and sorting support (#26981 by @br41nslug)
    • Added support for item-less versions @Nitwel (#27397 by @formfcw)
    • Added support for the version query parameter in collections @Nitwel (#27397 by @formfcw)
    • Allow disabling the health check endpoint via HEALTHCHECK_ENABLED or selectively disabled checked services via HEALTHCHECK_SERVICES (#27160 by @ComfortablyCoding)
    • Improved AI assistant prompt caching support across providers. (#27545 by @bryantgillespie)
  • @directus/constants
    • Introduced VERSION_KEY_* constants and renamed main to published @alvarosabu (#27397 by @formfcw)
  • @directus/env
    • Added auto-save for version editing @alvarosabu (#27449 by @alvarosabu)
    • Added MCP OAuth 2.1 authorization server. MCP clients (like Claude, Codex) can now authenticate via standard OAuth flow with PKCE instead of requiring a manually provisioned static token. Enable with MCP_OAUTH_ENABLED=true. Dynamic and client ID metadata registration were kept separately opt-in with MCP_OAUTH_DCR_ENABLED=true and MCP_OAUTH_CIMD_ENABLED=true. (#27069 by @hanneskuettner)
    • Allow disabling the health check endpoint via HEALTHCHECK_ENABLED or selectively disabled checked services via HEALTHCHECK_SERVICES (#27160 by @ComfortablyCoding)
  • @directus/system-data
    • Added auto-save for version editing @alvarosabu (#27449 by @alvarosabu)
    • Replaced status field with archived boolean in collection settings @alvarosabu (#27397 by @formfcw)
    • Added MCP OAuth 2.1 authorization server. MCP clients (like Claude, Codex) can now authenticate via standard OAuth flow with PKCE instead of requiring a manually provisioned static token. Enable with MCP_OAUTH_ENABLED=true. Dynamic and client ID metadata registration were kept separately opt-in with MCP_OAUTH_DCR_ENABLED=true and MCP_OAUTH_CIMD_ENABLED=true. (#27069 by @hanneskuettner)
    • Updated directus_oauth_* system collection visibility to match other system collections (#27682 by @hanneskuettner)
  • @directus/types
    • Added auto-save for version editing @alvarosabu (#27449 by @alvarosabu)
    • Updated type system, borders, and theme variables @formfcw (#27437 by @formfcw)
    • Added MCP OAuth 2.1 authorization server. MCP clients (like Claude, Codex) can now authenticate via standard OAuth flow with PKCE instead of requiring a manually provisioned static token. Enable with MCP_OAUTH_ENABLED=true. Dynamic and client ID metadata registration were kept separately opt-in with MCP_OAUTH_DCR_ENABLED=true and MCP_OAUTH_CIMD_ENABLED=true. (#27069 by @hanneskuettner)
    • Refactored focus ring from border/box-shadow to outline @formfcw (#27437 by @formfcw)
    • Added support for item-less versions @Nitwel (#27397 by @formfcw)
    • Added support for the version query parameter in collections @Nitwel (#27397 by @formfcw)
    • Fixed health check results not being shared in multi-instance settings. Restricted /server/health to authenticated users (#27160 by @ComfortablyCoding)
  • @directus/errors
    • Added Publish without Review action to the publish split menu with shortcut @alvarosabu (#27501 by @alvarosabu)
  • @directus/composables
    • Updated type system, borders, and theme variables @formfcw (#27437 by @formfcw)
    • Added version select to collection page @alvarosabu (#27397 by @formfcw)
  • @directus/themes
    • Updated type system, borders, and theme variables @formfcw (#27437 by @formfcw)
    • Refactored focus ring from border/box-shadow to outline @formfcw (#27437 by @formfcw)
    • Updated header bar elements and deprecated the headline slot @formfcw (#27437 by @formfcw)
  • @directus/utils
    • Added MCP OAuth 2.1 authorization server. MCP clients (like Claude, Codex) can now authenticate via standard OAuth flow with PKCE instead of requiring a manually provisioned static token. Enable with MCP_OAUTH_ENABLED=true. Dynamic and client ID metadata registration were kept separately opt-in with MCP_OAUTH_DCR_ENABLED=true and MCP_OAUTH_CIMD_ENABLED=true. (#27069 by @hanneskuettner)
  • @directus/sdk
    • Added JSON filtering, alias and sorting support (#26981 by @br41nslug)
    • Added support for item-less versions @Nitwel (#27397 by @formfcw)
  • @directus/specs
    • Added support for the version query parameter in collections @Nitwel (#27397 by @formfcw)
  • @directus/visual-editing
    • Redesigned the editable-element overlay with theming, RTL support and improved a11y @formfcw (#27469 by @formfcw)
  • @directus/memory
    • Added TTL support for local KV and cache stores (#27160 by @ComfortablyCoding)

🐛 Bug Fixes & Optimizations

  • @directus/app
    • Added DIRECTUS_DOMAIN constant and replaced hardcoded directus.io to directus.com using the new constant (#27417 by @ComfortablyCoding)
    • Consolidated URLs and emails into shared constants (#27641 by @HZooly)
    • Limited mobile sidebar width so the overlay can be tapped to close it @HZooly (#27437 by @formfcw)
    • Bumped vue-tsc to 3.1.8 (#27437 by @formfcw)
    • Fixed tick rendering when count exceeds display limit in v-slider (#27644 by @HZooly)
    • Fixed icon alignment in v-divider component @HZooly (#27437 by @formfcw)
    • Fixed v-dialog returning focus to opener instead of an autofocused child on close @formfcw (#27464 by @formfcw)
    • Fixed flow handle button alignment in flow editor @HZooly (#27437 by @formfcw)
    • Shown "Import in background" checkbox only when a file is selected @HZooly (#27437 by @formfcw)
    • Fixed sidebar reopening at minimum size after being collapsed via drag handle @HZooly (#27437 by @formfcw)
    • Capped datepicker year to prevent invalid date (#27659 by @HZooly)
    • Bumped Vitest to 3.2.6 (#27686 by @br41nslug)
    • Fixed EXTENSIONS_PATH and EXTENSIONS_LOCATION env vars not being respected by the Vite dev server (#27642 by @HZooly)
    • Added notice on license page with oig link (#27661 by @robluton)
    • Fixed vue console warnings related to the comparison modal (#27538 by @formfcw)
    • Fixed bug on tooltip value when decimals is 0 in pie chart panel (#27356 by @Prateet-Github)
    • Fixed misaligned filter editor in search bar @formfcw (#27454 by @formfcw)
    • Added missing collection note translations for the directus_oauth_* system collections (#27682 by @hanneskuettner)
    • Changed back button behavior, always navigates one level up @HZooly (#27437 by @formfcw)
    • Fixed default favicon path to resolve against the instance root path instead of the site origin. (#27095 by @singhvishalkr)
    • Fixed repeater interface ignoring per-field translations and $t: keys on sub-field labels, and added a "Field Name Translations" section to the sub-field configuration UI (#27374 by @khanahmad4527)
    • Fixed search input not trimming whitespace, causing queries with leading or trailing spaces to return no results (#27359 by @khanahmad4527)
    • Added minor copy change to license onboarding and license key interface (#27651 by @robluton)
    • Fixed calendar layout toolbar responsiveness @HZooly (#27437 by @formfcw)
    • Updated license request links. (#27652 by @HZooly)
    • Fixed the error handling (try-catch) when saving a field in Directus Studio. (#27486 by @baguse)
    • Fixed items not being selectable in the collection drawer when the Kanban layout is used while the parent item is opened in a version context @alvarosabu (#27427 by @alvarosabu)
    • Fixed AI assistant "Clear conversation" not canceling in-flight requests, causing them to continue running in the background (#27646 by @levgiorg)
    • Added support for translatable flow names via the existing $t: prefix and translation strings, matching the field/collection label pattern. The flow name input in the flow editor now exposes the translation picker. (#27472 by @khanahmad4527)
    • Removed unsupported json filter function from the studio (#27669 by @sourav-18)
    • Fixed bookmark icon and color not showing in header @formfcw (#27437 by @formfcw)
    • Fixed UI freeze caused by WYSIWYG interface when its non-editable state toggles @formfcw (#27515 by @formfcw)
    • Fixed project setup silently ignoring invalid license keys (#27671 by @ComfortablyCoding)
  • @directus/api
    • Bumped Vitest to 3.2.6 (#27686 by @br41nslug)
    • Fixed project setup silently ignoring invalid license keys (#27671 by @ComfortablyCoding)
    • Fixed nested deep query parameters being dropped when filters use dynamic variables (#27676 by @mazen-salah)
    • Fixed bulk creation of itemless drafts always fails (#27683 by @ComfortablyCoding)
    • Fixed SSO resolver erroring when admin is not defined (#27662 by @ComfortablyCoding)
    • Fixed Postgres numeric overflow errors being misattributed to an unrelated field (#27690 by @MahinAnowar)
    • Fixed registration email verification tokens to use the configured secret fallback when SECRET is missing. (#27406 by @rijkvanzanten)
    • Bumped axios, js-cookie, samlify, systeminformation, simple-git, fast-uri dependencies (#27589 by @br41nslug)
    • Fixed MCP OAuth dynamic client registration defaults and metadata responses. (#27628 by @hanneskuettner)
    • Prevented setting a custom user provider when not entitled to SSO (#27675 by @ComfortablyCoding)
    • Fixed aliased relational fields in GraphQL queries, fragments and REST queries (#27054 by @AlexGaillard)
    • Fixed active seat processing not accounting for user/role changes (#27662 by @ComfortablyCoding)
    • Removed dead isMinimumAppPermission function (#27662 by @ComfortablyCoding)
    • Fixed failed itemless drafts being dropped from version reads when limit=-1 (#27578 by @alvarosabu)
    • Added a namespace to shares cache keys (#27707 by @br41nslug)
    • Updated IP blocking (#27606 by @br41nslug)
    • Updated the built-in OpenAI and Anthropic AI model lists to use the latest available API models. (#27602 by @hanneskuettner)
    • Fixed singletons allowing multiple itemless versions (#27532 by @formfcw)
    • Fixed issue causing duplicate admin roles on first admin creation (#27663 by @robluton)
    • Fixed non custom permissions denied irrespective of if entitled (#27662 by @ComfortablyCoding)
  • @directus/constants
    • Added DIRECTUS_DOMAIN constant and replaced hardcoded directus.io to directus.com using the new constant (#27417 by @ComfortablyCoding)
    • Consolidated URLs and emails into shared constants (#27641 by @HZooly)
  • @directus/system-data
    • Added AI-powered translations to the translations interface, including glossary, style guide, and configurable default model settings derived from the enabled providers and allowed models. (#26940 by @bryantgillespie)
    • Updated the built-in OpenAI and Anthropic AI model lists to use the latest available API models. (#27602 by @hanneskuettner)
  • @directus/types
    • Added AI-powered translations to the translations interface, including glossary, style guide, and configurable default model settings derived from the enabled providers and allowed models. (#26940 by @bryantgillespie)
    • Added JSON filtering, alias and sorting support (#26981 by @br41nslug)
  • @directus/utils
    • Added JSON filtering, alias and sorting support (#26981 by @br41nslug)
  • @directus/sdk
    • Fixed health check results not being shared in multi-instance settings. Restricted /server/health to authenticated users (#27160 by @ComfortablyCoding)
    • Fixed SingletonCollections incorrectly including core schema collections (#27196 by @kheiner)
  • @directus/ai
    • Updated the built-in OpenAI and Anthropic AI model lists to use the latest available API models. (#27602 by @hanneskuettner)
  • @directus/release-notes-generator
    • Ignored private workspace packages when generating release notes (#27637 by @licitdev)

📦 Published Versions