❌

Normale weergave

v5.59.0

21 Oktober 2026 om 11:47

5.59.0 (2026-10-21)

πŸš€ New feature

πŸ”₯ Bug fix

  • correcting linting after Codex review (13c317ddbd)
  • updating the spacing beween the lines (f6aa6e3b96)
  • trying the space in a different way (d6450b12ad)
  • admin: reject role name and description longer than 255 characters (#28002)
  • admin: apply boolean false filters in list view (#27938)
  • admin: custom RBAC conditions in a custom category are discarded (#28020)
  • admin: derive the auth cookie path from admin.url (#27619)
  • admin: reject token name and description longer than 255 characters (#28004)
  • cli: remove the expiration date check (#28076)
  • content-manager: keep list columns when an attribute is renamed (#28036)
  • content-releases: deleting a non-localized entry leaves it in its releases (#28023)
  • content-releases: await release cleanup inside its try/catch (#27893)
  • content-releases: bootstrap fails when the core store has no saved schemas (#28121)
  • core: close remaining clone relation edge cases (#26970)
  • core: fetch requests setting their own content-length fail after loading undici 8 (8b5dea865d)
  • core: https requests through a proxy fail after loading undici 8 (29c762cd0d)
  • core: unhandled rejection when an entry event fails to emit after commit (#28017)
  • core/core: event hub off() and once() remove the wrong listener (#28051)
  • create-strapi-app: next-step cd command misreads folder names that start with - or ~ (31e16d56df)
  • create-strapi-app: bump better-sqlite3 pin to 12.11.1 for Node 26 support (#27759)
  • database: populate relations sequentially inside a transaction (#27644)
  • database: connection function holds a pool connection forever on postgres and mysql (#27979)
  • document-service: publishing an entry linked from a widely reused component takes minutes (#27942)
  • email-nodemailer: decodeRfc2047 ignores the charset of encoded words (#27822)
  • i18n: restore ICU arguments in 68 admin locale strings (#27908)
  • review-workflows: weekly telemetry sends metrics object as numberOfActiveWorkflows (#27866)
  • review-workflows: hide review workflow panel on published tab (#28009)
  • review-workflows: weekly metrics sendMetrics regression tests never run (#28063)
  • upload: honor sharp limitInputPixels config in image manipulation (#27161)
  • upload: rebuild the content manager media field (#27848)
  • upload: add an Add asset menu to the media field (#27856)

πŸ“š Documentation Changes

  • fix three dead relative links (#27719)

βš™οΈ Chore

  • format files with prettier 3.9.9 (#28043)
  • ai: add create-issue skill (#27992)
  • database: upgrade knex from 3.0.1 to 3.3.0 (#27982)
  • deps: bump prettier from 3.6.2 to 3.9.9 (f8ce51ac65)
  • deps: upgrade undici from 6.29.0 to 8.11.2 (bff2ccfc7f)
  • deps: upgrade undici from 8.11.2 to 8.12.1 (a78ad0d6de)
  • deps: bump browserslist from 4.28.8 to 4.28.9 (#27851)
  • deps: bump markdown-it (#28074)
  • docs: contributor docs are excluded from prettier checks (#28062)
  • lint: eslint fails to parse vitest.config.ts in admin/server packages (#28064)
  • lint: extra-policy oxlint perf on the blocking gate (#27671)
  • review-workflows: migrate unit tests from jest to vitest (#27388)
  • review-workflows: stop passing ignored populate to workflow create and update (#27865)
  • types: centralise the window.strapi type in @strapi/types (#26213)
  • upload: enforce the media MCP ambient guard by construction (#27617)

πŸ’… Enhancement

  • database: describe connection pool timeouts (#28000)
  • utils: avoid rebuilding curried traversal wrappers on every call (#27947)
  • utils: remove per-key allocations from the query traversal (#27233)

⚠️ Changes to be aware of

Database driver update (knex 3.3.0)

Custom code that uses strapi.db.connection and calls delete() with limit or having, or truncate() with where, having or limit, now throws on PostgreSQL and SQLite. MySQL now applies the LIMIT. Before, the limit was ignored and every matching row was deleted, so check plugins or scripts that build such queries. Connection pool timeout errors now include the underlying connection error, and knex warnings now appear in the Strapi log as [database] knex: ….

(#27982)

Token and role names are limited to 255 characters

The name and description of API tokens, admin tokens, transfer tokens and admin roles now accept at most 255 characters. Longer values get a validation error under the field. Before, PostgreSQL returned a generic server error. Existing tokens with longer values keep working, but the admin rejects that long text on save until you shorten it.

(#28004) (#28002)

Node.js 22.19 or later is required

Strapi now uses undici 8, which requires Node.js 22.19.0 or later. The engines field still says >=20.0.0, so check your runtime: this release was only tested on Node 22.20 and later.

(#27934)

limitInputPixels must be a number or a boolean

The upload plugin now applies sharp.limitInputPixels. Strapi refuses to start if the value is not true, false or an integer of 0 or more. A value read straight from an environment variable is a string, so use env.int().

(#27161)

Known issue: deleting an entry changes past releases

When you delete an entry that belongs to a release that was already published, the entry is removed from that release, and the release status changes from "done" to "empty" or "ready". The published content is not affected. This already happened for localized entries, and it now happens for all entries.

(#28023)

Known issue: editing webhook headers

In Settings > Webhooks, if you clear the last header row and type a new header name, the old text can stay in front of it (for example X-CX-D instead of X-D). Check the header names before you save.

(#27671)

❀️ Thank You

  •  
❌