# Directus v12.3.0 — Release & Upgrade Intelligence
- **Product:** Directus (https://directus.io)
- **Version:** v12.3.0
- **Released:** Aug 18, 2026
- **Impact Score:** 7/10
- **Breaking Changes:** Source flagged
- **Canonical Analysis:** https://changelogs.us/directus/updates/v12.3.0/

## Executive Summary (TL;DR)
Directus v12.3.0. Source highlight: ⚠️ Potential Breaking Changes

## Breaking Changes & Deprecations
- ⚠️ Potential Breaking Changes **Fixed storage connections leaking when asset requests were cancelled or a transformation failed, which eventually made every asset request return a permission error until Directus was restarted ([#28076](https://github.com/directus/directus/pull/28076))**
- - Fixed WebSocket rate limiting breaking on shared Redis setups where keys must start with a per-project prefix. The WebSocket limiter now accepts `RATE_LIMITER_WEBSOCKETS_*` values as overrides, including `RATE_LIMITER_WEBSOCKETS_KEY_PREFIX` to override the Redis key prefix. ([#28107](https://github.com/directus/directus/pull/28107) by @AlexGaillard)

## New Features
- Added search-first AI tool discovery for chat and MCP tools, with schema pinned as a root chat tool. (#27797 by @bryantgillespie)
- Added a caption field to the WYSIWYG image drawer, which wraps the image in a `figure` with a `figcaption` (#28026 by @alvarosabu)
- Added the collection name appended to display template in item and drawer headers (#28078 by @AlexGaillard)
- Added search-first AI tool discovery for chat and MCP tools, with schema pinned as a root chat tool. (#27797 by @bryantgillespie)
- Introduced `@directus/cli` (`d6s` / `directus-cli`) — a client-side CLI that syncs schema and configuration between Directus instances through committed JSON files, with `sync pull`, `sync diff`, `sync push`, and an interactive wizard (#27861 by @bryantgillespie)
- Updated outdated type definitions for `directus_files`, `directus_collections`, `directus_deployments`, `directus_settings`, and `directus_users` (#27945 by @kheiner)

## Bug Fixes
- Fixed "Update Items" and "Delete Items" operations affecting every item in a collection when given an empty or missing key or query (#27759 by @ComfortablyCoding)
- Fixed storage connections leaking when asset requests were cancelled or a transformation failed, which eventually made every asset request return a permission error until Directus was restarted (#28076 by @dstockton)
- Fixed storage connections leaking when asset requests were cancelled or a transformation failed, which eventually made every asset request return a permission error until Directus was restarted (#28076 by @dstockton)
- Fixed storage connections leaking when asset requests were cancelled or a transformation failed, which eventually made every asset request return a permission error until Directus was restarted (#28076 by @dstockton)
- Fixed storage connections leaking when asset requests were cancelled or a transformation failed, which eventually made every asset request return a permission error until Directus was restarted (#28076 by @dstockton)
- Removed unused dependencies across the monorepo (#28049 by @ComfortablyCoding)
