github payloadcms/payload v4.0.0-canary.38

pre-release3 hours ago

v4.0.0-canary.38 (2026-10-07)

πŸš€ Features

  • bump min. next.js version to 16.4 (#18569) (9bc6cae)
  • add new payload.validate() operation for on-demand validation of documents (#17557) (019deca)
  • manage LLM instructions in the admin (#18373) (4d0796c)
  • include configured LLM instructions in CLI and MCP schemas (#18372) (4d7a5ba)
  • improve PR demo scrolling and publishing (#18542) (32b5694)
  • add file transformers and migrate upload sizes to variants (#17827) (ed0e138)
  • add database copy method (#18453) (e6cd442)
  • add database batch processing foundation (#18455) (401d1d8)
  • export batchProcessing utility (#18454) (cfad460)
  • accessibility improvements related to field labels (#18408) (3b91b5d)
  • expands type for disableLocalStrategy to boolean to allow overrides (#18417) (f64947f)
  • accessibility improvements related to modals and dialogs (#18353) (58e4024)
  • add createdBy and updatedBy authorship tracking (#17247) (c6fb4be)
  • accessibility improvements related to the select component (#18293) (56fd301)
  • codemod: add --help flag (#18412) (ba1b799)
  • plugin-import-export: give import/export hooks access to the triggering document (#17797) (7605e01)
  • plugin-mcp: update mcp sdk to 2.3.1 and add maxRequestBodySize option (#18510) (a08fbed)
  • richtext-lexical: add an LLM instructions editor preset (#18371) (5f651a1)
  • richtext-lexical: expose Markdown converters on editor adapters (#18370) (16cfeaa)
  • translations: localize document layout controls (#18506) (c0d708c)
  • ui: combine recents and pinned dashboard documents (#18359) (b52a1ad)
  • ui: improve hierarchy move and selection actions (#18564) (1535607)
  • ui: improve hierarchy field selection (#18499) (4343c13)
  • ui: update admin typography scale and spacing (#18468) (9f7e33d)
  • ui: add grid presentation infrastructure (#18414) (75e61a0)
  • ui: add configurable upload dropzone widget (#18360) (7ab3db2)
  • ui: rebuild nav and account menu (#18399) (4621b70)
  • ui: add Welcome to the default dashboard (#18364) (228dd61)

πŸ› Bug Fixes

  • suppress Vite warning for dynamic config import (#18562) (d0d85ca)
  • enforce hierarchy collection restrictions (#18512) (049f300)
  • add extra padding to avoid overlapping elements in embedded mode (#18551) (56f276c)
  • update test upload select fields for variants (#18540) (c37a178)
  • prevent join field where mutation during search param validation (#18491) (#18495) (fd32ef8)
  • dev HMR reload not working when Next.js basePath is set (#18484) (63315aa)
  • memory leak on version and draft operations with mongodb (#18445) (d5ba54e)
  • check draft read access against the latest version in findByID (#17999) (5448061)
  • codemod: load ${configDir} tsconfigs and stop toolchain downgrades (#18376) (e2d1684)
  • codemod: harden field component type migration (#18363) (34e3211)
  • graphql: resolve nested select projections locally (#18307) (2d528bb)
  • next: disable dev indicators by default (#18466) (15d051b)
  • plugin-cloud-storage: hide prefix from list controls (#18357) (91f68b2)
  • plugin-import-export: filter disabled export fields (#18433) (907ce8d)
  • plugin-import-export: export relationship fields natively for JSON format (#17512) (1d45314)
  • plugin-seo: authorize generation for manual fields (#18427) (68ad110)
  • richtext-lexical: preserve block data on remount (#17957) (aab865b)
  • richtext-lexical: upgrade lexical to 0.52.0 and tsx to 4.23.15 (#18397) (96725e3)
  • richtext-lexical: skip form state for unsupported blocks (#18369) (be76bb6)
  • tanstack-start: redact client config for unauthenticated requests (#18513) (e2bb708)
  • tanstack-start: require @tanstack/react-start >=1.168.60 (CVE-2026-102989) (#18532) (e98b654)
  • tanstack-start: exclude plugin client components from dep optimizer (#17620) (d2d4e00)
  • tanstack-start: restore config hot reloading (#18282) (01f44da)
  • tanstack-start: keep database adapters out of the client dep optimizer (#18313) (d1a2aab)
  • translations: translate hierarchy allowed types label (#18543) (dca3520)
  • translations: correct zh-TW UI wording (#17744) (282140b)
  • ui: move hierarchy edit action to the list title (#18535) (f15737c)
  • ui: cache client schema maps per language (#18585) (629fbae)
  • ui: accessibility improvements related to breadcrumbs (#18545) (d2e68cb)
  • ui: accessibility fixes for misc button labels (#18492) (8cefa95)
  • ui: accessibility improvements related to date pickers (#18493) (1ced6a1)
  • ui: accessibility improvements related to checkbox-radio (#18546) (6cfee9c)
  • ui: accessibility improvements related to search fields (#18541) (ef1e3c1)
  • ui: do not queue a schedulePublish job when deleting a scheduled event (#18488) (ed6a954)
  • ui: render locale labels in Localizer (#18566) (4e1206a)
  • ui: update breadcrumbs while browsing hierarchy folders (#18559) (78c18e6)
  • ui: allow sidebar tabs to scroll horizontally (#18519) (b30086a)
  • ui: update @faceless-ui/modal to 3.0.2 (#18533) (6046722)
  • ui: accessibility improvements related to toast announcements (#18460) (8001944)
  • ui: accessibility improvements related to toggles and switches (#18459) (e2381af)
  • ui: accessibility improvements related to navigation and skip links (#18435) (288b133)
  • ui: use hover submenus in UserMenu (#18439) (68f7ed2)
  • ui: persist sidebar open preference (#18441) (b54a919)
  • ui: prevent UI field cells from rendering in edit views (#18424) (1145384)
  • ui: resolve theme when client hints are unavailable (#18422) (b9491b6)
  • ui: align hierarchy checkbox styles (#18395) (eb242a7)
  • ui: accessibility improvements related to tables (#18405) (cb69780)
  • ui: accessibility improvements related to focus order / behaviour (#18381) (d2b5206)
  • ui: remove deprecated DocumentInfo aliases (#18319) (d52735f)
  • ui: preserve default block types when conditions reveal rows (#18305) (3386366)

⚑ Performance

  • keep zod out of the browser (#18576) (9e2681b)
  • db-mongodb: faster queries when collection has join fields (#18443) (508665f)
  • db-mongodb: reduce referenced block schema memory usage significantly (#18267) (377b878)
  • richtext-lexical: load the editor stylesheet from one file (#18575) (16ffc4a)
  • tanstack-start: load the admin UI only on admin routes (#18554) (ea6a103)
  • translations: filter the client translations in one pass (#18574) (df2dfac)
  • translations: bundle each date-fns locale into a single file (#18556) (cd10740)
  • ui: restore client barrel prebundling (#18553) (141ae44)
  • ui: bump react-datepicker to 9.1.0 (#18520) (02c4773)

πŸ›  Refactors

πŸ“š Documentation

🎨 Styles

  • ui: align collection cards with dashboard tiles (#18358) (b063a4a)

πŸ§ͺ Tests

  • close column selector before sorting list view (#18558) (4ac7761)
  • fail fast on e2e server crash, fix throttle leak, drop 1s fixture delays (#18444) (b753f9e)
  • cover config hot reloading across frameworks (#18400) (31ba7ee)
  • update all generated types (#18308) (0578022)
  • cover empty select fields in draft relationship sorting (#18304) (2abfb9e)
  • ui: refine popup fixture menu items (#18419) (40e22ae)

πŸ“ Templates

βš™οΈ CI

🏑 Chores

⚠️ BREAKING CHANGES

  • bump min. next.js version to 16.4 (#18569) (9bc6cae)

    This bumps the min. Next.js version supported by Payload from 19.2.6 to 19.4.0.

  • add new payload.validate() operation for on-demand validation of documents (#17557) (019deca)

  • add file transformers and migrate upload sizes to variants (#17827) (ed0e138)

    This PR adds a general file transformer API, moves Sharp processing into
    a separate package, and renames generated upload sizes to variants.

  • add database copy method (#18453) (e6cd442)

    Adds a low-level database adapter method for copying one stored collection document.

  • replace field component types with props types (#18321) (5884842)

    Removes all field-related React.ComponentType<Props> aliases in favor
    of standalone props types. Using standalone props types gives you more
    flexibility in how you define components:

  • add createdBy and updatedBy authorship tracking (#17247) (c6fb4be)

    Adds automatic createdBy and updatedBy fields to collections and
    globals β€” the authorship counterpart to the existing createdAt /
    updatedAt timestamps.

  • consolidate request creation APIs (#18287) (3eb7b9f)

  • richtext-lexical: upgrade lexical to 0.52.0 and tsx to 4.23.15 (#18397) (96725e3)

  • ui: consolidate root layout across frameworks (#18442) (5cb7b31)

    Consolidates the Next.js and TanStack root layouts around shared document rendering, providers, and data initialization.

  • ui: remove deprecated DocumentInfo aliases (#18319) (d52735f)

    Removes savedDocumentData and updateSavedDocumentData from useDocumentInfo and updates the docs to reference setData.

🀝 Contributors

Don't miss a new payload release

NewReleases is sending notifications on new releases.