v3.86.0

HavocFramework/Havocv3.86.0Jul 10, 2026by denolfe

AI Summary

The update adds new configuration options for bulk delete control and live preview, alongside a translation backport for the form builder and various bug fixes for scheduling, GraphQL, and UI interactions.

Key Highlights

  • Added collection-level `disableBulkDelete` configuration
  • Added `livePreview.openByDefault` config option
  • Backported plugin-form-builder v3 translations support
  • Fixed access to files reuploaded on a draft
  • Fixed regex metacharacters in URL allow-list

New Features

  • Collection-level bulk delete control
  • Live preview open by default configuration
  • Form builder v3 translation support

Full Release Notes

## [v3.86.0](https://github.com/payloadcms/payload/compare/v3.85.2...v3.86.0) (2026-07-10)


### 🚀 Features

* collection-level disableBulkDelete ([#17207](https://github.com/payloadcms/payload/issues/17207)) ([ca02cdc](https://github.com/payloadcms/payload/commit/ca02cdc))
* **plugin-form-builder:** v3 backport to support translations ([#17255](https://github.com/payloadcms/payload/issues/17255)) ([2cde8c8](https://github.com/payloadcms/payload/commit/2cde8c8))
* **ui:** add livePreview.openByDefault config option ([#17213](https://github.com/payloadcms/payload/issues/17213)) ([f23b693](https://github.com/payloadcms/payload/commit/f23b693))

### 🐛 Bug Fixes

* coerce schedulePublish doc.value to collection ID type before update ([#17238](https://github.com/payloadcms/payload/issues/17238)) ([7de11b2](https://github.com/payloadcms/payload/commit/7de11b2))
* escape regex metacharacters in isURLAllowed pathname allow-list ([#17237](https://github.com/payloadcms/payload/issues/17237)) ([2061859](https://github.com/payloadcms/payload/commit/2061859))
* respect disabled GraphQL config, v3 backport ([#17228](https://github.com/payloadcms/payload/issues/17228)) ([9e9c35a](https://github.com/payloadcms/payload/commit/9e9c35a))
* allow access to files reuploaded on a draft ([#17209](https://github.com/payloadcms/payload/issues/17209)) ([f02d22a](https://github.com/payloadcms/payload/commit/f02d22a))
* **plugin-multi-tenant:** run tenant delete cleanup inside the request transaction ([#17175](https://github.com/payloadcms/payload/issues/17175)) ([d128fde](https://github.com/payloadcms/payload/commit/d128fde))
* **sdk:** use qs-esm allowEmptyArrays parameter ([#17208](https://github.com/payloadcms/payload/issues/17208)) ([c7dc68e](https://github.com/payloadcms/payload/commit/c7dc68e))
* **ui:** presentational fields skipped in form state when admin.condition is false ([#17224](https://github.com/payloadcms/payload/issues/17224)) ([f31f26d](https://github.com/payloadcms/payload/commit/f31f26d))
* **ui:** prevent slug field error tooltip from hiding lock button ([#15885](https://github.com/payloadcms/payload/issues/15885)) ([908fba1](https://github.com/payloadcms/payload/commit/908fba1))

### ⚙️ CI

* upgrade pnpm to v11 ([#17169](https://github.com/payloadcms/payload/issues/17169)) ([ca72620](https://github.com/payloadcms/payload/commit/ca72620))

### 🤝 Contributors

- Jessica Rynkar (@JessRynkar)
- Ævar Þór Gunnlaugsson (@aevarOrigo)
- Sasha (@r1tsuu)
- Herman Ciechanowiec (@ciechanowiec)
- Vivek Tyagi (@darkspirit2802)
- Noah Bachmann (@noahbachmann)
- Jake Fletcher (@jacobsfletch)
- Amelia (@LimChorngUan)
- German Jablonski (@GermanJablo)
- Elliot DeNolf (@denolfe)
- Jarrod Flesch (@JarrodMFlesch)