Server, AI chat, workflow, UI fixes, dependencies
Release history
twenty releases
Building a modern alternative to Salesforce, powered by the community.
All releases
35 shown
Version gate unification + crash fixes + new UI features
Featured/vetted unification, server‑scoped files, workflowVersion core
Server, Front, Workflow, AI, Security, Website
front, workflow, server, deps, chore
twenty‑front, server, billing, security, website
Front fix, ConnectedAccount encryption, JWT rotation
Server, twenty‑server, messaging, website, CI, billing
- Reject ?token= URL query parameter for authentication
Full changelog
What's Changed
- chore: remove accidentally committed .claude-pr/ directory by @turantekin in https://github.com/twentyhq/twenty/pull/20036
- Bump twenty-sdk, twenty-client-sdk, create-twenty-app to 2.1.0-canary.1 by @charlesBochet in https://github.com/twentyhq/twenty/pull/20038
- chore(server): bump current version to 2.2.0 by @charlesBochet in https://github.com/twentyhq/twenty/pull/20040
- Bump twenty-sdk, twenty-client-sdk, create-twenty-app to 2.1.0 by @charlesBochet in https://github.com/twentyhq/twenty/pull/20041
- chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20045
- feat(front-component-renderer): forward offset/movement coordinates on serialised events by @charlesBochet in https://github.com/twentyhq/twenty/pull/20046
- feat(github-connector): exclude self-reviews from review counts by @charlesBochet in https://github.com/twentyhq/twenty/pull/20050
- Make
twenty-frontbuild env agnostic by @prastoin in https://github.com/twentyhq/twenty/pull/20055 - [AI] Drop 'serialization' from tool output naming by @ehconitin in https://github.com/twentyhq/twenty/pull/20052
- [AI] ai usage line chart date gap filling by @ehconitin in https://github.com/twentyhq/twenty/pull/20048
- fix(logic-function): serialize LocalDriver layer builds with cache lock by @charlesBochet in https://github.com/twentyhq/twenty/pull/20054
- Add admin avatars and app logos by @Bonapara in https://github.com/twentyhq/twenty/pull/20001
- chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20073
[CI]Prevent previous version upgrade sequence mutation by @prastoin in https://github.com/twentyhq/twenty/pull/20075- fix(logic-function): forward raw request body for HMAC signature verification by @charlesBochet in https://github.com/twentyhq/twenty/pull/20061
- Documentation update by @BOHEUS in https://github.com/twentyhq/twenty/pull/20059
- gmail extract body from deeply nested MIME parts by @neo773 in https://github.com/twentyhq/twenty/pull/19989
- fix(messaging): refactor SentMessagePersistenceService by @neo773 in https://github.com/twentyhq/twenty/pull/20077
- fix(server): match IMAP \Noselect attribute case-insensitively by @rrrodzilla in https://github.com/twentyhq/twenty/pull/20043
- docs: document rawBody on RoutePayload by @charlesBochet in https://github.com/twentyhq/twenty/pull/20080
- [Website] locale-segment routing and shared Lingui factory by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/20079
- Filtered upgrade logs when stopping before starting next instance segment by @prastoin in https://github.com/twentyhq/twenty/pull/20078
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20081
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20083
- [AI] Collapse NativeToolBinder to a single bind() entry by @ehconitin in https://github.com/twentyhq/twenty/pull/20051
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20087
- Gate AI chat navigation entries by AI_SETTINGS permission by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20089
- chore: export the enum view calendar layout to avoid typing errors on apps by @abusarah-tech in https://github.com/twentyhq/twenty/pull/20090
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20093
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20095
- feat(sentry): propagate workspace context to all spans by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20064
- fix(ai-billing): bill thread title generation and tool-call repair by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20067
- fix(ai-billing): bill POST /rest/ai/generate-text usage to ClickHouse by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20066
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20097
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20100
- chore: use navigation menu item type into the generated navigation menu layout by @abusarah-tech in https://github.com/twentyhq/twenty/pull/20099
- chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20106
- fix(ai-billing): bill executeAgent in a finally block so failed runs don't leak by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20065
- refactor: standardize JsonStringified casing by @saisathwikpeddireddy in https://github.com/twentyhq/twenty/pull/20101
- Fix orphan views by deferring record table widget view creation to dashboard save by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/20006
- Stop reseting isListed and is featured after each sync by @martmull in https://github.com/twentyhq/twenty/pull/20111
- Redesign application content tab + logic function settings; add Layout detail pages by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20056
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20114
- Billing - optimize usageEvent CH table by @etiennejouan in https://github.com/twentyhq/twenty/pull/20019
- fix(rest-api): prevent silent pagination failures and include valid options in enum validation errors by @ratishjain12 in https://github.com/twentyhq/twenty/pull/20092
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20115
- refactor: harden website runtime, routing, and hero visual by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/20113
- Fix upgrade --start-from-workspace-id by @prastoin in https://github.com/twentyhq/twenty/pull/20116
- chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20122
- Copy twenty-shared in twenty-website deploy by @prastoin in https://github.com/twentyhq/twenty/pull/20124
- add UpsertViewWidget resolver by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/20053
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20125
- Fix click house migration by @prastoin in https://github.com/twentyhq/twenty/pull/20127
- Fix stale UI state after stop-impersonation by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20088
- fix(ai): render record links inside markdown headings in AI chat by @ehconitin in https://github.com/twentyhq/twenty/pull/20074
- ssrf hardening by @neo773 in https://github.com/twentyhq/twenty/pull/19963
- refactor: optimize website visual runtime by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/20120
- [Command Menu] Fix record-selection command filtering in edit mode by @ehconitin in https://github.com/twentyhq/twenty/pull/20034
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20138
- add recurring calendar events for google cal by @neo773 in https://github.com/twentyhq/twenty/pull/19748
- Ai Chat - Caching optim by @etiennejouan in https://github.com/twentyhq/twenty/pull/20126
- CalDAV: support Digest auth by @neo773 in https://github.com/twentyhq/twenty/pull/20135
- fix(billing): gate AI credit-cap at entry points instead of workflow executor by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20096
- Fix application icons by @martmull in https://github.com/twentyhq/twenty/pull/20142
- chore(deps-dev): bump @babel/preset-typescript from 7.24.7 to 7.28.5 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/20151
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20155
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20156
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20157
- chore(deps): bump postal-mime from 2.6.1 to 2.7.4 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/20150
- chore(deps): bump @sentry/profiling-node from 10.27.0 to 10.51.0 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/20149
- Add twenty sdk server upgrade command by @martmull in https://github.com/twentyhq/twenty/pull/20158
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20161
- fix(security): reject ?token= URL query parameter for authentication by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20154
- Update doc screenshots by @martmull in https://github.com/twentyhq/twenty/pull/20160
- Select application excluding logo by @Weiko in https://github.com/twentyhq/twenty/pull/20159
New Contributors
- @turantekin made their first contribution in https://github.com/twentyhq/twenty/pull/20036
- @rrrodzilla made their first contribution in https://github.com/twentyhq/twenty/pull/20043
- @saisathwikpeddireddy made their first contribution in https://github.com/twentyhq/twenty/pull/20101
- @ratishjain12 made their first contribution in https://github.com/twentyhq/twenty/pull/20092
Full Changelog: https://github.com/twentyhq/twenty/compare/v2.1.0...v2.2.0
- [breaking, deploy server first] fix(ai-chat): persist providerExecuted flag on tool parts
- SDK authentication confirmation on remote add
- GitHub connector example app
- Page layout tab extensions
Full changelog
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-servertarget 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
- Admin panel moved from integrated location to /admin-panel GraphQL endpoint
- Agent exception renamed to Ai with new error codes THREAD_NOT_FOUND and MESSAGE_NOT_FOUND
- Twenty SDK barrel split into per-purpose subpaths affecting module imports
- Fixed socket.io vulnerability allowing unbounded binary attachment uploads
- Fixed prototype pollution vulnerability in nodejs flatted package
- Improved OAuth security by requiring PKCE code_challenge for public clients
- SVG export with enhanced halftone studio controls
- Page layout customization including tab icon picker and layout reset
- AWS EKS deployment support with managed Docker target and AWS CLI
Full changelog
What's Changed
- Fix app design 4 by @martmull in https://github.com/twentyhq/twenty/pull/19803
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19805
- Fix indexFieldMetadata select missing workspaceId by @Weiko in https://github.com/twentyhq/twenty/pull/19806
- Add SVG export and refine halftone studio controls by @Bonapara in https://github.com/twentyhq/twenty/pull/19813
- Fix deactivated tabs not visible in new tab action by @Weiko in https://github.com/twentyhq/twenty/pull/19811
- fix: socket.io allows an unbounded number of binary attachments by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19812
- Twenty for twenty app by @bosiraphael in https://github.com/twentyhq/twenty/pull/19804
- Disable reset to default when custom tab or widget by @Weiko in https://github.com/twentyhq/twenty/pull/19814
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19817
- Add reset page layout in record page layout edit mode tab by @Weiko in https://github.com/twentyhq/twenty/pull/19800
- Add twenty-managed Docker target with AWS CLI for EKS deployments by @neo773 in https://github.com/twentyhq/twenty/pull/19816
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19819
- Add page layout tab icon picker by @Weiko in https://github.com/twentyhq/twenty/pull/19818
- Fix app design 5 by @martmull in https://github.com/twentyhq/twenty/pull/19820
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19821
- fix(server): normalize empty composite phone sub-fields to NULL by @NathanDrake2406 in https://github.com/twentyhq/twenty/pull/19775
- fix(server): make
workspace:seed:dev --lightactually seed only one workspace by @charlesBochet in https://github.com/twentyhq/twenty/pull/19822 - fix(server): log inner errors of WorkspaceMigrationRunnerException in workspace iterator by @charlesBochet in https://github.com/twentyhq/twenty/pull/19823
- chore(server): bump logic-function executor lambda memory to 512MB by @charlesBochet in https://github.com/twentyhq/twenty/pull/19826
- fix(server): skip standard page layout widgets referencing missing field metadatas during 1.23 backfill by @charlesBochet in https://github.com/twentyhq/twenty/pull/19825
- fix(server): honor X-Forwarded-* via configurable trust proxy by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19824
- chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19828
- fix oauth permission check by @neo773 in https://github.com/twentyhq/twenty/pull/19829
- perf(server): reuse ESM module cache across warm Lambda invocations of logic functions by @charlesBochet in https://github.com/twentyhq/twenty/pull/19830
- fix(server): deliver user-scoped metadata events only to the owning user by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19832
- perf(sdk): split twenty-sdk barrel into per-purpose subpaths to cut logic-function bundle ~700x by @charlesBochet in https://github.com/twentyhq/twenty/pull/19834
- Bump twenty-sdk, twenty-client-sdk, create-twenty-app to 1.23.0-canary.1 by @charlesBochet in https://github.com/twentyhq/twenty/pull/19841
- refactor(server): rename Agent exception to Ai; add THREAD_NOT_FOUND / MESSAGE_NOT_FOUND codes (fixes 500s) by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19831
- chore: remove draft email feature flag by @neo773 in https://github.com/twentyhq/twenty/pull/19842
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19843
- fix(server): require PKCE code_challenge for public OAuth clients by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19840
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19844
- fix(server): align OAuth discovery metadata with MCP / RFC 9728 spec by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19838
- fix(server): expose WWW-Authenticate header for browser-based MCP clients by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19836
- Hero 2.0 by @Bonapara in https://github.com/twentyhq/twenty/pull/19846
- [Website] Fix testimonials shape, diamond direction, and integrate partner application form. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19835
- fix: correct sSOService → ssoService camelCase typo by @avasis-ai in https://github.com/twentyhq/twenty/pull/19845
- refactor: standardize AI acronym to Ai (PascalCase) across internal identifiers by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19837
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19851
- feat: move admin panel to dedicated /admin-panel GraphQL endpoint by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19852
- chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19866
- Partners, customers and more by @Bonapara in https://github.com/twentyhq/twenty/pull/19862
- fix(server): add registration_client_uri to DCR response for Claude.ai connector by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19858
- Fix app design 6 by @martmull in https://github.com/twentyhq/twenty/pull/19827
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19869
- Billing - fixes by @etiennejouan in https://github.com/twentyhq/twenty/pull/19867
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19873
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19874
- fix(front): suppress full-page skeleton inside auth modal by @charlesBochet in https://github.com/twentyhq/twenty/pull/19875
- fix: prototype pollution via parse in nodejs flatted by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19870
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19880
- fix(front): gate renewToken Apollo logger on IS_DEBUG_MODE by @charlesBochet in https://github.com/twentyhq/twenty/pull/19878
- feat(sdk): support viewSorts in app manifests by @charlesBochet in https://github.com/twentyhq/twenty/pull/19881
- fix 1.22 upgrade command add-workspace-id-to-indirect-entities by @neo773 in https://github.com/twentyhq/twenty/pull/19868
- Bump twenty-sdk, twenty-client-sdk, create-twenty-app to 1.23.0-canary.9 by @charlesBochet in https://github.com/twentyhq/twenty/pull/19883
- Redesign why-twenty page with three-section narrative by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19882
- Billing - Adapt to new unit by @etiennejouan in https://github.com/twentyhq/twenty/pull/19886
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19888
- fix(ui): make CardPicker hover cover the whole card and align content left by @charlesBochet in https://github.com/twentyhq/twenty/pull/19884
- Website - Plan pricing update by @etiennejouan in https://github.com/twentyhq/twenty/pull/19887
- Cleanup files that were committed with website PR, but should not be there. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19891
- Fix applications query cartesian product causing read timeouts by @charlesBochet in https://github.com/twentyhq/twenty/pull/19892
- Translate standard page layouts by @Weiko in https://github.com/twentyhq/twenty/pull/19890
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19893
- [Website] Self-host billing migration and some responsiveness fixes. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19894
- fix(server): scope loadingMessage wrap/strip to AI-chat callers by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19896
- feat(infra): add Dockerfile for twenty-website-new by @charlesBochet in https://github.com/twentyhq/twenty/pull/19901
- Fix Apps UI: replace 'Managed' label with actual app name and unify app icons by @charlesBochet in https://github.com/twentyhq/twenty/pull/19897
- fix(infra): copy nx.json and tsconfig.base.json into website-new image by @charlesBochet in https://github.com/twentyhq/twenty/pull/19902
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19903
- chore(workflow): temporarily lift credit-cap gate on workflow steps by @charlesBochet in https://github.com/twentyhq/twenty/pull/19904
- fix(website-new): pre-resolve wyw-in-js babel presets to absolute paths by @charlesBochet in https://github.com/twentyhq/twenty/pull/19905
- Fix activity relation picker by @Weiko in https://github.com/twentyhq/twenty/pull/19898
- Release v1.23.0 for twenty-sdk, twenty-client-sdk, and create-twenty-app by @charlesBochet in https://github.com/twentyhq/twenty/pull/19906
- chore(server): bump current version to 2.0.0 and add 2.1.0 as next by @charlesBochet in https://github.com/twentyhq/twenty/pull/19907
- docs: use twenty-sdk/define subpath in docs and website demo by @charlesBochet in https://github.com/twentyhq/twenty/pull/19908
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19909
- Release v2.0.0 for twenty-sdk, twenty-client-sdk, and create-twenty-app by @charlesBochet in https://github.com/twentyhq/twenty/pull/19910
- Website last fixes by @Bonapara in https://github.com/twentyhq/twenty/pull/19895
- fix: pricing card cutoff on website by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19913
- feat(website-new): add robots.txt, sitemap.xml and legacy redirects by @charlesBochet in https://github.com/twentyhq/twenty/pull/19911
- fix(settings): force display "Standard" and "Custom" for app chips by @charlesBochet in https://github.com/twentyhq/twenty/pull/19912
New Contributors
- @NathanDrake2406 made their first contribution in https://github.com/twentyhq/twenty/pull/19775
- @avasis-ai made their first contribution in https://github.com/twentyhq/twenty/pull/19845
Full Changelog: https://github.com/twentyhq/twenty/compare/v1.23.0...v2.0.0
- OAuth discovery and MCP authentication made host-aware
- Workspace member permissions and profile onboarding improved
- MCP discovery with path-aware well-known URL and protocol version
- Introduced TABLE_WIDGET view type for Object view widgets
- Added standalone page support
- Search functionality in Fields dropdown and column selector
Full changelog
What's Changed
- Upgrade self hosting application by @martmull in https://github.com/twentyhq/twenty/pull/19680
- website new fixes by @Bonapara in https://github.com/twentyhq/twenty/pull/19678
- fix(address): populate street line from place details by @jeevan6996 in https://github.com/twentyhq/twenty/pull/19326
- Expend field widget field supported types by @Weiko in https://github.com/twentyhq/twenty/pull/19684
- Bump current version to
1.23.0by @prastoin in https://github.com/twentyhq/twenty/pull/19683 - Reset to default page layout by @Weiko in https://github.com/twentyhq/twenty/pull/19682
- Test workflow with webhook expected body by @thomtrp in https://github.com/twentyhq/twenty/pull/19688
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19691
- Improve upgrade registry logging for pre-release bundles by @prastoin in https://github.com/twentyhq/twenty/pull/19689
- Fix multi-workspace-registration by @martmull in https://github.com/twentyhq/twenty/pull/19685
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19692
- Add missing doc by @martmull in https://github.com/twentyhq/twenty/pull/19693
- Introduce standalone page by @bosiraphael in https://github.com/twentyhq/twenty/pull/19675
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19699
- Switch default remote to lastly added remote by @martmull in https://github.com/twentyhq/twenty/pull/19697
- Align GraphQL error handling for billing and AI chat by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19690
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19703
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19705
- Introduce updateWorkspaceMemberSettings and clarify product by @ijreilly in https://github.com/twentyhq/twenty/pull/19441
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19707
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19709
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19710
- Update home card visuals and partner marketing assets by @Bonapara in https://github.com/twentyhq/twenty/pull/19711
- Reactivate disabled full tab widgets by @Devessier in https://github.com/twentyhq/twenty/pull/19702
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19715
- Fix infinite recursion in iterator loop traversal when If/Else branch loops back to enclosing iterator by @thomtrp in https://github.com/twentyhq/twenty/pull/19714
- Hide fallback command menu items in edit mode by @bosiraphael in https://github.com/twentyhq/twenty/pull/19700
- Fix duplicate Fields widget by @Weiko in https://github.com/twentyhq/twenty/pull/19696
- Invert pinned and dots icon buttons in command menu items edit mode by @bosiraphael in https://github.com/twentyhq/twenty/pull/19717
- Fix active navigation item disambiguation by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19664
- Object view widget - Introduce new TABLE_WIDGET view type by @etiennejouan in https://github.com/twentyhq/twenty/pull/19545
- [Billing for self host] End dummy enterprise key validity by @ijreilly in https://github.com/twentyhq/twenty/pull/19560
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19720
- Hide workflow manual trigger from command menu on "Select All" by @thomtrp in https://github.com/twentyhq/twenty/pull/19718
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19722
- Add new html tags to the remote elements by @bosiraphael in https://github.com/twentyhq/twenty/pull/19723
- Update backfill page layout command by @Weiko in https://github.com/twentyhq/twenty/pull/19687
- Various bug fixes Record page layouts by @Devessier in https://github.com/twentyhq/twenty/pull/19719
- Fix standalone page migration failing on navigationMenuItem enum type change by @charlesBochet in https://github.com/twentyhq/twenty/pull/19724
- Fix command menu item edit record selection dropdown icons by @bosiraphael in https://github.com/twentyhq/twenty/pull/19725
[Upgrade]Fix workspace creation cursor by @prastoin in https://github.com/twentyhq/twenty/pull/19701- Go back to the original command K button by @bosiraphael in https://github.com/twentyhq/twenty/pull/19727
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19729
- Fix fields widget flash during reset by @Weiko in https://github.com/twentyhq/twenty/pull/19726
- Refactor SnackBar duration handling and progress bar visibility logic by @aryanghugare in https://github.com/twentyhq/twenty/pull/19712
- Fix navbar folder opening lag by deferring navigation until expand animation completes by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19686
- Fix silent failures in logic function route trigger execution by @charlesBochet in https://github.com/twentyhq/twenty/pull/19698
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19731
- Homepage 3 cards finished by @Bonapara in https://github.com/twentyhq/twenty/pull/19732
- Update website hero to use shared local avatars and logos by @Bonapara in https://github.com/twentyhq/twenty/pull/19736
- Add isUnique update in query + invalidate cache on rollback by @thomtrp in https://github.com/twentyhq/twenty/pull/19746
- Release v1.22.0 for twenty-sdk, twenty-client-sdk, and create-twenty-app by @charlesBochet in https://github.com/twentyhq/twenty/pull/19751
- Fix calendar event "Not shared" content alignment and background by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19743
- Fix spacing between workspace domain cards by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19742
- [Website] Resolve animations breaking due to renderer context being lost. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19747
- Remove workspace-migrations deadcode by @prastoin in https://github.com/twentyhq/twenty/pull/19752
- Add event forwarding stories to the front component renderer by @bosiraphael in https://github.com/twentyhq/twenty/pull/19721
- Add logs before and after instance slow data migration by @prastoin in https://github.com/twentyhq/twenty/pull/19753
- fix compute folders to update util by @neo773 in https://github.com/twentyhq/twenty/pull/19749
- Fix app design 1/2 by @martmull in https://github.com/twentyhq/twenty/pull/19735
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19754
- fix: add missing LayoutRenderingProvider in SettingsApplicationCustomTab by @Lazare-42 in https://github.com/twentyhq/twenty/pull/19679
- Support Select All for workflow manual triggers by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19734
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19758
- Link command menu items to specific page layout by @bosiraphael in https://github.com/twentyhq/twenty/pull/19706
[run-instance-commands]Preservefastslowsequentiality by @prastoin in https://github.com/twentyhq/twenty/pull/19757- Add search to Fields dropdown by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19750
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19762
- Add test tab to tool step by @thomtrp in https://github.com/twentyhq/twenty/pull/19760
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19765
- fix(server): make OAuth discovery and MCP auth metadata host-aware by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19755
- chore(server): drop api-host branch in OAuth discovery by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19768
- fix: replace slow
deep-equalwithfastDeepEqualto resolve CPU bottleneck by @charlesBochet in https://github.com/twentyhq/twenty/pull/19771 - Fix MCP discovery: path-aware well-known URL and protocol version by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19766
- Add workspace id in job logs by @thomtrp in https://github.com/twentyhq/twenty/pull/19764
- Fix slow db query issue by @etiennejouan in https://github.com/twentyhq/twenty/pull/19770
upgrade:statuscommand by @prastoin in https://github.com/twentyhq/twenty/pull/19584- Validate
universalIdentifieruniqueness among application and its dependencies by @prastoin in https://github.com/twentyhq/twenty/pull/19767 - chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19782
- Add search to add column dropdown by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19763
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19784
- fix(server): workspace member permissions and profile onboarding by @ijreilly in https://github.com/twentyhq/twenty/pull/19786
- Surface structured validation errors during application install by @charlesBochet in https://github.com/twentyhq/twenty/pull/19787
- shouldIncludeRecordPageLayouts deprecation by @Weiko in https://github.com/twentyhq/twenty/pull/19774
- chore: move pageLayoutWidget.conditionalAvailabilityExpression migration to 1.23 fast instance command by @charlesBochet in https://github.com/twentyhq/twenty/pull/19792
- Fix AI chat dropzone persisting when dragging file out without dropping by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19794
- Forbid other app role extension by @prastoin in https://github.com/twentyhq/twenty/pull/19783
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19795
- Fix: aggregate Calculate not updating in dashboard Table widgets by @Weiko in https://github.com/twentyhq/twenty/pull/19796
- chore: move TABLE_WIDGET view type migration to 1.23 fast instance command by @charlesBochet in https://github.com/twentyhq/twenty/pull/19797
- Send Email Tool: Don't persist message on SMTP only connections by @neo773 in https://github.com/twentyhq/twenty/pull/19756
- Skip backfill record page layouts for missing standard objects by @Weiko in https://github.com/twentyhq/twenty/pull/19799
New Contributors
- @jeevan6996 made their first contribution in https://github.com/twentyhq/twenty/pull/19326
- @aryanghugare made their first contribution in https://github.com/twentyhq/twenty/pull/19712
- @Lazare-42 made their first contribution in https://github.com/twentyhq/twenty/pull/19679
Full Changelog: https://github.com/twentyhq/twenty/compare/v1.22.4...v1.23.0
- File attachment support in agent chat messaging
- Rich-text field widget
- SSE streaming support on POST /mcp (Phase 2)
Full changelog
What's Changed
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19510
- Fix AI chat threads query firing for users without AI permissions by @thomtrp in https://github.com/twentyhq/twenty/pull/19507
- Fix rolesPermissions cache query cartesian product (62k → 162 rows) by @charlesBochet in https://github.com/twentyhq/twenty/pull/19511
- Replace typeorm binary by
database:migrate:generateby @prastoin in https://github.com/twentyhq/twenty/pull/19515 - Build lambda error - catch user code compilation errors by @thomtrp in https://github.com/twentyhq/twenty/pull/19516
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19520
- Fix system objects not appearing in sidebar View picker due to filtering mismatch by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19502
- Fix/align microsoft calendar error handling by @neo773 in https://github.com/twentyhq/twenty/pull/19519
- Add rich-text field widget by @Weiko in https://github.com/twentyhq/twenty/pull/19512
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19521
- Add standard skills backfill and improve skill availability messaging by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19523
- add workspaceId to indirect entities by @neo773 in https://github.com/twentyhq/twenty/pull/19522
- Edit visibility restriction by @Devessier in https://github.com/twentyhq/twenty/pull/19499
- Flatten AI tool call output structure by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19524
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19525
- Fix pre post logic function not executed by @martmull in https://github.com/twentyhq/twenty/pull/19462
- Add file attachment support to agent chat messaging by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19517
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19527
- fix mcp streamable-http method handling by @channi23 in https://github.com/twentyhq/twenty/pull/19496
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19529
- chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19533
- Remove DataSourceService and clean up datasource migration logic by @charlesBochet in https://github.com/twentyhq/twenty/pull/19532
- Add SSE streaming support on POST /mcp (Phase 2) by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19528
- feat: email attachments and open-in-app click action by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19485
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19537
- Pre-sync only pre-install-logic-function by @martmull in https://github.com/twentyhq/twenty/pull/19534
- Upgrade cli tool version by @martmull in https://github.com/twentyhq/twenty/pull/19538
- [AI] Add
group_by_*database tools and centralize groupBy validation by @ehconitin in https://github.com/twentyhq/twenty/pull/19406 - Refactor command menu items deprecated code by @bosiraphael in https://github.com/twentyhq/twenty/pull/19508
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19548
- halftone generator v1 + new 3d shapes effect start by @Bonapara in https://github.com/twentyhq/twenty/pull/19539
- Skip email/calendar tab creation for custom object record page layouts by @Weiko in https://github.com/twentyhq/twenty/pull/19544
- Upgrade command internal doc by @prastoin in https://github.com/twentyhq/twenty/pull/19541
- Upgrade cli tool version in technical apps by @martmull in https://github.com/twentyhq/twenty/pull/19542
- Object icon visual parity by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19374
- Remove Favorite and FavoriteFolder from workspace schema by @charlesBochet in https://github.com/twentyhq/twenty/pull/19536
- Workspace export command follow-up by @neo773 in https://github.com/twentyhq/twenty/pull/19549
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19551
- Support junction relations in Field widget by @Devessier in https://github.com/twentyhq/twenty/pull/19518
- Fix error handling in stream agent chat job by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19550
- Optim - Increase connection idle timeout by @etiennejouan in https://github.com/twentyhq/twenty/pull/19553
- Workflow - Avoid billing skipped steps by @thomtrp in https://github.com/twentyhq/twenty/pull/19547
- fix: expand kanban column drop zone to full height by @JASSBR in https://github.com/twentyhq/twenty/pull/18897
- Lambda build update instead of delete existing logic function while building by @prastoin in https://github.com/twentyhq/twenty/pull/19116
database:init:prodtriggers instance slow command too by @prastoin in https://github.com/twentyhq/twenty/pull/19555database:resetdepends ondatabase:initthat runs slow instance commands by @prastoin in https://github.com/twentyhq/twenty/pull/19557- Fix server-validation ci pending instance command detection by @prastoin in https://github.com/twentyhq/twenty/pull/19558
- Fix merge command being available in exclusion mode by @bosiraphael in https://github.com/twentyhq/twenty/pull/19546
- Replace AGENT_CHAT_UNKNOWN_THREAD_ID with null for thread state by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19552
- fix: side panel close animation cleanup not firing due to invalid CSS transition by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19556
- Fix: Select next sidebar menu item after removing current item by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19505
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19569
- Remove IS_USAGE_ANALYTICS_ENABLED feature flag by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19566
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19570
- Use app's own OAuth credentials for CoreApiClient generation by @charlesBochet in https://github.com/twentyhq/twenty/pull/19563
- Bump twenty-sdk, twenty-client-sdk, create-twenty-app to 1.22.0-canary.1 by @charlesBochet in https://github.com/twentyhq/twenty/pull/19580
- halftone v2 by @Bonapara in https://github.com/twentyhq/twenty/pull/19573
- Exchange clientSecret for tokens after app registration + bump canary by @charlesBochet in https://github.com/twentyhq/twenty/pull/19582
- Improve NullCheckEnum filter descriptions with usage examples by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19581
- Fix sdk-e2e-test: ensure DB is ready before server starts by @charlesBochet in https://github.com/twentyhq/twenty/pull/19583
- Bump twenty-sdk, twenty-client-sdk, create-twenty-app to 1.22.0-canary.3 by @charlesBochet in https://github.com/twentyhq/twenty/pull/19587
- Add app-path input to deploy and install composite actions by @charlesBochet in https://github.com/twentyhq/twenty/pull/19589
- Improve sensitive config variable masking and editing UX by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19578
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19591
- Convert AI chat state atoms to component family states by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19585
- Add APPLICATION_LOG_DRIVER=CONSOLE to twenty-app-dev container by @charlesBochet in https://github.com/twentyhq/twenty/pull/19600
- Fix syncApplication failing when navigation menu item child is listed before folder in manifest by @charlesBochet in https://github.com/twentyhq/twenty/pull/19599
- Inline twenty-shared types in SDK declarations by @charlesBochet in https://github.com/twentyhq/twenty/pull/19605
- Clear stale SDK config on uninstall and invalid client by @charlesBochet in https://github.com/twentyhq/twenty/pull/19608
- small fixes on pricing by @Bonapara in https://github.com/twentyhq/twenty/pull/19603
- Halftone studio v3 (glass effect) by @Bonapara in https://github.com/twentyhq/twenty/pull/19598
- Add isUnique support for application-defined fields by @charlesBochet in https://github.com/twentyhq/twenty/pull/19609
- Re-export missing types from SDK public API by @charlesBochet in https://github.com/twentyhq/twenty/pull/19610
- Export field settings types from SDK public API by @charlesBochet in https://github.com/twentyhq/twenty/pull/19611
- Fields widget draft view by @Weiko in https://github.com/twentyhq/twenty/pull/19562
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19612
- fix: prevent image upload panel from being clipped in side panel by @bugisthegod in https://github.com/twentyhq/twenty/pull/19572
- fix: prevent image upload panel from being clipped in side panel by @sanskar0627 in https://github.com/twentyhq/twenty/pull/19613
- Add admin panel workspace detail page with chat viewer by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19579
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19621
- Fix command
FixMessageThreadViewAndLabelIdentifierCommandby @prastoin in https://github.com/twentyhq/twenty/pull/19622 - Implement cross version upgrade by @prastoin in https://github.com/twentyhq/twenty/pull/19559
- Fix e2e by @Devessier in https://github.com/twentyhq/twenty/pull/19639
- Switch app test infra to globalSetup with appDevOnce by @charlesBochet in https://github.com/twentyhq/twenty/pull/19623
- Fix design by @martmull in https://github.com/twentyhq/twenty/pull/19628
- Fix installed app setting tab by @martmull in https://github.com/twentyhq/twenty/pull/19629
- Rename standard and custom apps by @martmull in https://github.com/twentyhq/twenty/pull/19631
- Disable permission tab when empty by @martmull in https://github.com/twentyhq/twenty/pull/19630
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19643
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19645
- Implement full tab widget frontend by @Devessier in https://github.com/twentyhq/twenty/pull/19568
- Document isAuthRequired: true instead of false by @martmull in https://github.com/twentyhq/twenty/pull/19641
- Colliding
subjectfield fix onmessageThreadcommand by @prastoin in https://github.com/twentyhq/twenty/pull/19637 - Fix side panel close button title by @bosiraphael in https://github.com/twentyhq/twenty/pull/19638
- Fix permission flag deletion validator by @martmull in https://github.com/twentyhq/twenty/pull/19636
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19646
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19647
- Fixes on website by @Bonapara in https://github.com/twentyhq/twenty/pull/19625
- Add per-workspace error handling to CronTriggerCronJob by @neo773 in https://github.com/twentyhq/twenty/pull/19640
- More website updates. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19624
- few fixes by @Bonapara in https://github.com/twentyhq/twenty/pull/19648
- Move view field label identifier deletion validation into the cross entity validation by @prastoin in https://github.com/twentyhq/twenty/pull/19642
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19651
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19652
- refactor messaging jobs by @neo773 in https://github.com/twentyhq/twenty/pull/19626
- Prevent cross version upgrade mismatch in
1.22by @prastoin in https://github.com/twentyhq/twenty/pull/19627 - Fix merge with null value + reset data virtualization before init load by @thomtrp in https://github.com/twentyhq/twenty/pull/19633
- Fix navbar folder not opening on page refresh when it has an active child item by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19619
- Fix: Filter out deactivated objects from navigation sidebar by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19620
- Fix VariablePicker and Fullscreen Icon overlap in FormAdvancedTextFieldInput by @neo773 in https://github.com/twentyhq/twenty/pull/19614
- Fix
AddPermissionFlagRoleIdIndexFastInstanceCommandby @prastoin in https://github.com/twentyhq/twenty/pull/19654 - Sync command menu with main context store by @bosiraphael in https://github.com/twentyhq/twenty/pull/19650
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19656
- Add banner for not vetted apps by @martmull in https://github.com/twentyhq/twenty/pull/19655
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19661
- Remove app record if first install fails by @martmull in https://github.com/twentyhq/twenty/pull/19659
- Remove orphaned workspaceId column from BillingSubscriptionItemEntity by @charlesBochet in https://github.com/twentyhq/twenty/pull/19660
- Add ClickHouse-backed metered credit cap enforcement by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19586
- Deprecate IS_RECORD_TABLE_WIDGET_ENABLED feature flag by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19662
- Fix testimonials background, faq clickability and some case-studies page edits. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19657
- Clean event creation exception by @thomtrp in https://github.com/twentyhq/twenty/pull/19561
- fix: return 404 for deleted workspace webhook race by @hussainarslan in https://github.com/twentyhq/twenty/pull/19439
- few website updates by @Bonapara in https://github.com/twentyhq/twenty/pull/19663
- test: fix failing useColorScheme test and remove FIXME by @srijita2506 in https://github.com/twentyhq/twenty/pull/19593
- Remove 'twenty-app' keyword by default by @martmull in https://github.com/twentyhq/twenty/pull/19669
- Move backfill page layout to
1.23by @prastoin in https://github.com/twentyhq/twenty/pull/19670 - fix(api-key): batch role resolution with DataLoader to fix N+1 by @oniani1 in https://github.com/twentyhq/twenty/pull/19590
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19672
- fix: edit button not coming up on avatar right after image upload by @amlannandy in https://github.com/twentyhq/twenty/pull/19596
- Add gql operationName metadata in sentry by @etiennejouan in https://github.com/twentyhq/twenty/pull/19564
- Fix upgrade commands discovery outside of cli by @prastoin in https://github.com/twentyhq/twenty/pull/19671
- Fix Quick Lead command menu item not appearing by @bosiraphael in https://github.com/twentyhq/twenty/pull/19635
- Fix view filter/sort deletion by @etiennejouan in https://github.com/twentyhq/twenty/pull/19567
- Rpl various fixes by @Devessier in https://github.com/twentyhq/twenty/pull/19668
- Move is active to fe by @Weiko in https://github.com/twentyhq/twenty/pull/19649
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19677
New Contributors
- @JASSBR made their first contribution in https://github.com/twentyhq/twenty/pull/18897
- @sanskar0627 made their first contribution in https://github.com/twentyhq/twenty/pull/19613
- @hussainarslan made their first contribution in https://github.com/twentyhq/twenty/pull/19439
- @srijita2506 made their first contribution in https://github.com/twentyhq/twenty/pull/19593
- @amlannandy made their first contribution in https://github.com/twentyhq/twenty/pull/19596
Full Changelog: https://github.com/twentyhq/twenty/compare/v1.21.0...v1.22.4
- Run the 1.21 upgrade command to backfill datasource to the workspace table
- Run the 1.21 messaging upgrade command for messaging migration cleanup
- Run the 1.21 backfill-message-thread-subject command to create messageThread.subject field metadata and column
- messageFolder.parentFolderId migrated from UUID to externalId — may break integrations relying on UUID-based parent folder references
- AI SDK replaced with GraphQL SSE subscription for message queuing — Apps SDK consumers must update accordingly
- Direct execution feature flag removed — any configuration depending on it must be updated
- Upgraded Nodemailer to address SMTP command injection vulnerability
- Bumped handlebars to 4.7.9 to fix CVE-2026-33937
- Fixed stored XSS via unsafe URL protocols in href attributes
- Email thread widget and inline reply composer with SendEmail mutation
- Message compaction for AI chats
- Generic web search driver abstraction with Exa support and billing
- Resumable stream support for agent chat
- Rich Text field as creatable type
- Apollo Client v4 upgrade
- Hardened server-side input validation and authentication defaults
- SSRF prevention for IMAP/SMTP/CalDAV
- Message folder association
- Workspace member filters for actor fields
- objectRecordCounts query endpoint
- Token renewal deduplication
- ServerBlockNoteEditor instance caching
- File avatar migration
- SSRF protection added to webhook requests
- Prometheus exporter
- Navbar customization
- Junction toggle persistence
- Removed sync-metadata feature flag
- Removed IS_WORKSPACE_CREATION_V2_ENABLED feature flag
- CARD layout for Field widget
- Dashboard color grouping by SELECT/MULTI_SELECT
- Relation field sorting
- Removing remote integration feature
- DoS vulnerability in query string parsing (qs arrayLimit bypass)
- Page layout widget validation
- Dashboard update timestamp tracking
- Workflow output improvements