made with
payload
  • Showcases
  • Plugins
  • Creators
  • Tutorials
  • Templates
  • Videos

Not affiliated with PayloadCMS. Made by paul

  • Contact
  • Submit an entry
  • Releases
  • Stats
Back to Releases

v3.72.0

Version v3.72.0Minor Release
Released:

January 16, 2026

Type:

New features, backward compatible

GitHub:View Release
Download TarballDownload ZIP

Release Notes

v3.72.0 (2026-01-16)

🚀 Features

  • adds experimental option localizeStatus and allows unpublish per-locale functionality (#14667) (d77af00)
  • plugin-mcp: add depth parameter support to all MCP find resource tools (#14931) (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
// payload.config.ts
export default buildConfig({
experimental: {
localizeStatus: true,
},
// ...
})
// collections/Posts.ts
export const Posts: CollectionConfig = {
slug: 'posts',
versions: {
drafts: {
localizeStatus: true,
},
},
}
ts
⚠️ 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 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 ---

🐛 Bug Fixes

  • thumbnailURL hook, virtually populate from thumbnail size (#15232) (beeb269)
  • isValidID validation (#15217) (4f452ac)
  • select in findByID with draft: true may return a wrong version (#14742) (49c9fa9)
  • use window.location.origin as fallback for API URL copy (#15220) (a46e3a2)
  • folder creation errors when collection uses translation function labels (#15216) (1a3aeb8)
  • correct image size URLs in beforeChange (#15214) (da12eed)
  • db-mongodb: hasMany relationship filtering with equals operator returns no results (#15204) (1756c0d)
  • deps: bump undici to 7.18.2 to mitigate chained decompression (#15221) (591f9d2)
  • plugin-ecommerce: issue with slug map ignoring variants and threading through cart data (#15234) (4b6529f)
  • plugin-ecommerce: translations not being mapped correctly (#15205) (3337403)
  • templates: prevent jobs run if secret unset (#15207) (8f50f83)
  • translations: correct Russian translations for UI states in general section (#14953) (454042e)
  • ui: truncates long JSON cells in list view (#9214) (6827978)

📚 Documentation

  • fix beforeChange field hook documentation to reflect actual behaviour (#14798) (533ae92)

🧪 Tests

  • fix race condition in language switcher helper (#15206) (f98d915)
  • add @payloadcms/storage-s3 clientUploads integration test suite (#15194) (4dce061)
  • fields with defaultValue ​​should not be overwritten in upsert (#15197) (c684c6b)

⚙️ CI

  • announce releases in discord general channel (#15201) (734453d)

🏡 Chores

  • adds generate-translations claude skill (#15215) (f1f2be6)
  • enforce no-console rule for @payloadcms/ui (#15195) (54db43d)
  • plugin-redirects: add Swedish translation (#15213) (e19f432)
  • translations: fixes to Swedish translation (#15212) (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)
Browse All ReleasesView on GitHub