v3.89.0 (2026-09-10)
🚀 Features
🐛 Bug Fixes
- avoid buffering large client uploads into memory (#17872) (e896688)
- "No client field found for ..." 500 error in version diff (#18001) (88f0622)
- upgrade next to 16.3.3 across core and templates (#17933) (24164d8)
- db-mongodb: avoid unnecessary aggregation when no joins are selected (#17785) (9a309af)
- drizzle: preserve omitted hasMany selects (#18085) (ee7c00c)
- drizzle: warn on truncated identifiers, throw on collisions (#17650) (52c4d70)
- email-resend: http fetch error handling swallows errors (#17798) (61d3961)
- plugin-form-builder: include autolink nodes in LinkHTMLConverter, v3 backport (#17788) (5061283)
- ui: handle unsupported preview URLs (#18136) (112f419)
- ui: add @swc/helpers direct dependency (#17893) (ec0e98e)
- ui: prevent render loop during rapid title input (#17834) (f954804)
- ui: rich text fields not read-only inside tabs on trashed and locked documents 3.x (#17791) (82f5576)
🛠 Refactors
📚 Documentation
- add UI component library (#18093) (4884195)
- clarify pagination limits (#18095) (2e4806a)
- fix invalid TypeScript examples (#17995) (79fd084)
- add guide for overriding default fields (#17926) (1c0c454)
- fix CLAUDE.md path in agent instructions (#17881) (b48a151)
⚠️ BREAKING CHANGES
-
improve access defaults for jobs (#17867) (4379bf0)
This backports the v4 jobs access changes to Payload v3.
🤝 Contributors
- Paul (@paulpopus)
- Jake Fletcher (@jacobsfletch)
- Sean Zubrickas (@zubricks)
- Alessio Gravili (@AlessioGr)
- Nate Lentz (@nathanlentz)
- Tyler Schwartz (@tschwartz)
- Fahad Noor (@FahadNoor)
- Anders Semb Hermansen (@andershermansen)
- Patrik (@PatrikKozak)
- Jens Becker (@jhb-dev)
- Dan Ribbens (@DanRibbens)
- Jessica Rynkar (@JessRynkar)