v3.91.0
payloadcms/payloadv3.91.0Oct 15, 2026by denolfe
Upgrading?
AI Summary
This release introduces improvements to the plugin-mcp tooling and fixes critical bugs regarding version operations, join fields, and hot module reloading. It includes performance optimizations for MongoDB and Drizzle, alongside updates to the UI and storage plugins. However, it introduces breaking changes concerning Node.js version requirements and updates to the email and storage dependencies.
Key Highlights
- Enhanced plugin-mcp with missing properties and cleaned object inputs
- Fixed Hot Module Reload (HMR) issues when Next.js basePath is set
- Significantly reduced memory usage for referenced block schemas in MongoDB
- Added image thumbnails to the folder list view in the UI
- Upgraded email-nodemailer to v10 to resolve security advisories
Breaking Changes
- Minimum Node.js version raised to 20.18.1
- Upgraded email-nodemailer to v10; custom transports require removing @types/nodemailer
- storage-azure minimum Node version raised to 22.0.0
New Features
- Add missing properties to find tools in plugin-mcp
- Backport nested select projections to GraphQL (3.x)
- Show image thumbnails in folder list view
- Preserve default block types when conditions reveal rows
- Add _parent_id index to localized tables in Drizzle
Full Release Notes
## [v3.91.0](https://github.com/payloadcms/payload/compare/v3.90.2...v3.91.0) (2026-10-15) ### 🚀 Features * **plugin-mcp:** add missing properties to find tools, clean up object inputs ([#18436](https://github.com/payloadcms/payload/issues/18436)) ([0f6c5b0](https://github.com/payloadcms/payload/commit/0f6c5b0)) ### 🐛 Bug Fixes * return 404 for version operations when versions are disabled ([#18057](https://github.com/payloadcms/payload/issues/18057)) ([d72c669](https://github.com/payloadcms/payload/commit/d72c669)) * prevent join field where mutation during query validation ([#18511](https://github.com/payloadcms/payload/issues/18511)) ([5060fee](https://github.com/payloadcms/payload/commit/5060fee)) * bump minimum node version to 20.18.1 ([#18467](https://github.com/payloadcms/payload/issues/18467)) ([fe030c5](https://github.com/payloadcms/payload/commit/fe030c5)) * dev HMR reload not working when Next.js basePath is set ([#18485](https://github.com/payloadcms/payload/issues/18485)) ([f56e92e](https://github.com/payloadcms/payload/commit/f56e92e)) * prevent silent CLI exits ([#18398](https://github.com/payloadcms/payload/issues/18398)) ([1fcb220](https://github.com/payloadcms/payload/commit/1fcb220)) * backport v4 fix to render custom block views on initial load ([#18188](https://github.com/payloadcms/payload/issues/18188)) ([5eb5471](https://github.com/payloadcms/payload/commit/5eb5471)) * save job logs when runHooks is enabled ([#18365](https://github.com/payloadcms/payload/issues/18365)) ([26731e6](https://github.com/payloadcms/payload/commit/26731e6)) * check draft read access against the latest version in findByID ([#18000](https://github.com/payloadcms/payload/issues/18000)) ([9106bf8](https://github.com/payloadcms/payload/commit/9106bf8)) * **drizzle:** size sqlite batch inserts by table column count ([#17235](https://github.com/payloadcms/payload/issues/17235)) ([d4c81bb](https://github.com/payloadcms/payload/commit/d4c81bb)) * **email-nodemailer:** upgrade to nodemailer 10 to resolve security advisories ([#18736](https://github.com/payloadcms/payload/issues/18736)) ([e93b7f2](https://github.com/payloadcms/payload/commit/e93b7f2)) * **graphql:** backport nested select projections to 3.x ([#18366](https://github.com/payloadcms/payload/issues/18366)) ([231634a](https://github.com/payloadcms/payload/commit/231634a)) * **plugin-cloud-storage:** hide storage metadata from list controls ([#18356](https://github.com/payloadcms/payload/issues/18356)) ([52fadda](https://github.com/payloadcms/payload/commit/52fadda)) * **plugin-import-export:** filter disabled export fields ([#18434](https://github.com/payloadcms/payload/issues/18434)) ([b65335c](https://github.com/payloadcms/payload/commit/b65335c)) * **plugin-seo:** authorize generation for manual fields ([#18428](https://github.com/payloadcms/payload/issues/18428)) ([451dd68](https://github.com/payloadcms/payload/commit/451dd68)) * **richtext-lexical:** handle pasting unsupported blocks ([#18368](https://github.com/payloadcms/payload/issues/18368)) ([3cfa97b](https://github.com/payloadcms/payload/commit/3cfa97b)) * **storage-azure:** bump @azure/storage-blob to 12.34.0 to fix chunked uploads over 256 MiB ([#18469](https://github.com/payloadcms/payload/issues/18469)) ([99f0fcd](https://github.com/payloadcms/payload/commit/99f0fcd)) * **ui:** show image thumbnails in folder list view ([#17980](https://github.com/payloadcms/payload/issues/17980)) ([c1569dc](https://github.com/payloadcms/payload/commit/c1569dc)) * **ui:** preserve default block types when conditions reveal rows ([#18299](https://github.com/payloadcms/payload/issues/18299)) ([2554a34](https://github.com/payloadcms/payload/commit/2554a34)) * **ui:** backport activity-aware auth sessions ([#17854](https://github.com/payloadcms/payload/issues/17854)) ([7691ba3](https://github.com/payloadcms/payload/commit/7691ba3)) ### ⚡ Performance * **db-mongodb:** reduce referenced block schema memory usage significantly ([#18367](https://github.com/payloadcms/payload/issues/18367)) ([7defbc6](https://github.com/payloadcms/payload/commit/7defbc6)) * **drizzle:** add _parent_id index to localized tables ([#18724](https://github.com/payloadcms/payload/issues/18724)) ([e3559cd](https://github.com/payloadcms/payload/commit/e3559cd)) * **ui:** build the client field schema map in linear time for rich text fields ([#18697](https://github.com/payloadcms/payload/issues/18697)) ([000093d](https://github.com/payloadcms/payload/commit/000093d)) ### 📚 Documentation * fix broken rich text link and typos ([#18699](https://github.com/payloadcms/payload/issues/18699)) ([7bf7fb5](https://github.com/payloadcms/payload/commit/7bf7fb5)) * catalog additional UI components ([#18195](https://github.com/payloadcms/payload/issues/18195)) ([c114379](https://github.com/payloadcms/payload/commit/c114379)) ### ⚙️ CI * add sync-mirror workflow (3.x) ([#18561](https://github.com/payloadcms/payload/issues/18561)) ([3fd91ec](https://github.com/payloadcms/payload/commit/3fd91ec)) ### 🏡 Chores * bump undici to 7.29.1 ([#18514](https://github.com/payloadcms/payload/issues/18514)) ([c1e959f](https://github.com/payloadcms/payload/commit/c1e959f)) ### ⚠️ BREAKING CHANGES * bump minimum node version to 20.18.1 ([#18467](https://github.com/payloadcms/payload/issues/18467)) ([fe030c5](https://github.com/payloadcms/payload/commit/fe030c5)) **BREAKING:** Raises the minimum supported Node.js version. **NOTE:** Node 18 already had issues, this just bumps the value to be what was functionally true. * **email-nodemailer:** upgrade to nodemailer 10 to resolve security advisories ([#18736](https://github.com/payloadcms/payload/issues/18736)) ([e93b7f2](https://github.com/payloadcms/payload/commit/e93b7f2)) If you pass your own `transport` created with nodemailer 9, upgrade `nodemailer` to `^10` and remove `@types/nodemailer`. A transport typed by `@types/nodemailer` no longer type-checks against the adapter. Runtime behavior does not change. * **storage-azure:** bump @azure/storage-blob to 12.34.0 to fix chunked uploads over 256 MiB ([#18469](https://github.com/payloadcms/payload/issues/18469)) ([99f0fcd](https://github.com/payloadcms/payload/commit/99f0fcd)) **Breaking:** this bumps the minimum node version required by `@payloadcms/storage-azure` from 20.18.1 to 22.0.0. Due to `@azure/storage-blob` bumping their min. node version to 22.0.0 in a minor release, we're not able to avoid this change. ### 🤝 Contributors - Nate Lentz (@nathanlentz) - Patrik (@PatrikKozak) - Jake Fletcher (@jacobsfletch) - toyeshhm (@toyeshhm) - Apoorv Darshan (@apoorvdarshan) - Elliot DeNolf (@denolfe) - Jarrod Flesch (@JarrodMFlesch) - Alessio Gravili (@AlessioGr) - Jessica Rynkar (@JessRynkar) - Sean Zubrickas (@zubricks) - Paul (@paulpopus) - Sasha (@r1tsuu)
Related Repositories
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
Reverse engineer anything with agents, from app behavior down to native binaries.
The open source coding agent.
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.