v3.72.0
payloadcms/payloadv3.72.0Jan 16, 2026by denolfe
AI Summary
Added experimental `localizeStatus` for per-locale unpublishing functionality and depth parameter support for MCP tools. It also fixes various bugs in MongoDB, Ecommerce, and UI components.
Key Highlights
- Experimental `localizeStatus` allows unpublishing documents per locale
- MCP resource tools now support a `depth` parameter for relationship population
- Fixed MongoDB hasMany relationship filtering with equals operator
- Fixed Ecommerce slug map and translation issues
New Features
- Localize status (experimental)
- MCP depth parameter support
Full Release Notes
## [v3.72.0](https://github.com/payloadcms/payload/compare/v3.71.1...v3.72.0) (2026-01-16)
### ๐ Features
* adds experimental option localizeStatus and allows unpublish per-locale functionality ([#14667](https://github.com/payloadcms/payload/issues/14667)) ([d77af00](https://github.com/payloadcms/payload/commit/d77af00))
* **plugin-mcp:** add depth parameter support to all MCP find resource tools ([#14931](https://github.com/payloadcms/payload/issues/14931)) ([c979fb3](https://github.com/payloadcms/payload/commit/c979fb3))
---
**Localized Status (Experimental)** - Each locale can now track and manage its own publication status independently. Publish or unpublish individual locales without affecting others, with locale-aware UI and version history. Requires enabling at both config and collection level. [#14667](https://github.com/payloadcms/payload/pull/14667)
```ts
// payload.config.ts
export default buildConfig({
experimental: {
localizeStatus: true,
},
// ...
})
// collections/Posts.ts
export const Posts: CollectionConfig = {
slug: 'posts',
versions: {
drafts: {
localizeStatus: true,
},
},
}
```
> โ ๏ธ **Migration Required**: If you have existing version data, run the provided migration helper to convert `_status` fields from strings to locale objects. See [PR #14667](https://github.com/payloadcms/payload/pull/14667) for full migration guide.
---
**Depth Parameter Support (plugin-mcp)** - MCP resource tools now support a `depth` parameter (0-10) to control relationship population depth. Use `depth: 0` for lightweight ID-only responses or higher values for fully populated relationship data. Significantly reduces token count when reading documents. [#14931](https://github.com/payloadcms/payload/pull/14931)
---
### ๐ Bug Fixes
* thumbnailURL hook, virtually populate from thumbnail size ([#15232](https://github.com/payloadcms/payload/issues/15232)) ([beeb269](https://github.com/payloadcms/payload/commit/beeb269))
(https://github.com/payloadcms/payload/commit/4f452ac))
* `select` in `findByID` with `draft: true` may return a wrong version ([#14742](https://github.com/payloadcms/payload/issues/14742)) ([49c9fa9](https://github.com/payloadcms/payload/commit/49c9fa9))
* use window.location.origin as fallback for API URL copy ([#15220](https://github.com/payloadcms/payload/issues/15220)) ([a46e3a2](https://github.com/payloadcms/payload/commit/a46e3a2))
* folder creation errors when collection uses translation function labels ([#15216](https://github.com/payloadcms/payload/issues/15216)) ([1a3aeb8](https://github.com/payloadcms/payload/commit/1a3aeb8))
* correct image size URLs in beforeChange ([#15214](https://github.com/payloadcms/payload/issues/15214)) ([da12eed](https://github.com/payloadcms/payload/commit/da12eed))
* **db-mongodb:** hasMany relationship filtering with equals operator returns no results ([#15204](https://github.com/payloadcms/payload/issues/15204)) ([1756c0d](https://github.com/payloadcms/payload/commit/1756c0d))
* **deps:** bump undici to 7.18.2 to mitigate chained decompression ([#15221](https://github.com/payloadcms/payload/issues/15221)) ([591f9d2](https://github.com/payloadcms/payload/commit/591f9d2))
* **plugin-ecommerce:** issue with slug map ignoring variants and threading through cart data ([#15234](https://github.com/payloadcms/payload/issues/15234)) ([4b6529f](https://github.com/payloadcms/payload/commit/4b6529f))
* **plugin-ecommerce:** translations not being mapped correctly ([#15205](https://github.com/payloadcms/payload/issues/15205)) ([3337403](https://github.com/payloadcms/payload/commit/3337403))
* **templates:** prevent jobs run if secret unset ([#15207](https://github.com/payloadcms/payload/issues/15207)) ([8f50f83](https://github.com/payloadcms/payload/commit/8f50f83))
* **translations:** correct Russian translations for UI states in general section ([#14953](https://github.com/payloadcms/payload/issues/14953)) ([454042e](https://github.com/payloadcms/payload/commit/454042e))
* **ui:** truncates long JSON cells in list view ([#9214](https://github.com/payloadcms/payload/issues/9214)) ([6827978](https://github.com/payloadcms/payload/commit/6827978))
### ๐ Documentation
* fix beforeChange field hook documentation to reflect actual behaviour ([#14798](https://github.com/payloadcms/payload/issues/14798)) ([533ae92](https://github.com/payloadcms/payload/commit/533ae92))
### ๐งช Tests
* fix race condition in language switcher helper ([#15206](https://github.com/payloadcms/payload/issues/15206)) ([f98d915](https://github.com/payloadcms/payload/commit/f98d915))
* add `@payloadcms/storage-s3 clientUploads` integration test suite ([#15194](https://github.com/payloadcms/payload/issues/15194)) ([4dce061](https://github.com/payloadcms/payload/commit/4dce061))
* fields with defaultValue โโshould not be overwritten in upsert ([#15197](https://github.com/payloadcms/payload/issues/15197)) ([c684c6b](https://github.com/payloadcms/payload/commit/c684c6b))
### โ๏ธ CI
* announce releases in discord general channel ([#15201](https://github.com/payloadcms/payload/issues/15201)) ([734453d](https://github.com/payloadcms/payload/commit/734453d))
### ๐ก Chores
* adds generate-translations claude skill ([#15215](https://github.com/payloadcms/payload/issues/15215)) ([f1f2be6](https://github.com/payloadcms/payload/commit/f1f2be6))
* enforce no-console rule for `@payloadcms/ui` ([#15195](https://github.com/payloadcms/payload/issues/15195)) ([54db43d](https://github.com/payloadcms/payload/commit/54db43d))
* **plugin-redirects:** add Swedish translation ([#15213](https://github.com/payloadcms/payload/issues/15213)) ([e19f432](https://github.com/payloadcms/payload/commit/e19f432))
* **translations:** fixes to Swedish translation ([#15212](https://github.com/payloadcms/payload/issues/15212)) ([d3b12a1](https://github.com/payloadcms/payload/commit/d3b12a1))
### ๐ค Contributors
- Jarrod Flesch (@JarrodMFlesch)
- German Jablonski (@GermanJablo)
- Vincent Vu (@rubixvi)
- Sasha (@r1tsuu)
- Paul (@paulpopus)
- Kendell (@kendelljoseph)
- Elliot DeNolf (@denolfe)
- Jens Becker (@jhb-dev)
- Patrik (@PatrikKozak)
- spiner2000 (@spiner2000)
- Marcus Forsberg (@marcusforsberg)
- Jessica Rynkar (@jessrynkar)
- Said Akhrarov (@akhrarovsaid)
- Jeffery To (@jefferyto)