Twenty v2.5.0stable Released May 19, 2026
โš ๏ธ Breaking Change Impact Score: 7/10

Twenty v2.5.0 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: twenty ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Breaking-change evidence from the source

  • fix(ci): probe real schema in breaking-changes server readiness check by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20465
  • [breaking: deploy server before front] feat(view-sort): pick sort sub-field inline on the chip by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20445
Read the original context โ†—
Source flags breaking changes โ€” review applicability
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Twenty v2.5.0. Source highlight: Stop rejecting application token on calendar and message events requests

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 (2)

  • fix(ci): probe real schema in breaking-changes server readiness check by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20465
  • [breaking: deploy server before front] feat(view-sort): pick sort sub-field inline on the chip by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20445

โœจ New Features & Capabilities (6)

  • [codex] Add Twenty Claude skills package
  • [Website] Replace feature card screenshots with interactive visuals
  • feat(messaging): add workspace toggle to sync internal emails
  • feat(front-component-renderer): forward file input metadata
  • chore: remove dead feature flags
  • Billing - Add default ff

โšก Performance & Enhancements (1)

  • Improve linear app

๐Ÿ”ง Bug Fixes & Patches (6)

  • fix: update broken AI documentation link
  • chore(members): rename "Access" tab to "Invite" + fix e2e
  • fix: prevent admin panel workspace upgrade error from overflowing the table
  • fix(front-component): preserve caret position on controlled input/textarea updates
  • Fix(UI): Side panel having two scrollbars
  • Fix lint:diff-with-main oxlint rules build dependency
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
## What's Changed * Stop rejecting application token on calendar and message events requests by @martmull in https://github.com/twentyhq/twenty/pull/20440 * fix: update broken AI documentation link by @ajitkumarsaini02 in https://github.com/twentyhq/twenty/pull/20401 * Upgrade sdk version by @martmull in https://github.com/twentyhq/twenty/pull/20444 * chore: bump version to 2.5.0 by @twenty-pr[bot] in https://github.com/twentyhq/twenty/pull/20446 * chore(members): rename "Access" tab to "Invite" + fix e2e by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20447 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20449 * Refactor SAML relayState structure by @prastoin in https://github.com/twentyhq/twenty/pull/20430 * Use workflow inputSchema to render boolean, number, and enum fields in code/logic function steps by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/20439 * Ignore twenty versions constant files in prettier by @prastoin in https://github.com/twentyhq/twenty/pull/20448 * [codex] Add Twenty Claude skills package by @Bonapara in https://github.com/twentyhq/twenty/pull/20450 * Encrypt connected account `accessToken` and `refreshToken` by @prastoin in https://github.com/twentyhq/twenty/pull/20441 * Stop rejecting application install when APP_VERSION is wrong by @martmull in https://github.com/twentyhq/twenty/pull/20443 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20451 * fix: prevent admin panel workspace upgrade error from overflowing the table by @charlesBochet in https://github.com/twentyhq/twenty/pull/20394 * [Website] Replace feature card screenshots with interactive visuals by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/20442 * refactor(file v2) - deletion by @etiennejouan in https://github.com/twentyhq/twenty/pull/20356 * i18n - website translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20454 * fix(front-component): preserve caret position on controlled input/textarea updates by @QuantumByteMaster in https://github.com/twentyhq/twenty/pull/20416 * Fix(UI): Side panel having two scrollbars by @git-init-priyanshu in https://github.com/twentyhq/twenty/pull/20456 * ci(preview-env): replace bore.pub with Cloudflare quick tunnel by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20459 * feat(messaging): add workspace toggle to sync internal emails by @neo773 in https://github.com/twentyhq/twenty/pull/20457 * feat(front-component-renderer): forward file input metadata by @charlesBochet in https://github.com/twentyhq/twenty/pull/20458 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20461 * ci(preview-env): use --light seed so Apple is the default workspace by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20464 * Fix lint:diff-with-main oxlint rules build dependency by @bitloi in https://github.com/twentyhq/twenty/pull/20389 * Show logic function label instead of technical name in workflow UI by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/20470 * Support optional labels on logic-function input schema fields by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/20471 * fix(ci): probe real schema in breaking-changes server readiness check by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20465 * ci(preview-env): drop yarn `--` separator so `--light` reaches the seed command by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20479 * chore: remove dead feature flags by @charlesBochet in https://github.com/twentyhq/twenty/pull/20460 * Billing - Add default ff by @etiennejouan in https://github.com/twentyhq/twenty/pull/20480 * security: harden CI against supply-chain attacks by @neo773 in https://github.com/twentyhq/twenty/pull/20476 * fix(kanban): give title full width when card is not hovered by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20455 * chore: add an icon to why-twenty page and update preview by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/20482 * i18n - website translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20495 * Upgrade cli tools by @martmull in https://github.com/twentyhq/twenty/pull/20496 * feat(server): asymmetric JWT signing with kid + key rotation table by @charlesBochet in https://github.com/twentyhq/twenty/pull/20467 * Improve linear app by @martmull in https://github.com/twentyhq/twenty/pull/20453 * fix: map FlatEntityMaps and WorkspaceMigrationRunner exceptions to proper status codes on REST and GraphQL by @Weiko in https://github.com/twentyhq/twenty/pull/20494 * Fix application variable issue by @martmull in https://github.com/twentyhq/twenty/pull/20500 * chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20523 * `[twenty-server]` no floating promises lint rule by @prastoin in https://github.com/twentyhq/twenty/pull/20499 * feat(server): migrate all remaining JWT token types to ES256 by @charlesBochet in https://github.com/twentyhq/twenty/pull/20513 * Fix phone unique constraints by @MkDev11 in https://github.com/twentyhq/twenty/pull/20261 * Dedicated REST controllers for object & field metadata by @Weiko in https://github.com/twentyhq/twenty/pull/20364 * `[twenty-server]` no-misused-promise lint by @prastoin in https://github.com/twentyhq/twenty/pull/20529 * fix(ai-agent-node) - agent node execution error by @etiennejouan in https://github.com/twentyhq/twenty/pull/20534 * fix(server): add Apple seed workspace as fallback for single-workspace mode by @Rpaudel379 in https://github.com/twentyhq/twenty/pull/20498 * fix(navigation): settings drawer should never appear collapsed by @GusFromSpace in https://github.com/twentyhq/twenty/pull/20505 * feat(ai-chat) - Stop ai thinking if credits exhausted by @etiennejouan in https://github.com/twentyhq/twenty/pull/20526 * fix(server): handle ImapFlow socket errors instead of crashing the process by @davidfarah2003 in https://github.com/twentyhq/twenty/pull/20510 * feat(twenty-server): introduce ENCRYPTION_KEY env var with versioned envelope by @charlesBochet in https://github.com/twentyhq/twenty/pull/20528 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20547 * Inject none secret env variables into front components by @martmull in https://github.com/twentyhq/twenty/pull/20511 * fix - nav drawer expansion by @etiennejouan in https://github.com/twentyhq/twenty/pull/20545 * chore(billing) - remove feature flag by @etiennejouan in https://github.com/twentyhq/twenty/pull/20531 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20548 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20549 * Simplify create-twenty-app command by @martmull in https://github.com/twentyhq/twenty/pull/20512 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20551 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20553 * [breaking: deploy server before front] feat(view-sort): pick sort sub-field inline on the chip by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20445 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20554 * feat(upgrade): emit structured logfmt logs for upgrade flow by @charlesBochet in https://github.com/twentyhq/twenty/pull/20539 * fix(auth): preserve returnToPath across Google/Microsoft SSO redirects by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20537 * Add default value to apiKey for authentication method by @martmull in https://github.com/twentyhq/twenty/pull/20552 * feat(upgrade): expose twenty_upgrade_workspaces_up_to_date_total by @charlesBochet in https://github.com/twentyhq/twenty/pull/20555 * chore(page-layout): remove IS_RECORD_PAGE_LAYOUT_* feature flags by @charlesBochet in https://github.com/twentyhq/twenty/pull/20556 * feat(twenty-server): migrate remaining at-rest encryption sites to versioned envelope by @charlesBochet in https://github.com/twentyhq/twenty/pull/20550 * chore(deps): bump react-dropzone from 14.2.3 to 14.4.1 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/20560 * chore(auth): drop unused workspacePersonalInviteToken from SSO state by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20557 * chore(deps-dev): bump @mui/material from 7.3.8 to 7.3.11 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/20562 * chore(deps-dev): bump vite-plugin-svgr from 4.3.0 to 4.5.0 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/20561 * Update OAuth consent modal design by @Bonapara in https://github.com/twentyhq/twenty/pull/20540 * Regrant id token write to claude for oidc swap by @prastoin in https://github.com/twentyhq/twenty/pull/20564 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20567 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20569 * [Website] Replace product page hero visual with interactive CRM depicting AI chat in action. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/20566 * chore(server): drop unused postgresCredentials feature by @charlesBochet in https://github.com/twentyhq/twenty/pull/20573 * Fix time consuming search ilike fallback by @Weiko in https://github.com/twentyhq/twenty/pull/20544 * [Website] Refine feature card scroll entrance to a subtle opacity fade by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/20574 * fix(auth): exclude /authorize from MinimalMetadataGater loading gate by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20572 * fix(server): decouple SDK client generation from workspace activation by @neo773 in https://github.com/twentyhq/twenty/pull/20514 * chore(.vscode): add remaining packages to VSCode workspace by @Rpaudel379 in https://github.com/twentyhq/twenty/pull/20570 * Twenty discord integration by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/20530 * feat(server): migrate TOTP secret encryption to SecretEncryptionService by @charlesBochet in https://github.com/twentyhq/twenty/pull/20577 * feat(twenty-server): one-hop relation filters in GraphQL API by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20527 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20582 * fix(server): scope workspace findOne in 1-21 backfill-datasource command by @charlesBochet in https://github.com/twentyhq/twenty/pull/20581 * fix(server): scope workspace findOne in ApplicationService by @charlesBochet in https://github.com/twentyhq/twenty/pull/20583 * fix(server): add subFieldName column early in upgrade sequence by @charlesBochet in https://github.com/twentyhq/twenty/pull/20584 ## New Contributors * @ajitkumarsaini02 made their first contribution in https://github.com/twentyhq/twenty/pull/20401 * @MkDev11 made their first contribution in https://github.com/twentyhq/twenty/pull/20261 * @GusFromSpace made their first contribution in https://github.com/twentyhq/twenty/pull/20505 * @davidfarah2003 made their first contribution in https://github.com/twentyhq/twenty/pull/20510 **Full Changelog**: https://github.com/twentyhq/twenty/compare/v2.4.0...v2.5.0