v3.59.0 (2025-10-07)
๐ Features
- slug field (#14007) (b09ae67)
- support any depth for relationships in
findDistinct
(#14090) (e4f8478) - adds
disableGroupBy
to fields admin props (#14017) (537f58b) - allow
findDistinct
on fields nested to relationships and on virtual fields (#14026) (9d6cae0) - bundle types (#14020) (9bcb7b0)
- cpa: add cloudflare template to create-payload-app command (#14091) (e8140ed)
- db-*: adds support for readReplicas in D1 adapter config (#14040) (5a6f361)
- db-mongodb,drizzle: add atomic array operations for relationship fields (#13891) (7eacd39)
- next: export views, pass all props to custom dashboard view (#14094) (abebd24)
- plugin-nested-docs: pass collection config as an arg to generateURL and generateLabel (#14086) (db6ec30)
- ui: add support for disabling join field row types (#12738) (cd546b3)
- ui: live preview conditions (#14012) (2be6bb3)
๐ Bug Fixes
- add detection for --experimental-https flag (#14085) (3cf3f93)
- missing cross-env in deploy:database (#14076) (709ee58)
- support USE_HTTPS for local hmr (#14053) (feaa395)
- update packages list for
pnpm payload info
(#14030) (4b6b0c5) autosave: true
doesn't work onpayload.update
withwhere
(#14001) (5d86d5c)- db-d1-sqlite: avoid bound parameter limit when querying relationships and inserting rows (#14099) (444ca0f)
- db-mongodb: localized blocks with fallback and versions (#13974) (1e654c0)
- db-postgres:
drizzle
doesn't recognize types from the generated types (#14058) (ef84b20) - db-postgres: querying multiple hasMany text or number fields (#14028) (95bdffd)
- db-postgres: joins count with hasMany relationships (#14008) (1510e12)
- drizzle: generate DB schema syntax is deprecated (#14031) (ef57d24)
- graphql: error querying hasMany relationships when some document was deleted (#14002) (48e9576)
- next: force inactive live preview after passing conditions (#14048) (ca3f054)
- next: prevent locale upsert when not authenticated (#13621) (ece5a95)
- plugin-ecommerce: variants
validateOptions
errors with SQLite when creating a new variant (#14054) (3b9e759) - plugin-multi-tenant: rm chalk dep (#14003) (d017499)
- plugin-search: handle trashed documents in search plugin sync (#13836) (de352a6)
- richtext-lexical: field.admin overrides were ignored in RenderLexical helper (#14024) (810da54)
- richtext-lexical: slash menu arrows keys not respected when block nearby (#14015) (54b6f15)
- sdk: incorrect
fetch
initialization on cloudflare (#14009) (a5c8b5b) - storage-r2: upload with the correct contentType (#13988) (066997d)
- storage-uploadthing: hide key field from filters and columns (#14004) (2ce6e13)
- templates: ignore wrangler when bundling to fix template styles (#14067) (c135bf0)
- templates: added missing CLOUDFLARE_ENV in cloudflare template when optimizing database (#14064) (9fcd1fa)
- templates: don't use remote bindings in cloudflare template when developing locally (#14063) (9d3e540)
- templates: ecommerce wrong links in readme and docs and issue with missing graphql dependency (#14045) (e4f90a2)
- templates: correct typo in footer text (#14021) (a938ad6)
- translations: refine Persian (fa) translations for clarity and natural tone (#14082) (990603c)
- translations: fixes to Icelandic translations (#14038) (7088d25)
- translations: fixes to Swedish translation (#13994) (4b193da)
- ui: phantom fields when duplicating rows with rows (#14068) (08f6d99)
- ui: invalid time value error when document locking with autosave enabled (#14062) (394000d)
- ui: undefined access with polymorphic joins and fix joins test config (#14057) (cb7a24a)
- ui: popup list controls overlap with table in list view (#13967) (1e23882)
- ui: upload dropzone error when collectionConfig is undefined (#14043) (62fcf18)
- ui: saving empty code editor throw error (#14019) (bffb9ef)
- ui: add support back for custom live preview components (#14037) (d826159)
- ui: array fields not respecting width styles in row layouts (#13986) (accd95e)
โก Performance
- graphql: select only the requested columns (#13711) (c819083)
- templates: added cloudflare cache headers for static files (#14069) (c59df45)
๐ Documentation
- readme changes - add one-click deployment options and improve templates section (#14092) (a88e3c5)
- update README.md (#11297) (c8661da)
- adds comprehensive virtual field configuration documentation (#13942) (10e5042)
- db-mongodb: fix note on indexing localized fields (#14071) (9c08fb8)
๐ Examples
โ๏ธ CI
- update pr-title commit scopes (#14055) (fa28dca)
- add linked PRs to new issue notifications (#14059) (bbff65c)
๐ก Chores
- ci changes to add compatibility for mongodb alternates (#13898) (9ceee8e)
- update d1 cloudflare template package versions (#13977) (7601835)
- eslint: set reportUnusedDisableDirectives to error (#14011) (209b1f1)
- templates: bump sharp version in ecommerce template (#14089) (836e0f7)
๐ค Contributors
- Jacob Fletcher (@jacobsfletch)
- Sasha (@r1tsuu)
- Paul (@paulpopus)
- Alessio Gravili (@AlessioGr)
- Dan Ribbens (@DanRibbens)
- Nate Caminata (@ncaming)
- Marwin Hormiz (@marwinhormiz)
- rfwnเฟ (@rfwn)
- Jeffery To (@jefferyto)
- Ricardo Tavares (@rjgtav)
- Patrik (@PatrikKozak)
- Kamal (@kamal0620040)
- Elliot DeNolf (@denolfe)
- gursh (@gurshdev)
- Said Akhrarov (@akhrarovsaid)
- Jarrod Flesch (@JarrodMFlesch)
- Riley Langbein (@rilrom)
- Valur Sverrisson (@Valur)
- Marcus Forsberg (@marcusforsberg)
- Aurimar Lopes (@AurimarL)
- Jan Beck (@jancbeck)
- Tobias Odendahl (@tak-amboss)