Skip to content

twenty

vtwenty/v2.17.0 Breaking

This release includes 1 breaking change for platform teams planning a safe upgrade.

Published 27d Productivity & Wikis
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

crm crm-system customer graphql javascript marketing
+8 more
monorepo nestjs postgresql react reactjs sales typescript web

Affected surfaces

deps

Summary

AI summary

Broad release touches website, server, fix, and deps.

Full changelog

What's Changed

  • update readme file for meeting bot by @ehconitin in https://github.com/twentyhq/twenty/pull/22069
  • chore: bump version to 2.17.0 by @twenty-pr[bot] in https://github.com/twentyhq/twenty/pull/22088
  • feat(billing): invoice on seat increase by @etiennejouan in https://github.com/twentyhq/twenty/pull/22083
  • fix(email-settings): enable independent message folder and subfolder selection by @rish106-hub in https://github.com/twentyhq/twenty/pull/21853
  • Reduce published twenty-ui npm package size by @bosiraphael in https://github.com/twentyhq/twenty/pull/22087
  • feat(front): add search to the language picker by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22095
  • rename twenty meeting bot to call recorder by @ehconitin in https://github.com/twentyhq/twenty/pull/22093
  • fix: update skill to fit requirements by @rashad in https://github.com/twentyhq/twenty/pull/22097
  • i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22102
  • chore(apps): move public apps to packages/twenty-apps/public and generalize CI workflow by @martmull in https://github.com/twentyhq/twenty/pull/22096
  • Add backend primitive to credit a workspace's billing balance by @bosiraphael in https://github.com/twentyhq/twenty/pull/22094
  • docs: rewrite billing credits page to clarify credit value and usage by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22099
  • chore(deps): bump react-error-boundary from 4.0.13 to 4.1.2 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/22105
  • chore(deps-dev): bump @storybook/addon-a11y from 10.4.1 to 10.4.6 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/22103
  • chore(deps): bump @e2b/code-interpreter from 2.6.0 to 2.6.1 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/22106
  • chore(deps): bump @nestjs/schedule from 6.1.0 to 6.1.3 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/22112
  • chore(deps): bump @sentry/react from 10.51.0 to 10.60.0 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/22111
  • chore(deps): bump @scalar/api-reference-react from 0.9.46 to 0.9.48 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/22115
  • Enforce server route app configuration requirements by @martmull in https://github.com/twentyhq/twenty/pull/22091
  • fix(server): scope server-route target dispatch to the resolver's application by @martmull in https://github.com/twentyhq/twenty/pull/22101
  • Update workspace domain card layout by @Bonapara in https://github.com/twentyhq/twenty/pull/22108
  • chore: disable dependabot version-update PRs by @charlesBochet in https://github.com/twentyhq/twenty/pull/22119
  • chore(deps): bump @ai-sdk/mistral from 3.0.39 to 3.0.40 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/22117
  • chore(deps-dev): bump @storybook/addon-docs from 10.3.4 to 10.4.6 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/22110
  • fix(website): force-dynamic partner profiles to stop OpenNext 404 cache by @rashad in https://github.com/twentyhq/twenty/pull/22120
  • chore: replace vite-tsconfig-paths with resolve.tsconfigPaths by @parshipcy in https://github.com/twentyhq/twenty/pull/22100
  • fix(ux): input error messages no longer overlap adjacent fields in forms by @emmanuelhb56 in https://github.com/twentyhq/twenty/pull/21886
  • i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22122
  • Add v2 create-workspace onboarding screen by @bosiraphael in https://github.com/twentyhq/twenty/pull/22075
  • fix(server): dispatch each cron trigger exactly once by @charlesBochet in https://github.com/twentyhq/twenty/pull/22113
  • Close side panel after command menu actions by @Bonapara in https://github.com/twentyhq/twenty/pull/22118
  • Update TypeScript moduleResolution to bundler by @martmull in https://github.com/twentyhq/twenty/pull/22127
  • chore(apps): move call-recorder to public, remove stale meeting-bot duplicate by @ehconitin in https://github.com/twentyhq/twenty/pull/22132
  • docs(user-guide): remove unsupported Between operator for Date filters by @luizgabrielnaoseioq in https://github.com/twentyhq/twenty/pull/22136
  • feat(billing): clarify subscription, credits, and add-credits sections by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22126
  • feat(billing): embed credit card form in the add-card trial-end modal by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22125
  • i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22142
  • fix(sdk): render CLI OAuth success page on localhost (twenty dev) by @martmull in https://github.com/twentyhq/twenty/pull/22131
  • fix(billing): widen embedded add-card modal and align its buttons by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22141
  • chore(website): remove partners marketplace route lint guard by @rashad in https://github.com/twentyhq/twenty/pull/22121
  • fix(server): skip defaultValue null check for relation/morph fields on update by @abhinavapasok in https://github.com/twentyhq/twenty/pull/21875
  • fix(client-sdk): bundle metadata client into a single self-contained file by @prastoin in https://github.com/twentyhq/twenty/pull/22085
  • chore(create-twenty-app): align scaffold with unified app test/lint/typecheck configs by @martmull in https://github.com/twentyhq/twenty/pull/22128
  • Rework website FilesVisual to match twenty-front files tab by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22147
  • fix(calendar): mark channel completed on no-events fetch by @neo773 in https://github.com/twentyhq/twenty/pull/22137
  • feat(apps): let front components open a record in the side panel by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22140
  • rename sync-completion methods to avoid confusion with stage setters by @neo773 in https://github.com/twentyhq/twenty/pull/22138
  • chore(call-recorder): drop FAILED status schema bridge by @ehconitin in https://github.com/twentyhq/twenty/pull/22134
  • fix(sdk): evict compiled manifest modules from require cache in dev mode by @martmull in https://github.com/twentyhq/twenty/pull/22129
  • fix(ci): retry Danger.js on transient GitHub API fetch errors by @charlesBochet in https://github.com/twentyhq/twenty/pull/22151
  • i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22154
  • Rework website EmailsVisual to match twenty-front emails tab by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22146
  • fix(server): allow moving menu items into a folder created in the same sync by @martmull in https://github.com/twentyhq/twenty/pull/22130
  • Tidy website ImportVisual markup and CSS by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22148
  • Rework website TasksVisual to match twenty-front tasks tab by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22143
  • i18n - website translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22158
  • Split website stepper into home-stepper and product-stepper sections by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22149
  • feat(applications): remove the application custom settings tab by @martmull in https://github.com/twentyhq/twenty/pull/22156
  • i18n - website translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22160
  • IMAP support non RFC compliant servers by @neo773 in https://github.com/twentyhq/twenty/pull/22153
  • fix: stabilize tooltip anchor ID with useRef to prevent hover glitch by @emmanuelhb56 in https://github.com/twentyhq/twenty/pull/21888
  • i18n - website translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22162
  • v1.1.16 — Restore Partner slug in side panel and Notes tab by @rashad in https://github.com/twentyhq/twenty/pull/22165
  • Support CSS imports in front-components via runtime style injection by @bosiraphael in https://github.com/twentyhq/twenty/pull/22150
  • API key creation triggers unnecessary ORMEntityMetadatas cache recomputation by @Weiko in https://github.com/twentyhq/twenty/pull/22168
  • Feat: group records by many to one relation by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/22123
  • Flatten system object pickers by @Bonapara in https://github.com/twentyhq/twenty/pull/22161
  • fix(ci): patch danger to decline gzip, fixing ERR_STREAM_PREMATURE_CLOSE on Node 24 by @charlesBochet in https://github.com/twentyhq/twenty/pull/22171
  • fix(filter): resolve filter-derived date defaults with Temporal (fixes create/update crash in date-filtered views) by @charlesBochet in https://github.com/twentyhq/twenty/pull/22124
  • fix mobile side panel close by @Weiko in https://github.com/twentyhq/twenty/pull/22169
  • call recorder polishes by @ehconitin in https://github.com/twentyhq/twenty/pull/22170
  • Forward parent commits to Argos visual regression dispatch by @bosiraphael in https://github.com/twentyhq/twenty/pull/22174
  • fix(ask-ai): resolve stream subscription race condition on new thread… by @Akash5908 in https://github.com/twentyhq/twenty/pull/21916
  • fix(docs): correct typos in multiple files by @kylenngu135 in https://github.com/twentyhq/twenty/pull/22173
  • [BREAKING CHANGE] remove call recording feature flag and backfill upgrade command for existing command menu items navigation command by @ehconitin in https://github.com/twentyhq/twenty/pull/22176
  • Fix source icon SVG ID collisions by @Bonapara in https://github.com/twentyhq/twenty/pull/22177
  • fix(front): wrap long note/markdown text on mobile browsers by @ak800i in https://github.com/twentyhq/twenty/pull/21909
  • call recorder readme billing update by @ehconitin in https://github.com/twentyhq/twenty/pull/22184
  • feat(messaging): skip webhook-active channels in list-fetch crons until sync is stale by @neo773 in https://github.com/twentyhq/twenty/pull/22183
  • Call recorder readme nitpick by @ehconitin in https://github.com/twentyhq/twenty/pull/22185
  • Add command menu items to people data labs by @martmull in https://github.com/twentyhq/twenty/pull/22180
  • i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22189
  • fix(server): wrap file storage upsert and read in transaction by @alibildir in https://github.com/twentyhq/twenty/pull/21924
  • fix(server): preserve anyFieldFilterValue in view manifest sync by @parshipcy in https://github.com/twentyhq/twenty/pull/22004
  • Fix threaded draft email replies by @Bonapara in https://github.com/twentyhq/twenty/pull/22175
  • Add logging on sync catalog job by @martmull in https://github.com/twentyhq/twenty/pull/22192
  • fix: uneven spacing in date picker calendar grid by @parshipcy in https://github.com/twentyhq/twenty/pull/21881
  • feat(billing): replace Stripe trial emails with fair, well-timed reminders by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22186
  • [Workflows] Allow iterator to take whole item as variable by @ijreilly in https://github.com/twentyhq/twenty/pull/22031
  • fix: relative date picker calendar display by @parshipcy in https://github.com/twentyhq/twenty/pull/21895
  • fix(twenty-front): apply object type translations to details panel relation labels by @Manibharadwaj in https://github.com/twentyhq/twenty/pull/22090
  • Reorder validation execution to match migration action order by @martmull in https://github.com/twentyhq/twenty/pull/22200
  • Frameless ProductStepper with twenty-front-faithful scenes by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22197
  • Set record card header height and calendar spacing by @Bonapara in https://github.com/twentyhq/twenty/pull/22187
  • i18n - website translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22203
  • fix(ai-chat) - improvements by @etiennejouan in https://github.com/twentyhq/twenty/pull/22193
  • fix: hide "Create Workspace" button when multi-workspace is disabled by @Akash5908 in https://github.com/twentyhq/twenty/pull/22202
  • Add v2 onboarding loading screen while creating workspace by @bosiraphael in https://github.com/twentyhq/twenty/pull/22152
  • Use settings icon in settings drawer tab by @Bonapara in https://github.com/twentyhq/twenty/pull/22204
  • Bump call-recorder and people-data-lab apps by @martmull in https://github.com/twentyhq/twenty/pull/22208
  • Fix settings page root overflow by @Bonapara in https://github.com/twentyhq/twenty/pull/22207
  • Bump call-recorder and people-data-lab apps by @martmull in https://github.com/twentyhq/twenty/pull/22213
  • Fix rounded page layout tab edit outline by @Bonapara in https://github.com/twentyhq/twenty/pull/22214
  • Fix favorite showing non-readable objects by @Weiko in https://github.com/twentyhq/twenty/pull/22217
  • feat(messaging): link emails by Reply-To as a REPLY_TO participant by @neo773 in https://github.com/twentyhq/twenty/pull/22216
  • Add v2 onboarding import contacts page and unify the onboarding v2 shell by @bosiraphael in https://github.com/twentyhq/twenty/pull/22212
  • fix(ai-chat): keep streams alive on silent SSE death + make the stream job idempotent by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22201
  • Fix navigation opened section spacing by @Bonapara in https://github.com/twentyhq/twenty/pull/22222
  • fix(workflow): avoid 'file not found' when duplicating unbuilt code steps by @Weiko in https://github.com/twentyhq/twenty/pull/22179
  • fix(website): polish product hero AI transition (panel reveal timing + title wrapping) by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22223
  • feat(website): show partner location instead of served regions in marketplace by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22224
  • Add author to twenty apps by @martmull in https://github.com/twentyhq/twenty/pull/22226
  • Add v2 onboarding create profile page by @bosiraphael in https://github.com/twentyhq/twenty/pull/22221
  • fix: stamp MCP and AI Agent writes with FieldActorSource.AGENT by @Amresh-01 in https://github.com/twentyhq/twenty/pull/22215
  • Update public app names by @martmull in https://github.com/twentyhq/twenty/pull/22228
  • feat(website): rebuild dashboard visual faithful to twenty-front by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22218
  • Add backfill installation feature for pre-installed apps by @martmull in https://github.com/twentyhq/twenty/pull/22199
  • feat(website): swap product Demo for a register Signoff; make signoff headings width-driven by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22232
  • fix(ai) - fixes by @etiennejouan in https://github.com/twentyhq/twenty/pull/22227
  • i18n - website translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22225
  • i18n - website translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22234
  • chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22242
  • feat(website): menu adapts to the section beneath it by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22241
  • ci(preview-env): run preview environments on free ci-public Actions by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22245
  • feat: create calendar events on Google and Microsoft accounts by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22231
  • i18n - website translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22244
  • perf: cap to-many relation records per parent and inline chips in table by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22206
  • feat(website): rework the product-stepper Layout visual by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22249
  • feat(dpa): self-serve Data Processing Agreement generator by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22243
  • feat(server): resolve app-owned metadata translations at runtime by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22235
  • feat(twenty-sdk): extract & compile app translations into the manifest by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22236

