Twenty v2.3.0stable Released May 14, 2026
Impact Score: 5/10

Twenty v2.3.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.

Compatibility not verified โ€” check source notes
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Twenty v2.3.0. Source highlight: [AI] Add thread actions, filters, and archive support

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.

โœจ New Features & Capabilities (6)

  • [AI] Add thread actions, filters, and archive support
  • feat(apps): generic OAuth provider support for app SDK
  • feat(server): OTLP metrics export logs for troubleshooting
  • feat(server): add heartbeat gauge + first-export-attempt log for OTLP
  • Add twenty version validation
  • AI - Add azure foundry provider

โšก Performance & Enhancements (2)

  • Improve twenty deploy cli logs
  • Improve app gallery image sizing (no cropping)

๐Ÿ”ง Bug Fixes & Patches (6)

  • Dispatch root package.json hoisted deps and devDeps
  • fix: register all cron jobs in twenty-app-dev image
  • fix: disable sync on seeded message and calendar channels
  • fix(code-interpreter): three correctness fixes for the TwentyMCP helper + tool output shape
  • fix(shared): @types/lodash.camelcase for Docker CD
  • fix(shared): add uuid, @types/uuid, @types/qs for Docker CD
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
## What's Changed * [AI] Add thread actions, filters, and archive support by @ehconitin in https://github.com/twentyhq/twenty/pull/20068 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20164 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20166 * Dispatch root package.json hoisted deps and devDeps by @prastoin in https://github.com/twentyhq/twenty/pull/20140 * Bump 2.3.0 by @Weiko in https://github.com/twentyhq/twenty/pull/20169 * fix: register all cron jobs in twenty-app-dev image by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20167 * fix: disable sync on seeded message and calendar channels by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20168 * chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20178 * [AI] Prefer batch tools in system prompts by @ehconitin in https://github.com/twentyhq/twenty/pull/20173 * fix(code-interpreter): three correctness fixes for the TwentyMCP helper + tool output shape by @krzysztof7363 in https://github.com/twentyhq/twenty/pull/20103 * test(upgrade): assert sequence-runner error structurally instead of snapshot by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20213 * fix(shared): @types/lodash.camelcase for Docker CD by @charlesBochet in https://github.com/twentyhq/twenty/pull/20219 * fix(shared): add uuid, @types/uuid, @types/qs for Docker CD by @charlesBochet in https://github.com/twentyhq/twenty/pull/20222 * Twenty email deps by @prastoin in https://github.com/twentyhq/twenty/pull/20223 * revert: Sentry #20064 + @sentry 10.27 (prod bisect) by @charlesBochet in https://github.com/twentyhq/twenty/pull/20221 * feat(apps): generic OAuth provider support for app SDK by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20181 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20226 * feat(server): OTLP metrics export logs for troubleshooting by @charlesBochet in https://github.com/twentyhq/twenty/pull/20228 * Fix record table dashboard save by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/20202 * feat(server): add heartbeat gauge + first-export-attempt log for OTLP by @charlesBochet in https://github.com/twentyhq/twenty/pull/20230 * [Website] Implement translations. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/20171 * Fix front unit test on main by @prastoin in https://github.com/twentyhq/twenty/pull/20233 * fix(server): deduplicate @opentelemetry/api to fix NoopMeterProvider by @charlesBochet in https://github.com/twentyhq/twenty/pull/20231 * Fix empty record page on system objects for non-English workspace members by @Weiko in https://github.com/twentyhq/twenty/pull/20235 * Add twenty version validation by @martmull in https://github.com/twentyhq/twenty/pull/20227 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20236 * `[DockerFile]` Optimize `twenty-server` deps and build by @prastoin in https://github.com/twentyhq/twenty/pull/20132 * AI - Add azure foundry provider by @etiennejouan in https://github.com/twentyhq/twenty/pull/20170 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20238 * Add server upgrade status on admin panel by @ijreilly in https://github.com/twentyhq/twenty/pull/20107 * fix: handle missing file entity in avatar deletion listener by @aayushbaluni in https://github.com/twentyhq/twenty/pull/20192 * Return false instead of throwing when event stream does not exist by @thomtrp in https://github.com/twentyhq/twenty/pull/20165 * fix: show active advanced filter count badge in dropdown button by @wadeKeith in https://github.com/twentyhq/twenty/pull/20229 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20240 * Improve twenty deploy cli logs by @martmull in https://github.com/twentyhq/twenty/pull/20237 * Add check for manifest uuid version by @martmull in https://github.com/twentyhq/twenty/pull/20239 * fix rest filter default conjunction detection by @channi23 in https://github.com/twentyhq/twenty/pull/20133 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20243 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20248 * Fix/workspace member avatars 20193 by @Pantkartik in https://github.com/twentyhq/twenty/pull/20200 * New name not appearing when renaming "Stages" in data-model settings by @Bonapara in https://github.com/twentyhq/twenty/pull/20246 * fix: Invalid configuration instead of related notes by @LuckyPigDev in https://github.com/twentyhq/twenty/pull/20251 * feat: expose upgrade status as Prometheus gauge metrics by @charlesBochet in https://github.com/twentyhq/twenty/pull/20262 * fix: show empty cell instead of 'Not shared' for soft-deleted related records by @charlesBochet in https://github.com/twentyhq/twenty/pull/20260 * Remove twenty-website package. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/20270 * Make ConnectionProvider a true SyncableEntity by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20232 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20278 * fix: show AI chat filter button only on hover in navigation drawer by @ehconitin in https://github.com/twentyhq/twenty/pull/20274 * fix smtp outbound persist message by @neo773 in https://github.com/twentyhq/twenty/pull/20276 * fix: don't mark IMAP channel as failed on transient server errors by @neo773 in https://github.com/twentyhq/twenty/pull/20273 * docs: align example name to my-twenty-app across quickstarts by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20279 * `[Headless Front component]` Support multiple selected record by @prastoin in https://github.com/twentyhq/twenty/pull/20268 * ci: add ci-website workflow for twenty-website-new by @charlesBochet in https://github.com/twentyhq/twenty/pull/20281 * fix: show 'Not shared' for RLS-hidden morph relation records by @charlesBochet in https://github.com/twentyhq/twenty/pull/20272 * feat(apps): split AI tool and workflow action triggers in LogicFunction manifest by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20208 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20284 * fix: show pinned commands in side panel search results by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/20265 * Bump twenty current version by @prastoin in https://github.com/twentyhq/twenty/pull/20241 * feat(sdk): move catalog-sync under server group by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20282 * docs: restructure Getting Started around three explicit phases by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20283 * feat(sdk): give Docker-not-running error an actionable next step by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20280 * remove direction from messages by @neo773 in https://github.com/twentyhq/twenty/pull/20026 * fix(website-new): inherit test target so twenty-shared builds in CI by @charlesBochet in https://github.com/twentyhq/twenty/pull/20285 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20286 * CalDAV refactor by @neo773 in https://github.com/twentyhq/twenty/pull/20180 * feat(sdk): add defineCommandMenuItem by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20256 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20289 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20290 * Fix stale address coordinates after clearing autofill by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/20264 * Fix root monorepo package json focused installation by @prastoin in https://github.com/twentyhq/twenty/pull/20292 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20297 * feat: improve SEO foundations and canonicalise locale URLs while adding language-switcher in Footer as planned by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/20294 * Improve app gallery image sizing (no cropping) by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/20287 * i18n - website translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20301 * Fix unreliable SSE event stream updates during workflow form transitions by @thomtrp in https://github.com/twentyhq/twenty/pull/20242 * Fix unclear metadata validation errors by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/20234 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20302 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20303 * [Dashboards] [Warning] Remove gauge chart support and delete existing widgets by @ehconitin in https://github.com/twentyhq/twenty/pull/20172 * fix(server): handle Redis idle disconnects in session-store client by @sibelius in https://github.com/twentyhq/twenty/pull/20143 * 20215 convert application variable to a syncable entity by @martmull in https://github.com/twentyhq/twenty/pull/20269 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20313 * fix(front): resolve labelIdentifier per target for morph relation depth=1 by @charlesBochet in https://github.com/twentyhq/twenty/pull/20305 * Nest command unhandled error process exit 1 by @prastoin in https://github.com/twentyhq/twenty/pull/20312 * Replace sign-in mocked metadata with hardcoded BackgroundMock by @charlesBochet in https://github.com/twentyhq/twenty/pull/20308 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20317 * Fix migration by @martmull in https://github.com/twentyhq/twenty/pull/20321 * fix: server.fs.deny bypassed with queries by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/20323 * fix(server): bypass workspace cache in onboardingStatus resolver by @charlesBochet in https://github.com/twentyhq/twenty/pull/20322 * fix(front): defer default home redirect when object metadata is not loaded by @charlesBochet in https://github.com/twentyhq/twenty/pull/20330 * chore(deps): bump papaparse from 5.5.2 to 5.5.3 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/20335 * chore(deps-dev): bump verdaccio from 6.3.1 to 6.5.2 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/20334 * refactor: stop reading joinColumnName from relation field settings by @charlesBochet in https://github.com/twentyhq/twenty/pull/20304 * [Website] Add articles section with index and article pages, matching customers page design by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/20315 * Fix NestJS CLI pin chokidar to v3 by @neo773 in https://github.com/twentyhq/twenty/pull/20316 * Remove broken total count from workflow version by @thomtrp in https://github.com/twentyhq/twenty/pull/20324 * Add Workspace Created and Payment Received ClickHouse events by @thomtrp in https://github.com/twentyhq/twenty/pull/20277 * Add isConfigured to application registration in App admin panel by @martmull in https://github.com/twentyhq/twenty/pull/20326 * i18n - website translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20337 * Ai provider - fix by @etiennejouan in https://github.com/twentyhq/twenty/pull/20318 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20338 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20340 ## New Contributors * @krzysztof7363 made their first contribution in https://github.com/twentyhq/twenty/pull/20103 * @aayushbaluni made their first contribution in https://github.com/twentyhq/twenty/pull/20192 * @wadeKeith made their first contribution in https://github.com/twentyhq/twenty/pull/20229 * @Pantkartik made their first contribution in https://github.com/twentyhq/twenty/pull/20200 * @LuckyPigDev made their first contribution in https://github.com/twentyhq/twenty/pull/20251 * @sibelius made their first contribution in https://github.com/twentyhq/twenty/pull/20143 **Full Changelog**: https://github.com/twentyhq/twenty/compare/v2.2.0...v2.3.0