v3.82.0
payloadcms/payloadv3.82.0Apr 8, 2026by DanRibbens
AI Summary
This release introduces media file disambiguation via query parameters, a TypeScript post-process hook for type generation, and updates to plugin translations. It also fixes several bugs in Next.js, storage adapters, and the UI.
Key Highlights
- Added ability to disambiguate media files by prefix via query parameter
- Introduced `typescript.postProcess` hook for custom type generation
- Updated translations for Portuguese, Swedish, French, and Japanese plugins
- Fixed Next.js HMR issues and bumped minimum required Next.js version
New Features
- Media file prefix disambiguation
- TypeScript post-process hook
- Portuguese translation for plugin-redirects
- Search plugin `beforeSync` hook updates
- UI drag-and-drop components export
Full Release Notes
## [v3.82.0](https://github.com/payloadcms/payload/compare/v3.81.0...v3.82.0) (2026-04-08) ### 🚀 Features * disambiguate media files by prefix via query parameter ([#15844](https://github.com/payloadcms/payload/issues/15844)) ([05ddec1](https://github.com/payloadcms/payload/commit/05ddec1)) * add missing disableErrors to globals findOne operation ([#14913](https://github.com/payloadcms/payload/issues/14913)) ([c8332e7](https://github.com/payloadcms/payload/commit/c8332e7)) * improve default slugify utility by triming whitespace first ([#14421](https://github.com/payloadcms/payload/issues/14421)) ([fdaa051](https://github.com/payloadcms/payload/commit/fdaa051)) * add typescript.postProcess hook for type generation ([#16103](https://github.com/payloadcms/payload/issues/16103)) ([67b5dc3](https://github.com/payloadcms/payload/commit/67b5dc3)) * **plugin-redirects:** add Portuguese translation ([#15269](https://github.com/payloadcms/payload/issues/15269)) ([122f4c1](https://github.com/payloadcms/payload/commit/122f4c1)) * **plugin-search:** pass collection slug to `beforeSync` hook ([#11581](https://github.com/payloadcms/payload/issues/11581)) ([ebbd6ad](https://github.com/payloadcms/payload/commit/ebbd6ad)) * **ui:** export drag-and-drop components ([#12626](https://github.com/payloadcms/payload/issues/12626)) ([23b0f1b](https://github.com/payloadcms/payload/commit/23b0f1b)) ### 🐛 Bug Fixes * incorrect 24 hour format comment example ([#15649](https://github.com/payloadcms/payload/issues/15649)) ([f42b767](https://github.com/payloadcms/payload/commit/f42b767)) * resolve 404/500 error when downloading files containing hash in filename ([#15799](https://github.com/payloadcms/payload/issues/15799)) ([3a09387](https://github.com/payloadcms/payload/commit/3a09387)) * JSDoc string for focalPoint option in uploads so it correctly mentions defaults to true ([#13070](https://github.com/payloadcms/payload/issues/13070)) ([84090ac](https://github.com/payloadcms/payload/commit/84090ac)) * skip validation for unpublish operations with localized required fields ([#16120](https://github.com/payloadcms/payload/issues/16120)) ([24b9e13](https://github.com/payloadcms/payload/commit/24b9e13)) * skip default validation for virtual fields ([#16015](https://github.com/payloadcms/payload/issues/16015)) ([e09c619](https://github.com/payloadcms/payload/commit/e09c619)) * **db-mongodb:** update mongoose-paginate-v2 to fix collation pagination ([#16049](https://github.com/payloadcms/payload/issues/16049)) ([78a27ab](https://github.com/payloadcms/payload/commit/78a27ab)) * **drizzle:** convert equals/not_equals to in/not_in for hasMany relationship array values ([#15766](https://github.com/payloadcms/payload/issues/15766)) ([59af156](https://github.com/payloadcms/payload/commit/59af156)) * **next:** fix hmr, bump minimum required next.js 16 version to 16.2.2 ([#16202](https://github.com/payloadcms/payload/issues/16202)) ([7f83571](https://github.com/payloadcms/payload/commit/7f83571)) * **next:** admin.meta.title object form renders [object Object] in browser tab ([#16117](https://github.com/payloadcms/payload/issues/16117)) ([0981cdc](https://github.com/payloadcms/payload/commit/0981cdc)) * **plugin-mcp:** add error handling to convertCollectionSchemaToZod ([#16114](https://github.com/payloadcms/payload/issues/16114)) ([6184b0c](https://github.com/payloadcms/payload/commit/6184b0c)) * **plugin-multi-tenant:** infinite api calling loop on user switch ([#16065](https://github.com/payloadcms/payload/issues/16065)) ([3da805f](https://github.com/payloadcms/payload/commit/3da805f)) * **storage-*:** redundant re-uploads when file was already uploaded by the client and add comprehensive E2E tests for `s3` and `vercel-blob` ([#16115](https://github.com/payloadcms/payload/issues/16115)) ([a6735f3](https://github.com/payloadcms/payload/commit/a6735f3)) * **storage-azure:** fix azure storage mime type handling for streaming uploads ([#15949](https://github.com/payloadcms/payload/issues/15949)) ([cd7fcea](https://github.com/payloadcms/payload/commit/cd7fcea)) * **templates:** tailwind file extension is wrong in website template components.json file ([#9342](https://github.com/payloadcms/payload/issues/9342)) ([2011f28](https://github.com/payloadcms/payload/commit/2011f28)) * **templates:** fixed forgot password link ([#15037](https://github.com/payloadcms/payload/issues/15037)) ([b505e36](https://github.com/payloadcms/payload/commit/b505e36)) * **templates:** add generated files to ESLint ignores ([#15716](https://github.com/payloadcms/payload/issues/15716)) ([941a41f](https://github.com/payloadcms/payload/commit/941a41f)) * **templates:** typo in with-cloudflare-d1 template ([#14243](https://github.com/payloadcms/payload/issues/14243)) ([14b708f](https://github.com/payloadcms/payload/commit/14b708f)) * **translations:** fix Swedish unpublish translations and capitalization ([#15353](https://github.com/payloadcms/payload/issues/15353)) ([4e48706](https://github.com/payloadcms/payload/commit/4e48706)) * **translations:** correct French translation for 'move' action ([#14771](https://github.com/payloadcms/payload/issues/14771)) ([750d29f](https://github.com/payloadcms/payload/commit/750d29f)) * **translations:** update passive voice and newLabel wording in zh-TW translations ([#13761](https://github.com/payloadcms/payload/issues/13761)) ([e284ab5](https://github.com/payloadcms/payload/commit/e284ab5)) * **translations:** update Japanese translations related to localizeStatus ([#15358](https://github.com/payloadcms/payload/issues/15358)) ([7ab2881](https://github.com/payloadcms/payload/commit/7ab2881)) * **ui:** relationship filter duplicate options when switching operators ([#16204](https://github.com/payloadcms/payload/issues/16204)) ([3a1f31a](https://github.com/payloadcms/payload/commit/3a1f31a)) * **ui:** unpublish button missing for globals and version count incorrectly incrementing after unpublish ([#16203](https://github.com/payloadcms/payload/issues/16203)) ([1ddeb60](https://github.com/payloadcms/payload/commit/1ddeb60)) * **ui:** exclude unnamed tab labels from filter and groupBy field options ([#9965](https://github.com/payloadcms/payload/issues/9965)) ([b13c5c9](https://github.com/payloadcms/payload/commit/b13c5c9)) * **ui:** update node to v20 ([#15717](https://github.com/payloadcms/payload/issues/15717)) ([b2593d6](https://github.com/payloadcms/payload/commit/b2593d6)) * **ui:** radio fields do not reliably trigger admin.condition re-evaluation on sibling fields ([#16056](https://github.com/payloadcms/payload/issues/16056)) ([7e2a126](https://github.com/payloadcms/payload/commit/7e2a126)) ### ⚡ Performance * skip validation for default timezones ([#16129](https://github.com/payloadcms/payload/issues/16129)) ([76f3693](https://github.com/payloadcms/payload/commit/76f3693)) ### 🛠 Refactors * **plugin-seo:** rename non-JSX files from .tsx to .ts ([#14418](https://github.com/payloadcms/payload/issues/14418)) ([b67882c](https://github.com/payloadcms/payload/commit/b67882c)) * **translations:** improve German translations for consistency and accuracy ([#14439](https://github.com/payloadcms/payload/issues/14439)) ([f3c0bc8](https://github.com/payloadcms/payload/commit/f3c0bc8)) ### 📚 Documentation * fix typo in Collection Config docs (collection → collections) ([#16183](https://github.com/payloadcms/payload/issues/16183)) ([ac085cd](https://github.com/payloadcms/payload/commit/ac085cd)) * remove JSX comment from content in dashboard ([#16156](https://github.com/payloadcms/payload/issues/16156)) ([05447b7](https://github.com/payloadcms/payload/commit/05447b7)) * add warning about Cosmos dB incompatibility ([#13350](https://github.com/payloadcms/payload/issues/13350)) ([c4375bd](https://github.com/payloadcms/payload/commit/c4375bd)) * add info about custom errors via `APIError` to hooks overview ([#13047](https://github.com/payloadcms/payload/issues/13047)) ([d03054e](https://github.com/payloadcms/payload/commit/d03054e)) * fix typo in storage-adapters documentation ([#13648](https://github.com/payloadcms/payload/issues/13648)) ([911f059](https://github.com/payloadcms/payload/commit/911f059)) * rename incorrect usage of the cloud storage plugin to align with the imported module in storage-adapters.mdx ([#11475](https://github.com/payloadcms/payload/issues/11475)) ([d491f29](https://github.com/payloadcms/payload/commit/d491f29)) * add dev note about auth strategy hot-reload requirement ([#14122](https://github.com/payloadcms/payload/issues/14122)) ([c4da453](https://github.com/payloadcms/payload/commit/c4da453)) * fix anchor link reference for settingsMenu ([#14391](https://github.com/payloadcms/payload/issues/14391)) ([8c748d6](https://github.com/payloadcms/payload/commit/8c748d6)) * nested plugin ([#15230](https://github.com/payloadcms/payload/issues/15230)) ([2e653ae](https://github.com/payloadcms/payload/commit/2e653ae)) * add getDataByPath to useForm table ([#12098](https://github.com/payloadcms/payload/issues/12098)) ([69a49e7](https://github.com/payloadcms/payload/commit/69a49e7)) * add missing comma to seo plugin doc ([#11516](https://github.com/payloadcms/payload/issues/11516)) ([df03ed0](https://github.com/payloadcms/payload/commit/df03ed0)) * fix typo in ecommerce template link in seo plugin docs ([#15641](https://github.com/payloadcms/payload/issues/15641)) ([e2cd07c](https://github.com/payloadcms/payload/commit/e2cd07c)) * corrects Local API example in import export docs ([#16128](https://github.com/payloadcms/payload/issues/16128)) ([13a726a](https://github.com/payloadcms/payload/commit/13a726a)) * update link to Custom Components Performance docs ([#15723](https://github.com/payloadcms/payload/issues/15723)) ([9141e34](https://github.com/payloadcms/payload/commit/9141e34)) * update folders documentation with the right property ([#14060](https://github.com/payloadcms/payload/issues/14060)) ([b63198d](https://github.com/payloadcms/payload/commit/b63198d)) ### 📝 Templates * fix tailwind typography config so that it works better with shadcn CLI ([#16209](https://github.com/payloadcms/payload/issues/16209)) ([4931458](https://github.com/payloadcms/payload/commit/4931458)) ### 🏡 Chores * upgrade vitest and @vitest/ui to 4.1.2 ([#16154](https://github.com/payloadcms/payload/issues/16154)) ([5af591c](https://github.com/payloadcms/payload/commit/5af591c)) * export FieldAccessArgs from payload ([#14755](https://github.com/payloadcms/payload/issues/14755)) ([c3ec73f](https://github.com/payloadcms/payload/commit/c3ec73f)) * extract sanitizeField from sanitizeFields ([#16133](https://github.com/payloadcms/payload/issues/16133)) ([b705af4](https://github.com/payloadcms/payload/commit/b705af4)) * improve int summary counts when content-api is unavailable ([#16127](https://github.com/payloadcms/payload/issues/16127)) ([a65e715](https://github.com/payloadcms/payload/commit/a65e715)) * add React component file structure conventions to CLAUDE.md ([#16125](https://github.com/payloadcms/payload/issues/16125)) ([9284441](https://github.com/payloadcms/payload/commit/9284441)) * **richtext-lexical:** improve Swedish translations ([#15273](https://github.com/payloadcms/payload/issues/15273)) ([ac16116](https://github.com/payloadcms/payload/commit/ac16116)) * **templates:** add type detection on getGlobal utility ([#11617](https://github.com/payloadcms/payload/issues/11617)) ([b278a17](https://github.com/payloadcms/payload/commit/b278a17)) * **templates:** remove redundant condition check ([#12130](https://github.com/payloadcms/payload/issues/12130)) ([cf0a883](https://github.com/payloadcms/payload/commit/cf0a883)) ### 🤝 Contributors - Alessio Gravili (@AlessioGr) - Maxim Seshuk (@maximseshuk) - Paul (@paulpopus) - Jens Becker (@jhb-dev) - JianJroh (@JianJroh) - Pierre Cabrière (@pierrecabriere) - Tyler Schwartz (@tschwartz) - Jarrod Flesch (@JarrodMFlesch) - Patrik (@PatrikKozak) - Mohsen (@webgodo) - German Jablonski (@GermanJablo) - Anders Semb Hermansen (@andershermansen) - Marcus Forsberg (@marcusforsberg) - Sasha Rakhmatulin (@r1tsuu) - Said Akhrarov (@akhrarovsaid) - marketsystems (@marketsystems) - Eduardo Würch (@ewurch) - Matthieu (@RibeyrollesMatthieu) - Riley Langbein (@rilrom) - Matthew DeAbreu (@mdeabreu) - Tim @ erdee (@tim-at-erdee) - José Eduardo Dias (@josedudias) - Rot4tion (@Rot4tion) - Adebayo Ajayi (@Braggedtooth) - Christian Wesselhoeft (@xtian) - ab192130 (@ab192130) - MichalKormanik (@MichalKormanik) - Yi Chi (@chiyi4488) - swenzel-arc (@swenzel-arc) - roboin (@Robot-Inventor) - Wes DiMiceli (@wesdimiceli) - codeflorist (@codeflorist) - Vincent Vu (@rubixvi) - Ilham Saputrajati (@ilhamsj) - Boyan Bratvanov (@bratvanov) - Roman Ryzhikov (@yagee) - spiner2000 (@spiner2000) - Sean Zubrickas (@zubricks) - Sebastian Blank (@blankse) - Max Malm (@benjick) - Omar Yusuf Abdi (@omar-y-abdi) - Shaun Wallace (@ShaunMWallace)