v12.3.1

usestrix/strixv12.3.1Aug 25, 2026by github-actions[bot]

AI Summary

This patch release focuses on bug fixes and stability improvements across the API, SDK, and CLI. It resolves WebSocket listener leaks, fixes GraphQL query behavior, and updates storage driver dependencies.

Key Highlights

  • Added `countFilterListeners`, `countActionListeners`, and `countInitListeners` methods to the emitter.
  • Fixed WebSocket heartbeat leaking listeners on ping timeouts.
  • Fixed GraphQL query fragments returning null fields.
  • Fixed SDK `unsubscribe()` not removing subscriptions across reconnects.
  • Updated storage driver dependencies for S3, GCS, Azure, and Supabase.

New Features

  • Added listener counting methods to the emitter.

Full Release Notes

### ✨ New Features & Improvements

- **@directus/api**
  - Added `countFilterListeners`, `countActionListeners`, and `countInitListeners` methods to the `emitter`, exposing the number of registered handlers for each event ([#28117](https://github.com/directus/directus/pull/28117) by @ComfortablyCoding)

### 🐛 Bug Fixes & Optimizations

- **@directus/app**
  - Fixed MCP OAuth clients settings pages concatenating breadcrumbs into the page title ([#28115](https://github.com/directus/directus/pull/28115) by @MHJahanbakhsh)
- **@directus/api**
  - Fixed the WebSocket heartbeat leaking a `websocket.message` listener on each ping when a client failed to respond in time ([#28117](https://github.com/directus/directus/pull/28117) by @ComfortablyCoding)
  - Fixed GraphQL query fragments returning null fields ([#28128](https://github.com/directus/directus/pull/28128) by @ComfortablyCoding)
  - Fixed public registration verification using the provided email instead of the stored one ([#28144](https://github.com/directus/directus/pull/28144) by @br41nslug)
  - Removed `user_created` and `date_created` for `update` from recommended permissions for `directus_shares` ([#28145](https://github.com/directus/directus/pull/28145) by @br41nslug)
  - Updated storage driver dependencies ([#28119](https://github.com/directus/directus/pull/28119) by @ComfortablyCoding)
- **@directus/cli**
  - Stripped `project_id` when pulling settings, so a sync no longer copies one instance's identity onto another ([#28132](https://github.com/directus/directus/pull/28132) by @lazerg)
- **@directus/sdk**
  - Fixed `unsubscribe()` not removing subscriptions, causing them to persist across reconnects and accumulate for the lifetime of the client ([#28117](https://github.com/directus/directus/pull/28117) by @ComfortablyCoding)
- **@directus/system-data**
  - Removed `user_created` and `date_created` for `update` from recommended permissions for `directus_shares` ([#28145](https://github.com/directus/directus/pull/28145) by @br41nslug)
- **@directus/storage-driver-s3**
  - Updated storage driver dependencies ([#28119](https://github.com/directus/directus/pull/28119) by @ComfortablyCoding)
- **@directus/storage-driver-gcs**
  - Updated storage driver dependencies ([#28119](https://github.com/directus/directus/pull/28119) by @ComfortablyCoding)
- **@directus/storage-driver-azure**
  - Updated storage driver dependencies ([#28119](https://github.com/directus/directus/pull/28119) by @ComfortablyCoding)
- **@directus/storage-driver-supabase**
  - Updated storage driver dependencies ([#28119](https://github.com/directus/directus/pull/28119) by @ComfortablyCoding)

### 📦 Published Versions

- `@directus/app@17.1.1`
- `@directus/api@39.1.0`
- `@directus/cli@12.2.1`
- `@directus/composables@11.6.2`
- `create-directus-extension@12.1.4`
- `@directus/env@6.2.2`
- `@directus/extensions@4.0.4`
- `@directus/extensions-sdk@18.0.4`
- `@directus/memory@4.0.4`
- `@directus/pressure@4.0.4`
- `@directus/storage-driver-azure@13.0.4`
- `@directus/storage-driver-cloudinary@14.0.1`
- `@directus/storage-driver-gcs@13.0.4`
- `@directus/storage-driver-s3@14.0.1`
- `@directus/storage-driver-supabase@5.0.1`
- `@directus/system-data@4.6.1`
- `@directus/themes@2.0.4`
- `@directus/utils@13.5.4`
- `@directus/validation@3.0.4`
- `@directus/sdk@25.0.1`