v3.81.0
payloadcms/payloadv3.81.0Apr 1, 2026by DanRibbens
AI Summary
Added an LLM eval suite for Payload conventions, stabilized read replica support for Postgres, and improved storage adapter reliability. It also fixes various bugs related to auth, caching, and Next.js compatibility.
Key Highlights
- Added LLM eval suite for Payload conventions and code generation
- Stabilized read replicas support for Postgres database
- Fixed storage adapters (S3, Vercel Blob) and Next.js HMR compatibility
- Added field-level access control to internal auth fields
New Features
- LLM eval suite
- Next.js admin panel cache fix
- Postgres read replica stabilization
- Plugin-MCP error handling improvements
Full Release Notes
## [v3.81.0](https://github.com/payloadcms/payload/compare/v3.80.0...v3.81.0) (2026-04-01) ### ๐ Features * add LLM eval suite for Payload conventions and code generation ([#15710](https://github.com/payloadcms/payload/issues/15710)) ([db4b00e](https://github.com/payloadcms/payload/commit/db4b00e)) * **next:** prevent admin panel errors when cacheComponents is enabled ([#16020](https://github.com/payloadcms/payload/issues/16020)) ([1ecd7dd](https://github.com/payloadcms/payload/commit/1ecd7dd)) ### ๐ Bug Fixes * update file-type, ajv and jose packages ([#16118](https://github.com/payloadcms/payload/issues/16118)) ([d09ed54](https://github.com/payloadcms/payload/commit/d09ed54)) * add field-level access control to internal auth fields ([#16119](https://github.com/payloadcms/payload/issues/16119)) ([4ae5577](https://github.com/payloadcms/payload/commit/4ae5577)) * where querying by a join field with relationship nested to an array ([#16101](https://github.com/payloadcms/payload/issues/16101)) ([0f79eed](https://github.com/payloadcms/payload/commit/0f79eed)) * trashed documents still show as IDs in relationship responses ([#16102](https://github.com/payloadcms/payload/issues/16102)) ([aa143e6](https://github.com/payloadcms/payload/commit/aa143e6)) * **db-mongodb:** virtual fields within blocks ([#16107](https://github.com/payloadcms/payload/issues/16107)) ([77cdb17](https://github.com/payloadcms/payload/commit/77cdb17)) * **db-postgres:** stabilize read replicas support ([#16083](https://github.com/payloadcms/payload/issues/16083)) ([46ddf8d](https://github.com/payloadcms/payload/commit/46ddf8d)) * **db-postgres:** handle blockType filters for versions ([#16071](https://github.com/payloadcms/payload/issues/16071)) ([727d74e](https://github.com/payloadcms/payload/commit/727d74e)) * **deps:** resolve high severity audit vulnerabilities ([#16104](https://github.com/payloadcms/payload/issues/16104)) ([c5a3767](https://github.com/payloadcms/payload/commit/c5a3767)) * **next:** respect canAccessAdmin when a custom dashboard view is configured ([#16105](https://github.com/payloadcms/payload/issues/16105)) ([329090c](https://github.com/payloadcms/payload/commit/329090c)) * **next:** forgot password `basePath` was not respected ([#16084](https://github.com/payloadcms/payload/issues/16084)) ([3c40241](https://github.com/payloadcms/payload/commit/3c40241)) * **plugin-multi-tenant:** forbidden error when logging in as a user with no tenant and no access to all tenants ([#16047](https://github.com/payloadcms/payload/issues/16047)) ([9c58e7c](https://github.com/payloadcms/payload/commit/9c58e7c)) * **richtext-lexical:** prevent invalid h0 heading nodes when all heading sizes are disabled ([#16090](https://github.com/payloadcms/payload/issues/16090)) ([185548a](https://github.com/payloadcms/payload/commit/185548a)) * **sdk:** pass trash to request ([#16092](https://github.com/payloadcms/payload/issues/16092)) ([e0b3e81](https://github.com/payloadcms/payload/commit/e0b3e81)) * **storage-gcs:** bump @google-cloud/storage ([#16046](https://github.com/payloadcms/payload/issues/16046)) ([5c06266](https://github.com/payloadcms/payload/commit/5c06266)) * **storage-vercel-blob:** properly handle `alwaysInsertFields` and add comprehensive integration test suite with a vercel blob emulator ([#16080](https://github.com/payloadcms/payload/issues/16080)) ([8530b45](https://github.com/payloadcms/payload/commit/8530b45)) * **templates:** add --no-server-fast-refresh to all dev scripts for Next.js 16.2+ compatibility ([#16074](https://github.com/payloadcms/payload/issues/16074)) ([8045887](https://github.com/payloadcms/payload/commit/8045887)) * **ui:** prevent data loss in copy-to-locale with drafts ([#16073](https://github.com/payloadcms/payload/issues/16073)) ([43b8de6](https://github.com/payloadcms/payload/commit/43b8de6)) * **ui:** `tokenInMemory` not set after refreshing cookie ([#15928](https://github.com/payloadcms/payload/issues/15928)) ([17266ab](https://github.com/payloadcms/payload/commit/17266ab)) * **ui:** respect `admin.dateFormat` for list view filters ([#16040](https://github.com/payloadcms/payload/issues/16040)) ([d5fe0ce](https://github.com/payloadcms/payload/commit/d5fe0ce)) ### ๐ Refactors * **ui:** live preview iframe loader ([#16004](https://github.com/payloadcms/payload/issues/16004)) ([167a01e](https://github.com/payloadcms/payload/commit/167a01e)) ### ๐ Documentation * clarify unique field index behavior and add warnings for array/blocks nesting ([#15969](https://github.com/payloadcms/payload/issues/15969)) ([38c1d4d](https://github.com/payloadcms/payload/commit/38c1d4d)) * document ListViewServerProps/ClientProps and custom list view component patterns ([#15970](https://github.com/payloadcms/payload/issues/15970)) ([eb3b227](https://github.com/payloadcms/payload/commit/eb3b227)) * adds code examples for how to fully implement textStateFeature ([#16053](https://github.com/payloadcms/payload/issues/16053)) ([80ae745](https://github.com/payloadcms/payload/commit/80ae745)) ### ๐งช Tests * add `defaultSort` join field property integration tests ([#16057](https://github.com/payloadcms/payload/issues/16057)) ([b2a8917](https://github.com/payloadcms/payload/commit/b2a8917)) ### ๐ Templates * fix broken images on Next.js 16 by using relative paths for local media ([#16058](https://github.com/payloadcms/payload/issues/16058)) ([1a0f4d0](https://github.com/payloadcms/payload/commit/1a0f4d0)) * bump to Next.js 16.2.1 ([#16032](https://github.com/payloadcms/payload/issues/16032)) ([5c3244f](https://github.com/payloadcms/payload/commit/5c3244f)) ### โ๏ธ CI * fix localstack startup ([#16048](https://github.com/payloadcms/payload/issues/16048)) ([0d15620](https://github.com/payloadcms/payload/commit/0d15620)) ### ๐ก Chores * **claude:** update audit-dependencies skill with lockfile strategy and override rules ([#16106](https://github.com/payloadcms/payload/issues/16106)) ([974870a](https://github.com/payloadcms/payload/commit/974870a)) * **deps:** bump qs-esm from 7.0.2 to 8.0.1 ([#16110](https://github.com/payloadcms/payload/issues/16110)) ([d6862fe](https://github.com/payloadcms/payload/commit/d6862fe)) ### ๐ค Contributors - Dan Ribbens (@DanRibbens) - Jarrod Flesch (@JarrodMFlesch) - angus-msquared (@angus-msquared) - Sean Zubrickas (@zubricks) - Alessio Gravili (@AlessioGr) - Patrik (@PatrikKozak) - Jake Fletcher (@jacobsfletch) - Mahmoud Hamdy (@mahmoodhamdi) - Elliot DeNolf (@denolfe) - Sasha (@r1tsuu) - Nathan Bo Wang (@nathanbowang) - Jon Bockhorst (@jmbockhorst) - Daniel Giljam (@DanielGiljam) - Kendell (@kendelljoseph)