twenty/v2.17.0

twentyhq/twentytwenty/v2.17.0Jun 29, 2026by Weiko

AI Summary

This release focuses on billing enhancements, including new invoice generation and credit card integration, alongside a major UI/UX overhaul for the language picker and input error handling. It also moves the meeting bot functionality to a public package and improves server-side IMAP handling.

Key Highlights

  • Rename 'meeting bot' to 'call recorder' and move to public packages
  • Billing improvements: Invoice generation on seat increase and embedded credit card form
  • Frontend UX: Search in language picker and fixed input error message overlap
  • Server: IMAP support for non-RFC compliant servers
  • UI: Removed application custom settings tab

New Features

  • Invoice on seat increase
  • Search in the language picker
  • IMAP support for non RFC compliant servers
  • Backend primitive to credit workspace billing balance
  • Add v2 create-workspace onboarding screen

Full Release Notes

## 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