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