v2.1.0

twentyhq/twentyv2.1.0Apr 24, 2026by charlesBochet

AI Summary

This release introduces infrastructure for pre-installed apps, adds a read-only Billing tab in the admin panel, and enables page layout tab extension via definePageLayoutTab. It also includes workspace export command and removes draft email feature flag.

Key Highlights

  • Infrastructure for pre-installed apps
  • Admin panel read-only Billing tab and workspace logos
  • definePageLayoutTab for extending page layouts
  • Workspace export command
  • Remove draft email feature flag

Breaking Changes

  • Command menu layout customization conditional availability

New Features

  • Pre-installed apps infrastructure
  • Billing tab in admin panel
  • Page layout tab extension
  • Workspace export
  • Page layout reset functionality

Full Release Notes

## What's Changed
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19915
* chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19914
* Fix Email composer rich text to HTML conversion  by @neo773 in https://github.com/twentyhq/twenty/pull/19872
* Docs: restructure navigation, add halftone illustrations, clean up hero images by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19728
* chore(website-new): reword FAQ copy on hosting and Organization plan by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19917
* docs: remove alpha warning from apps pages except skills & agents by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19919
* chore: remove IS_AI_ENABLED feature flag by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19916
* Fix side panel hotkeys breaking when opening records from table by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19849
* Revert "fix compute folders to update util (#19749)" by @neo773 in https://github.com/twentyhq/twenty/pull/19921
* Add 2.0.0 release changelog by @Bonapara in https://github.com/twentyhq/twenty/pull/19923
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19925
* Cross version and upgrade status docs by @prastoin in https://github.com/twentyhq/twenty/pull/19926
* Website - small fixes by @etiennejouan in https://github.com/twentyhq/twenty/pull/19918
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19928
* fix email workflow by @neo773 in https://github.com/twentyhq/twenty/pull/19929
* Cross version ci placeholder by @prastoin in https://github.com/twentyhq/twenty/pull/19932
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19934
* [Website] Fix flickering of faq illustration. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19920
* Fix self-hosting pricing page design. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19930
* Reset default app packages command by @prastoin in https://github.com/twentyhq/twenty/pull/19931
* Import - Fix by @etiennejouan in https://github.com/twentyhq/twenty/pull/19938
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19939
* Allow closing navbar folder while viewing an active child item by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19936
* Optimize 3d models by @neo773 in https://github.com/twentyhq/twenty/pull/19935
* Optimize website images by @neo773 in https://github.com/twentyhq/twenty/pull/19933
* Export generateDefaultFieldUniversalIdentifier from SDK by @Weiko in https://github.com/twentyhq/twenty/pull/19937
* Remove cross version upgrade placeholder by @prastoin in https://github.com/twentyhq/twenty/pull/19940
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19943
* Fix left/right arrow keys not working in dropdown search inputs by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19759
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19944
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19948
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19952
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19954
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19955
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19956
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19957
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19958
* Remove Product Hunt banner section by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19959
* refactor(tool-provider): dedupe descriptor/generator paths by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19960
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19967
* refactor(tool-provider): kill execute_tool's dual dispatch by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19962
* refactor(tool-provider): rename NativeModelToolProvider to NativeToolBinderService by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19966
* fix: restore Try Twenty button text visibility on docs navbar by @Yash-Raj-5424 in https://github.com/twentyhq/twenty/pull/19968
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19970
* refactor(tool-provider): rename web_search to exa_web_search, drop XOR toggle by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19969
* Update settings application illustrations and app metadata previews by @Bonapara in https://github.com/twentyhq/twenty/pull/19964
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19975
* feat(sdk): confirm authentication method on remote add by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19947
* fix(server): preserve kanban/calendar fields in view manifest sync by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19946
* Cleanup application and app registration test util by @prastoin in https://github.com/twentyhq/twenty/pull/19981
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19983
* Docs - Update getting started by @etiennejouan in https://github.com/twentyhq/twenty/pull/19976
* fix(page-layout): hide deactivated fields from FIELDS widget and layout editor by @Weiko in https://github.com/twentyhq/twenty/pull/19984
* Forbid permissions update cross app role retarget by @prastoin in https://github.com/twentyhq/twenty/pull/19982
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19987
* feat(community): add github-connector example app by @charlesBochet in https://github.com/twentyhq/twenty/pull/19961
* Resend app improvements by @bosiraphael in https://github.com/twentyhq/twenty/pull/19986
* scaffold record page layout + fields view when adding an object by @Weiko in https://github.com/twentyhq/twenty/pull/19977
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19988
* chore(deps): bump @blocknote/server-util from 0.47.1 to 0.47.3 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/19997
* chore(deps): bump @ai-sdk/google from 3.0.31 to 3.0.64 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/19998
* Fix layout edition mode dark mode text color by @Weiko in https://github.com/twentyhq/twenty/pull/19992
* optimize workspace export command by @neo773 in https://github.com/twentyhq/twenty/pull/20000
* feat(sdk): add definePageLayoutTab for extending existing page layouts by @charlesBochet in https://github.com/twentyhq/twenty/pull/20004
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20007
* Stop throwing for event stream does not exists by @thomtrp in https://github.com/twentyhq/twenty/pull/20008
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20009
* Force uuids in AI workflow tools by @thomtrp in https://github.com/twentyhq/twenty/pull/20010
* Retrieve ai catalog at bootstrap by @prastoin in https://github.com/twentyhq/twenty/pull/20005
* fix(admin-panel): inline skeleton loaders for table sections by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20014
* feat(app): infrastructure for pre-installed apps by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19973
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20015
* feat(admin-panel): add read-only Billing tab and workspace logos by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20012
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20016
* Fix: Database query on opportunity table by @sonarly[bot] in https://github.com/twentyhq/twenty/pull/20017
* chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20018
* Keep fallback record page layouts read-only in edition mode by @Weiko in https://github.com/twentyhq/twenty/pull/20023
* Fix layout edition mode dark mode text color - 2 by @Weiko in https://github.com/twentyhq/twenty/pull/20024
* [Command Menu] Refactor layout customization conditional availability [Warning] by @ehconitin in https://github.com/twentyhq/twenty/pull/19974
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20027
* Removing community apps in favor of npm-distributed apps by @Weiko in https://github.com/twentyhq/twenty/pull/20029
* Dockerfile `twenty-server` target  by @prastoin in https://github.com/twentyhq/twenty/pull/20028
* backfill widget position from gridPosition (phase 1 of gridPosition removal) by @Weiko in https://github.com/twentyhq/twenty/pull/20032
* [breaking, deploy server first] fix(ai-chat): persist providerExecuted flag on tool parts by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20030
* Clarify registry tools vs native model tool binding by @ehconitin in https://github.com/twentyhq/twenty/pull/20022
* Gate export/import command menu items by permission flag by @Weiko in https://github.com/twentyhq/twenty/pull/19991
* chore(twenty-sdk): shrink logic-function bundles via stubbing by @charlesBochet in https://github.com/twentyhq/twenty/pull/20033
* [Website] Architecture, hardening, and perf pass. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/20020
* Move isPreInstalled applicationRegistration instance command to 2.1 by @charlesBochet in https://github.com/twentyhq/twenty/pull/20037

## New Contributors
* @Yash-Raj-5424 made their first contribution in https://github.com/twentyhq/twenty/pull/19968

**Full Changelog**: https://github.com/twentyhq/twenty/compare/v2.0.0...v2.1.0