New Contributors

  • @rish106-hub made their first contribution in https://github.com/twentyhq/twenty/pull/21853
  • @luizgabrielnaoseioq made their first contribution in https://github.com/twentyhq/twenty/pull/22136
  • @abhinavapasok made their first contribution in https://github.com/twentyhq/twenty/pull/21875
  • @Akash5908 made their first contribution in https://github.com/twentyhq/twenty/pull/21916
  • @kylenngu135 made their first contribution in https://github.com/twentyhq/twenty/pull/22173
  • @ak800i made their first contribution in https://github.com/twentyhq/twenty/pull/21909
  • @alibildir made their first contribution in https://github.com/twentyhq/twenty/pull/21924
  • @Amresh-01 made their first contribution in https://github.com/twentyhq/twenty/pull/22215

Full Changelog: https://github.com/twentyhq/twenty/compare/twenty/v2.16.0...twenty/v2.17.0

Breaking Changes

  • [BREAKING CHANGE] remove call recording feature flag and backfill upgrade command for existing command menu items navigation command

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track twenty

Get notified when new releases ship.

Sign up free

About twenty

Building a modern alternative to Salesforce, powered by the community.

All releases →

Related context

Earlier breaking changes

  • vtwenty/v2.20.0 Deprecate `fieldMetadata` and `objectMetadata` standardOverrides.
  • vtwenty/v2.13.0 Gate record creation on isUICreatable only, decoupled from isSystem.
  • vtwenty/v2.13.0 Rename isUIReadOnly to isUIEditable and add isUICreatable, affecting app developers.
  • vtwenty/v2.12.0 Deprecate isCustom for Objects and Fields.
  • vtwenty/v2.12.0 Deprecate dummy enterprise key (2/2).

Beta — feedback welcome: [email protected]