v5.46.0

daijro/camoufoxv5.46.0May 13, 2026by internal-releases[bot]

AI Summary

Introduces UI improvements like a collapsible trial banner and preview support for media, replaces the sendmail email provider with nodemailer, and updates CI runners to Node 24.

Key Highlights

  • Add preview support to images and videos
  • Replace sendmail package with nodemailer
  • Add possibility to customize blocks in content-manager
  • Mark Strapi v4 as End of Life

New Features

  • Close button for the trial banner
  • Collapse button for banners
  • Preview support for images and videos
  • Customizable blocks in content-manager
  • Nodemailer integration

Full Release Notes

## 5.46.0 (2026-05-13)

### 🚀 New feature

- close button for the trial banner ([3fd5f9fd56](https://github.com/strapi/strapi/commit/3fd5f9fd56))
- adding collapse button ([901465b1e2](https://github.com/strapi/strapi/commit/901465b1e2))
- updating design after Claude comments ([d1cb08f76e](https://github.com/strapi/strapi/commit/d1cb08f76e))
- getting that button to stick while the banner doesn't ([f04fe97a75](https://github.com/strapi/strapi/commit/f04fe97a75))
- add preview support to images and videos ([#25216](https://github.com/strapi/strapi/pull/25216))
- **content-manager:** add possibility to customize blocks ([#22063](https://github.com/strapi/strapi/pull/22063))
- **email:** replace sendmail package with nodemailer in provider ([#25893](https://github.com/strapi/strapi/pull/25893))

### 🔥 Bug fix

- making button float better ([c5396f1c18](https://github.com/strapi/strapi/commit/c5396f1c18))
- using isValid & adding translations ([59498861f7](https://github.com/strapi/strapi/commit/59498861f7))
- auto-expand and scroll to newly added dynamic zone components ([#26044](https://github.com/strapi/strapi/pull/26044))
- keep draft link on x-to-one relations non-dp to dp ([#26179](https://github.com/strapi/strapi/pull/26179))
- long component names overflow in dynamic zone picker ([#26010](https://github.com/strapi/strapi/pull/26010))
- remove await from several telemetry calls to prevent blocking ([#24743](https://github.com/strapi/strapi/pull/24743))
- **admin:** resolve prism is not defined ([#25660](https://github.com/strapi/strapi/pull/25660))
- **admin:** handle 204 no-content response in fetch client ([#25416](https://github.com/strapi/strapi/pull/25416))
- **content-manager:** local-storage was not updated if filters were removed ([#26240](https://github.com/strapi/strapi/pull/26240))
- **content-manager:** skip draft/modified count queries for non-D&P content types ([#26049](https://github.com/strapi/strapi/pull/26049))
- **core/admin:** admin and content api tokens retro-compatibility ([#26313](https://github.com/strapi/strapi/pull/26313))
- **core/core:** validation uses injected strapi instance ([#26211](https://github.com/strapi/strapi/pull/26211))
- **database:** morph typeField wins over same-name fields in populate ([#26120](https://github.com/strapi/strapi/pull/26120))
- **database:** append primary key to ORDER BY for paginated selects ([#26032](https://github.com/strapi/strapi/pull/26032))
- **db:** deterministic schema hash by sorting tables before hashing ([#26202](https://github.com/strapi/strapi/pull/26202))
- **graphql:** isolate root query args per root field ([#26178](https://github.com/strapi/strapi/pull/26178))
- **test:** check button attribute differently ([#26212](https://github.com/strapi/strapi/pull/26212))
- **utils:** throw ValidationError for all invalid query params (not just sort) ([#25894](https://github.com/strapi/strapi/pull/25894))

### ⚙️ Chore

- adding translations for the banner ([e696d94627](https://github.com/strapi/strapi/commit/e696d94627))
- turkish translations for cloud ([#26223](https://github.com/strapi/strapi/pull/26223))
- **.github:** bump CI runners to node 24 ([#26231](https://github.com/strapi/strapi/pull/26231))
- **ai:** ignore .agents/local-skills and .agents/local-state for local only harness ([#26276](https://github.com/strapi/strapi/pull/26276))
- **deps:** bump eslint-plugin-react ([#26227](https://github.com/strapi/strapi/pull/26227))
- **deps:** migrate msw 1.x → 2.13.4 across admin test suites ([#26065](https://github.com/strapi/strapi/pull/26065))
- **deps:** upgrade typedoc to 0.28.19 and related plugins ([#26082](https://github.com/strapi/strapi/pull/26082))
- **security:** mark Strapi v4 as End of Life ([#26162](https://github.com/strapi/strapi/pull/26162))
- **upload:** add concurrentUploadSize config ([#26053](https://github.com/strapi/strapi/pull/26053))

### ❤️ Thank You

- Alanderson Zelindro da Rosa
- Andrei L @unrevised6419
- Anslem @ace2016
- Ben Irvin
- Christian Dreier
- DMehaffy
- Florent Baldino @Baldinof
- guoyangzhen
- Jamie Howard @jhoward1994
- markkaylor
- mathildeleg @mathildeleg
- Nico André
- Nicolò
- ozzy @ddoemonn
- Rémi de Juvigny @remidej
- Simen @Eventyret
- Simon Norris