โ ๏ธ Breaking Change
Impact Score: 7/10
Twenty sdk/v2.53.1 โ Release Notes & Engineering Impact
Source available โ automated, not human-reviewed
Component: sdk ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-10-31.
Breaking-change evidence from the source
โ ๏ธ Breaking changes - `isCustom` is removed from agent, skill, view, index, and agentChatChannel types โ remove any references in manifest files and TypeScript code. ([#29052](https://github.com/twentyhq/twenty/pull/29052)) by @FelixMalfait
โก Executive Summary (TL;DR)
Twenty sdk/v2.53.1. Source highlight: `isCustom` is removed from agent, skill, view, index, and agentChatChannel types. Code that reads or writes this property will not compile against this release.
Who Does This Impact? (Role-Based Analysis)
๐ป Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
๐ Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
โ๏ธ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
โ ๏ธ Breaking Changes & Deprecations (1)
- โ ๏ธ Breaking changes - `isCustom` is removed from agent, skill, view, index, and agentChatChannel types โ remove any references in manifest files and TypeScript code. ([#29052](https://github.com/twentyhq/twenty/pull/29052)) by @FelixMalfait
โจ New Features & Capabilities (6)
- `billingPlans` query added to the metadata client; `listPlans` is deprecated โ replace calls with `billingPlans`. (#29003)
- A new `mcpServer` syncable entity is available via the client SDK; register external MCP servers with `name`, `url`, `connectionProviderId`, and `isActive`. (#28597)
- `objectMetadata.disabledObjectPermissionActions` lets applications prevent any role from being granted read, update, soft-delete, or destroy access on specific objects. (#28985)
- App message channels can now carry folders; call `syncMessageFolders` with the channel id and folder array to register sub-streams such as Front inboxes or Slack channels. (#28986)
- `billingPlans` query added to the metadata client; `listPlans` is deprecated โ replace calls with `billingPlans`. (#29003)
- `SEND_EMAIL`, `DRAFT_EMAIL`, and `CREATE_CALENDAR_EVENT` steps in `defineWorkflow` now accept `connectedAccountHandle` (an email address) as a portable alternative to `connectedAccountId`; the schema requires exactly one of the two. (#29048)
โก Performance & Enhancements (3)
- `FormFieldRow` now accepts a `contentPadding` prop; the existing 8px default is preserved. (#28934)
- `isAuditLogged` is now exposed on `ObjectMetadata` in the GraphQL type and client SDK fragment. (#29016)
- `AgentManifest` now includes `modelConfiguration`; agents with web search or X search round-trip through `twenty app pull / twenty app apply` without losing that config. (#29045)
๐ง Bug Fixes & Patches (4)
- The local logic function runtime now matches Lambda โ `os.tmpdir()` returns a private writable folder inside the execution directory, and Node permission flags restrict disk access. (#28599)
- zod 4 updated to 4.6.7 to fix a high-severity memory exhaustion vulnerability (GHSA-mrhx-c7xc-m3w5). (#28959)
- Metadata client type index for `billingPlans` corrected; the query now maps to `BillingPlan` instead of `BillingPaymentIntent`. (#29013)
- fix(sdk): regenerate metadata client for billingPlans (#29013)
๐ View Raw Release Notes (Original Developer Log)
<!-- generated-release-notes v1 -->
`isCustom` is removed from agent, skill, view, index, and agentChatChannel types. Code that reads or writes this property will not compile against this release.
Applications can now restrict permissions with `disabledFieldPermissionActions` on fields and `disabledObjectPermissionActions` on objects. Inbox helpers `sendInboxMessage`, `inboxMention`, and `inboxReferenceRecord` are now exported from `twenty-sdk/front-component` as well as `twenty-sdk/logic-function`. A new `mcpServer` entity lets workspaces register external MCP servers with authentication tied to a connection provider.
Agent sync is more reliable. `AgentManifest` now carries `modelConfiguration`, so agents with web search or X search survive `twenty app pull / twenty app apply` without losing that config. The `billingPlans` query replaces the deprecated `listPlans` in the metadata client.
## โ ๏ธ Breaking changes
- `isCustom` is removed from agent, skill, view, index, and agentChatChannel types โ remove any references in manifest files and TypeScript code. ([#29052](https://github.com/twentyhq/twenty/pull/29052)) by @FelixMalfait
## ๐ Highlights
- `isCustom` is removed from agent, skill, view, index, and agentChatChannel types โ remove any references to avoid compile errors. ([#29052](https://github.com/twentyhq/twenty/pull/29052))
- `sendInboxMessage`, `inboxMention`, and `inboxReferenceRecord` are now exported from `twenty-sdk/front-component` in addition to `twenty-sdk/logic-function`. ([#29088](https://github.com/twentyhq/twenty/pull/29088))
- `objectMetadata.disabledObjectPermissionActions` and `fieldMetadata.disabledFieldPermissionActions` let applications lock down what roles may do on specific objects and fields. ([#28985](https://github.com/twentyhq/twenty/pull/28985))
- `AgentManifest` now includes `modelConfiguration`; agents with web search or X search no longer lose that setting on `twenty app pull / twenty app apply`. ([#29045](https://github.com/twentyhq/twenty/pull/29045))
- `billingPlans` query added to the metadata client; `listPlans` is deprecated โ replace calls with `billingPlans`. ([#29003](https://github.com/twentyhq/twenty/pull/29003))
## โจ New features
- A new `mcpServer` syncable entity is available via the client SDK; register external MCP servers with `name`, `url`, `connectionProviderId`, and `isActive`. ([#28597](https://github.com/twentyhq/twenty/pull/28597)) by @abdulrahmancodes
- `objectMetadata.disabledObjectPermissionActions` lets applications prevent any role from being granted read, update, soft-delete, or destroy access on specific objects. ([#28985](https://github.com/twentyhq/twenty/pull/28985)) by @charlesBochet
- App message channels can now carry folders; call `syncMessageFolders` with the channel id and folder array to register sub-streams such as Front inboxes or Slack channels. ([#28986](https://github.com/twentyhq/twenty/pull/28986)) by @FelixMalfait
- `billingPlans` query added to the metadata client; `listPlans` is deprecated โ replace calls with `billingPlans`. ([#29003](https://github.com/twentyhq/twenty/pull/29003)) by @FelixMalfait
- `SEND_EMAIL`, `DRAFT_EMAIL`, and `CREATE_CALENDAR_EVENT` steps in `defineWorkflow` now accept `connectedAccountHandle` (an email address) as a portable alternative to `connectedAccountId`; the schema requires exactly one of the two. ([#29048](https://github.com/twentyhq/twenty/pull/29048)) by @FelixMalfait
- Workspace edits to app-installed agents and skills are now stored as overrides and survive re-sync; the next `twenty app apply` no longer reverts workspace customizations. ([#29051](https://github.com/twentyhq/twenty/pull/29051)) by @FelixMalfait
- `fieldMetadata.disabledFieldPermissionActions` lets applications prevent roles from reading or updating specific field values. ([#29084](https://github.com/twentyhq/twenty/pull/29084)) by @charlesBochet
- `sendInboxMessage`, `inboxMention`, and `inboxReferenceRecord` are now exported from `twenty-sdk/front-component` as well as `twenty-sdk/logic-function`. ([#29088](https://github.com/twentyhq/twenty/pull/29088)) by @bosiraphael
## ๐
Improvements & UX
- `FormFieldRow` now accepts a `contentPadding` prop; the existing 8px default is preserved. ([#28934](https://github.com/twentyhq/twenty/pull/28934)) by @bosiraphael
- `isAuditLogged` is now exposed on `ObjectMetadata` in the GraphQL type and client SDK fragment. ([#29016](https://github.com/twentyhq/twenty/pull/29016)) by @martmull
- `AgentManifest` now includes `modelConfiguration`; agents with web search or X search round-trip through `twenty app pull / twenty app apply` without losing that config. ([#29045](https://github.com/twentyhq/twenty/pull/29045)) by @FelixMalfait
## ๐ Bug fixes
- The local logic function runtime now matches Lambda โ `os.tmpdir()` returns a private writable folder inside the execution directory, and Node permission flags restrict disk access. ([#28599](https://github.com/twentyhq/twenty/pull/28599)) by @FelixMalfait
- zod 4 updated to 4.6.7 to fix a high-severity memory exhaustion vulnerability (GHSA-mrhx-c7xc-m3w5). ([#28959](https://github.com/twentyhq/twenty/pull/28959)) by @BOHEUS
- Metadata client type index for `billingPlans` corrected; the query now maps to `BillingPlan` instead of `BillingPaymentIntent`. ([#29013](https://github.com/twentyhq/twenty/pull/29013)) by @etiennejouan
## ๐ง Developer & API
- Vendor entry and shim build helpers are now shared across CLI, SDK, and server compilation. ([#28855](https://github.com/twentyhq/twenty/pull/28855)) by @Weiko
<details>
<summary>๐๏ธ Internal changes (4)</summary>
- Match inbox channel navigation ([#28868](https://github.com/twentyhq/twenty/pull/28868)) by @bosiraphael
- feat(captcha): require captcha on workspace creation and enforce a minimum score ([#28977](https://github.com/twentyhq/twenty/pull/28977)) by @etiennejouan
- Remove the IS_DEFERRED_WORKSPACE_MIGRATION_ACTIONS_ENABLED feature flag ([#29081](https://github.com/twentyhq/twenty/pull/29081)) by @charlesBochet
- Show the unread inbox count in the blue badge ([#29133](https://github.com/twentyhq/twenty/pull/29133)) by @bosiraphael
</details>
## ๐ New contributors
- @Adithya9605 made their first contribution in https://github.com/twentyhq/twenty/pull/28579
- @siddiqueirshad made their first contribution in https://github.com/twentyhq/twenty/pull/28664
- @saltcoffee made their first contribution in https://github.com/twentyhq/twenty/pull/28592
- @arnavsingh0418 made their first contribution in https://github.com/twentyhq/twenty/pull/28658
- @ahmed-aneem made their first contribution in https://github.com/twentyhq/twenty/pull/28795
<details>
<summary>Full changelog (21 PRs)</summary>
- Add mcpServer syncable metadata entity with GraphQL CRUD ([#28597](https://github.com/twentyhq/twenty/pull/28597)) by @abdulrahmancodes
- Align local logic function runtime with Lambda ([#28599](https://github.com/twentyhq/twenty/pull/28599)) by @FelixMalfait
- Share frontend vendor and shim build helpers ([#28855](https://github.com/twentyhq/twenty/pull/28855)) by @Weiko
- Match inbox channel navigation ([#28868](https://github.com/twentyhq/twenty/pull/28868)) by @bosiraphael
- Allow custom FormFieldRow content padding ([#28934](https://github.com/twentyhq/twenty/pull/28934)) by @bosiraphael
- chore(security): bump zod 4 to 4.6.7 ([#28959](https://github.com/twentyhq/twenty/pull/28959)) by @BOHEUS
- feat(captcha): require captcha on workspace creation and enforce a minimum score ([#28977](https://github.com/twentyhq/twenty/pull/28977)) by @etiennejouan
- Let applications disable object permission actions on their objects ([#28985](https://github.com/twentyhq/twenty/pull/28985)) by @charlesBochet
- Let apps declare message folders on their channels ([#28986](https://github.com/twentyhq/twenty/pull/28986)) by @FelixMalfait
- chore: bump version to 2.53.0 ([#29002](https://github.com/twentyhq/twenty/pull/29002)) by @etiennejouan
- Add a billingPlans query and deprecate listPlans ([#29003](https://github.com/twentyhq/twenty/pull/29003)) by @FelixMalfait
- fix(sdk): regenerate metadata client for billingPlans ([#29013](https://github.com/twentyhq/twenty/pull/29013)) by @etiennejouan
- Hide non-audit-logged objects from the log console object filter ([#29016](https://github.com/twentyhq/twenty/pull/29016)) by @martmull
- Sync agent modelConfiguration and make isSystem display only ([#29045](https://github.com/twentyhq/twenty/pull/29045)) by @FelixMalfait
- Pull and apply email and calendar workflow steps ([#29048](https://github.com/twentyhq/twenty/pull/29048)) by @FelixMalfait
- Give agents and skills the override and archive model of objects ([#29051](https://github.com/twentyhq/twenty/pull/29051)) by @FelixMalfait
- Drop isCustom from agent, skill, view, index and agentChatChannel ([#29052](https://github.com/twentyhq/twenty/pull/29052)) by @FelixMalfait
- Remove the IS_DEFERRED_WORKSPACE_MIGRATION_ACTIONS_ENABLED feature flag ([#29081](https://github.com/twentyhq/twenty/pull/29081)) by @charlesBochet
- Let applications disable field permission actions on their fields ([#29084](https://github.com/twentyhq/twenty/pull/29084)) by @charlesBochet
- Share the inbox SDK helpers with front components ([#29088](https://github.com/twentyhq/twenty/pull/29088)) by @bosiraphael
- Show the unread inbox count in the blue badge ([#29133](https://github.com/twentyhq/twenty/pull/29133)) by @bosiraphael
</details>
**Full Changelog**: https://github.com/twentyhq/twenty/compare/sdk/v2.52.0...sdk/v2.53.1