Skip to content

payload 3.72.0

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,
    },
  },
}

โš ๏ธ 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

๐Ÿ“š 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

๐Ÿค 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)