github twentyhq/twenty v2.9.0

latest releases: twenty/v2.9.2, twenty/v2.10.1, twenty/v2.8.4...
8 hours ago

What's Changed

  • i18n - docs translations by @github-actions[bot] in #20893
  • Add definePermissionFlag for app-defined permission flags by @Weiko in #20887
  • i18n - translations by @github-actions[bot] in #20895
  • i18n - docs translations by @github-actions[bot] in #20898
  • chore(server): remove unused REST→GraphQL HTTP bridge by @Weiko in #20897
  • Publish new cli tool version by @martmull in #20903
  • perf(website): cache prerendered pages in CF Cache API (withRegionalCache) by @FelixMalfait in #20905
  • File service uniformize not found behavior and stream management by @prastoin in #20891
  • Edit actor chip icon style & read-only behavior by @Bonapara in #18552
  • Add application installation validation modale by @martmull in #20907
  • chore(security): bump esbuild to ^0.28.0 to clear CVE-2025-68121 (CVSS 10.0) by @charlesBochet in #20902
  • i18n - translations by @github-actions[bot] in #20910
  • i18n - translations by @github-actions[bot] in #20911
  • feat(twenty-partners): partnerContent catalog + TFT import improvements by @rashad in #20904
  • [Website] Generate release notes manifest at build time by @mabdullahabaid in #20913
  • Various fixes - some AI findings by @Weiko in #20921
  • i18n - translations by @github-actions[bot] in #20924
  • Fix/restore channel association scalar field metadata by @neo773 in #20920
  • chore: bump version to 2.9.0 by @twenty-pr[bot] in #20925
  • i18n - docs translations by @github-actions[bot] in #20926
  • Refactor and centralize file mimeType integrity check and sanitization by @prastoin in #20889
  • i18n - translations by @github-actions[bot] in #20930
  • Fix workflow step output schema not reflecting user-renamed step name by @thomtrp in #20922
  • Fix cross version upgrade for 2.8 by @prastoin in #20927
  • fix(billing) - fix orphaned stripe subs 2/2 by @etiennejouan in #20916
  • Fix index cache computation by @prastoin in #20933
  • [Website] Restore shared build dependency for typecheck by @mabdullahabaid in #20936
  • remove ai-model-preferences var env and config by @etiennejouan in #20859
  • chore: sync AI model catalog from models.dev by @github-actions[bot] in #20948
  • Basic app logo fixes by @martmull in #20919
  • i18n - translations by @github-actions[bot] in #20951
  • feat: raise FILES field max number of values from 10 to 60 by @FelixMalfait in #20950
  • fix(role): rebind API keys + agents before deleting their role by @FelixMalfait in #20935
  • i18n - translations by @github-actions[bot] in #20952
  • fix(website) - fix getPartners by @etiennejouan in #20947
  • Add a Table display mode to relation field widgets by @Weiko in #20929
  • i18n - translations by @github-actions[bot] in #20959
  • Deprecate dummy enterprise key 1/2 by @ijreilly in #20890
  • i18n - translations by @github-actions[bot] in #20963
  • fix(website): use Stripe fetch client on Cloudflare Workers by @FelixMalfait in #20966
  • fix(front): ignore IME composition Enter in input hotkeys by @fyujiwara in #20958
  • fix: separate initial timeline loading from fetchMore loading state by @DeviSriSaiCharan in #20896
  • refactor(website): replace axios with native fetch by @FelixMalfait in #20967
  • tt-fix-logic-function-error-handling by @thomtrp in #20928
  • revert(navigation-drawer): unwanted desktop design changes from #20634 by @ehconitin in #20955
  • Display which remote is used when twenty-sdk runs command by @martmull in #20969
  • Fix page layout widget tab moves by @ehconitin in #20915
  • i18n - translations by @github-actions[bot] in #20975
  • fix(contact-creation): handle common email display-name shapes when auto-creating People by @clivemeister in #20639
  • Fix error when token invalid by @martmull in #20972
  • Fix focus in front components inputs by @bosiraphael in #20961
  • feat(twenty-orm): introduce WorkspaceScopedRepository for core/metadata workspace-scoped entities by @FelixMalfait in #20953
  • i18n - translations by @github-actions[bot] in #20978
  • Display application info in workflow side panel by @martmull in #20976
  • i18n - translations by @github-actions[bot] in #20979
  • Ses outbound followup by @neo773 in #20610
  • i18n - translations by @github-actions[bot] in #20982
  • fix: exclude system objects and workflow/dashboard from AI/MCP write tool descriptors by @mvanhorn in #20973
  • Fix lambda timeout diagnostics by @thomtrp in #21002
  • fix: refresh admin panel feature flags after toggling by @FelixMalfait in #21007
  • feat(settings): move email handles and emailing domains to dedicated Email page by @FelixMalfait in #21008
  • i18n - translations by @github-actions[bot] in #21013
  • fix(ai): expose MORPH_RELATION join columns in AI/MCP tool schemas by @FelixMalfait in #21012
  • Export STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS by @martmull in #21010
  • chore(deps): bump @apollo/client from 4.1.6 to 4.2.0 by @dependabot[bot] in #20993
  • Fix twenty sdk billing exports by @bosiraphael in #21016
  • i18n - docs translations by @github-actions[bot] in #21019
  • Support the "Me" filter for workspace members in dashboard widgets and add multi select by @bosiraphael in #20971
  • Add darkmode for oAuth screen by @martmull in #21005
  • i18n - translations by @github-actions[bot] in #21021
  • i18n - translations by @github-actions[bot] in #21022
  • Fix playwright CI by @Weiko in #21024
  • EncryptedString PlaintextString branded string types by @prastoin in #21001
  • Fix AI permission gating: use Ask AI for chat UI, AI Settings for admin endpoints by @FelixMalfait in #21030
  • refactor(twenty-orm): migrate 23 grandfathered entities to WorkspaceScopedRepository by @FelixMalfait in #20987
  • fix(contact-creation): enrich missing names on auto-created contacts by @FelixMalfait in #21018
  • chore(deps): bump js-cookie from 3.0.5 to 3.0.7 by @dependabot[bot] in #20992
  • Fix: focus stack overwritten when auto-opening title cell on new record by @bosiraphael in #21029
  • refactor(agents): split tool resolution into native and action rails by @ehconitin in #20331
  • i18n - translations by @github-actions[bot] in #21032
  • fix: correct typo occurence -> occurrence in metadata-event-emitter.ts by @ltianyi992 in #21036
  • fix(dashboards): isolate pie chart slice labels per widget by @FelixMalfait in #21034
  • fix(address): show saved address in record detail when street1 is null by @FelixMalfait in #21033
  • chore(deps): bump typescript from 5.9.2 to 5.9.3 by @dependabot[bot] in #20991
  • chore: sync AI model catalog from models.dev by @github-actions[bot] in #21041
  • Fix workflow creation on view filtered by status by @ijreilly in #21027
  • Fix latency spike on application lookup by @martmull in #21042
  • [Dashboards] Remove gauge chart types and code by @ehconitin in #20410
  • i18n - website translations by @github-actions[bot] in #21045
  • i18n - translations by @github-actions[bot] in #21047
  • i18n - translations by @github-actions[bot] in #21048
  • Fix admin pannel server variable config tab by @martmull in #21017
  • i18n - translations by @github-actions[bot] in #21050
  • fix: harden email-group SES provisioning, cleanup, and inbound replay by @neo773 in #21046
  • 2439 improve command menu item display in right panel by @martmull in #21020
  • fix(sso): accept HTTP-POST binding and surface descriptive parser errors by @FelixMalfait in #21051
  • i18n - translations by @github-actions[bot] in #21055
  • Docs update: Calling a logic function from a front component by @bosiraphael in #21057
  • fix: resolve workflow form step auto-open race condition by @thomtrp in #21053
  • i18n - docs translations by @github-actions[bot] in #21062
  • Docs: clarify numberOfSelectedRecords usage for RECORD_SELECTION items by @bosiraphael in #21059
  • feat(server): opt-in FRONT_AUTO_BASE_URL for hostname-relative API URL by @LazyBouy in #20504
  • i18n - docs translations by @github-actions[bot] in #21064
  • [Website] i18n module, page-local sections, translatable copy by @mabdullahabaid in #21082
  • fix(ai): route xAI search through Responses API as native tools by @ehconitin in #21037
  • fix: SSE event stream reconnection after idle connection death by @thomtrp in #21061
  • fix(front): scroll long content in rich text editor by @Nik1125 in #20319
  • fix(twenty-sdk): minify front-component bundles & set NODE_ENV=production in deploy build by @8Maverik8 in #20937
  • fix(front): keep app variable cache in sync after update by @nicolas-besnard in #20861
  • Twenty server:Fix REST pagination issues by @git-init-priyanshu in #20980
  • fix(kanban): contain checkbox hover reveal within card bounds by @ehconitin in #21100
  • feat(settings): discovery hero rollout + ephemeral playground token by @FelixMalfait in #21072
  • i18n - translations by @github-actions[bot] in #21103
  • Fix array-typed parameters in code/logic-function action forms by @ijreilly in #21102
  • fix navigation item tree breadcrumb active state by @ehconitin in #21101
  • Billing - Fix credit upgrade invoice error by @etiennejouan in #21097
  • fix: broadcast timeline activities to live SSE subscriptions by @Weiko in #21104
  • Fix else branches not properly skipped in nested if/else workflows by @thomtrp in #20938
  • fix: show relation field changes in the timeline by @parshipcy in #21052
  • i18n - translations by @github-actions[bot] in #21112
  • Bump playwright by @prastoin in #21113
  • fix: return proper FORBIDDEN GraphQL errors from ApiKeyResolver by @Weiko in #21107
  • Strictly type encryption rotation key site maps constants through entity type derivation by @prastoin in #21085
  • Public assets server s3 redirection by @prastoin in #21108
  • chore(settings): address review comments from PR 21072 by @FelixMalfait in #21121
  • i18n - translations by @github-actions[bot] in #21128
  • fix: REST cursor encoding for nested order_by composite fields by @mvanhorn in #20974
  • i18n - website translations by @github-actions[bot] in #21088
  • docs: remove the self-host cloud providers page by @FelixMalfait in #21134
  • fix: lowercase OAuth handle to prevent duplicate connected accounts by @neo773 in #21120
  • feat: expose CURRENCY field settings (format/decimals) in shared types by @josephj in #21090
  • Front component s3 redirect by @prastoin in #21116
  • [Website] Partner application wizard + logic-function handover by @rashad in #21039
  • feat(twenty-partners): expose partnerScope on list + by-slug endpoints by @rashad in #21126
  • i18n - website translations by @github-actions[bot] in #21135
  • feat(twenty-partners): submit-partner-application HTTP logic function by @rashad in #21040
  • feat(website): surface partner Categories (partnerScope) in marketplace, drop deploymentExpertise facet by @rashad in #21127
  • fix(twenty-front): enable text selection for display-mode fields by @dev-kp-eloper in #21068
  • fix(ai): correct find-records tool description (top-level filter fields) by @richroberts-prog in #21109
  • feat(logic-function): add LIVE / PREBUILT execution modes by @charlesBochet in #20873
  • i18n - translations by @github-actions[bot] in #21141
  • fix(record-table): keep column header dropdown open after Move Left/Right by @prakhartripath0001 in #21015
  • Prevent conditional availability variables from being used at runtime by @bosiraphael in #21110
  • chore(twenty-partners): bump app version to 0.3.3 by @rashad in #21140
  • feat(settings): move settings chrome into a single rounded card by @FelixMalfait in #21131
  • Always show Favorites section and add favorites via the side panel by @FelixMalfait in #21087
  • i18n - translations by @github-actions[bot] in #21148
  • i18n - translations by @github-actions[bot] in #21149
  • chore(twenty-partners): refine design-doc skill doctrine by @rashad in #21151
  • Allow functional iframes in front components while blocking sandbox escapes by @bosiraphael in #21145
  • fix: block self-impersonation in admin panel by @parshipcy in #21130
  • i18n - translations by @github-actions[bot] in #21154
  • feat: allow many-to-one relations as advanced filter leaves by @FelixMalfait in #21147
  • i18n - website translations by @github-actions[bot] in #21137
  • refactor(server): merge duplicate TypeOrmModule.forFeature calls in MessagingMessageCleanerModule by @Rpaudel379 in #21150
  • refactor(twenty-server): collapse workspace migration build orchestrator by @charlesBochet in #21144
  • Bonapara/twenty codex plugin by @Bonapara in #20857
  • Fix front component pointer/mouse event coordinates by @bosiraphael in #21117
  • refactor(server): split LambdaDriver and LocalDriver into focused sub-services by @charlesBochet in #21153
  • fix(twenty-server): fix AI tools description for SELECT view filter values by @thomtrp in #21156
  • feat(partners): remove Project Budget Typical field, rework partner views & nav order by @rashad in #21162
  • feat(website): partner marketplace UI fixes & CTA improvements by @rashad in #21163
  • chore: sync AI model catalog from models.dev by @github-actions[bot] in #21170
  • (partners): bump app version 0.3.3 -> 0.3.4 by @rashad in #21167
  • Fix Unzipped size must be smaller than 250Mb error by @martmull in #21172
  • i18n - website translations by @github-actions[bot] in #21165
  • fix: update yarn.lock after removing dotenv and zod from twenty-sdk by @rashad in #21174
  • Refactor email composer by @prastoin in #21177
  • fix(ai-chat): refresh JWT token on SSE reconnect to prevent login red… by @b3nito404 in #20176
  • Fix fields widget new field visibility by @Weiko in #21111
  • fix: eliminate workflow editing flicker on active-to-draft transitions by @thomtrp in #21176
  • i18n - translations by @github-actions[bot] in #21189
  • perf(ai) - per-tool schema resolution in resolveSchemas by @etiennejouan in #21188
  • Fix lambda error by @martmull in #21179
  • Provide additional logsobservability to workflow runs (per node) by @ijreilly in #21142
  • feat(mcp) - optimize instruction prompt and hide get_tool_catalog by @etiennejouan in #21183
  • i18n - translations by @github-actions[bot] in #21191
  • Fix: Not able to add multiple handles to Blocklist in settings/accounts by @git-init-priyanshu in #21049
  • i18n - translations by @github-actions[bot] in #21192
  • Update axios in package.json of seed-dependencies by @mabdullahabaid in #21190
  • fix(ai) - optimize crud tools by @etiennejouan in #21133
  • i18n - docs translations by @github-actions[bot] in #21195
  • Fix axios related dependabot alerts generated against root yarn.lock by @mabdullahabaid in #21187
  • feat(ci): integrate Argos visual regression via vitest screenshots by @charlesBochet in #21210
  • feat(settings): add Logs as a dedicated tab in General settings by @FelixMalfait in #21180
  • chore: sync AI model catalog from models.dev by @github-actions[bot] in #21212
  • fix(front): settings skeleton, app-detail header & empty favorites by @FelixMalfait in #21209
  • chore(deps): bump @mantine/hooks from 8.3.15 to 8.3.18 by @dependabot[bot] in #21203
  • chore(deps-dev): bump @types/passport-microsoft from 2.1.0 to 2.1.1 by @dependabot[bot] in #21204
  • chore(deps-dev): bump prettier from 3.4.2 to 3.8.3 by @dependabot[bot] in #21205
  • fix(upgrade): resequence workflow step logs command by @ehconitin in #21213
  • Set 200 code for post requests by @martmull in #21214
  • [AUDIT] Run knip over twenty-server by @prastoin in #21159
  • feat(ci): simplify visual regression dispatch to twenty-ui only by @charlesBochet in #21215

New Contributors

Full Changelog: v2.8.0...v2.9.0

Don't miss a new twenty release

NewReleases is sending notifications on new releases.