v3.65.0
Breaking Changes📦 payload-cmsView on GitHub →
⚠ 1 breaking✨ 6 features🐛 17 fixes🔧 11 symbols
Summary
This release disables Turbopack support, requiring a switch to Webpack builds, while introducing significant feature enhancements like type-safe custom properties and MongoDB connection lifecycle hooks.
⚠️ Breaking Changes
- Turbopack Build support is disabled. Users must now use Webpack to build their app. Use \`pnpm build\` on Next.js 15 or \`pnpm build --webpack\` on Next.js 16.
Migration Steps
- If you were using Turbopack, switch your build command to use Webpack: use \`pnpm build\` for Next.js 15 or \`pnpm build --webpack\` for Next.js 16.
✨ New Features
- Added augmentable interfaces (\`CollectionCustom\`, \`CollectionAdminCustom\`, \`GlobalCustom\`, \`GlobalAdminCustom\`) for type-safe custom properties on collections and globals.
- Allow specifying \`payloadInstanceCacheKey\` in \`handleEndpoints\` and \`createPayloadRequest\` to control cached Payload instance usage.
- Added \`afterCreateConnection\` and \`afterOpenConnection\` hooks to the MongoDB adapter (\`db-mongodb\`).
- Added localization support to MCP resource operations (create, update, find, delete) in \`plugin-mcp\`.
- Custom tool, prompt, and resource handlers in \`plugin-mcp\` now receive a \`PayloadRequest\` object.
- Extracted and exported the \`BlockSelector\` component from \`BlocksDrawer\` in the UI, including a new \`onSelect\` callback.
🐛 Bug Fixes
- Login hooks are now triggered after password reset.
- Ensured \`restoreAsDraft\` only updates the published document when \`draft\` is false.
- Removed transaction initialization for global document access.
- Version count queries now correctly allow querying on localized fields.
- Prevented upload mimeType error when \`useTempFiles\` is true.
- Fixed autoRefresh not working due to stale closure and missing configuration in the client.
- Fixed \`TypeWithVersion\` missing the \`latest\` property.
- Resolved GraphQL version error occurring in production.
- Corrected outgoing localized data from \`afterRead\` hooks.
- Relationships no longer fallback if \`fallbackLocale\` is explicitly set to false.
- Hidden Turbopack warnings.
- Fixed logout-inactivity route getting stuck on the loading indicator when inactivity and \`isLoggedIn\` are both true.
- Tightened up error visibility handling.
- Properly structured the Claude plugin (\`claude\`).
- Database adapters (\`db-*\`) no longer exit the process on connection errors.
- Prevented race condition in transaction session cleanup for MongoDB and Drizzle.
- Added PostgreSQL 18 support for Drizzle.
🔧 Affected Symbols
CollectionCustomCollectionAdminCustomGlobalCustomGlobalAdminCustomhandleEndpointscreatePayloadRequestafterCreateConnectionafterOpenConnectionBlockSelectorBlocksDrawerPayloadRequest