What's Changed
- feat(website): ship all documentation locales (multi-locale site) by @mabdullahabaid in #22257
- fix(website): config-only Crowdin pull to match short-code catalogs by @mabdullahabaid in #22262
- chore: bump version to 2.18.0 by @twenty-pr[bot] in #22256
- i18n - website translations by @github-actions[bot] in #22263
- i18n - website translations by @github-actions[bot] in #22264
- fix(website): bump @opennextjs/cloudflare to 1.20.0 (R2 deploy on Node 24) by @mabdullahabaid in #22266
- i18n - docs translations by @github-actions[bot] in #22271
- i18n - docs translations by @github-actions[bot] in #22273
- i18n - docs translations by @github-actions[bot] in #22276
- i18n - docs translations by @github-actions[bot] in #22279
- i18n - docs translations by @github-actions[bot] in #22280
- i18n - docs translations by @github-actions[bot] in #22281
- fix: ignore IME composition Enter in chat-thread and attachment rename inputs by @greymoth-jp in #22270
- fix(server): dedupe in-flight application translation catalog loads by @FelixMalfait in #22285
- fix(ai-tools): make navigate_app tool schema a valid object root for direct model binding by @etiennejouan in #22284
- feat(ai): reliable bulk data import via code-interpreter by @etiennejouan in #22209
- fix: Vite 8/Rolldown build warnings in library packages by @parshipcy in #22205
- feat(helm): add nodeSelector, tolerations and DNS overrides to server and worker by @mhorcajada in #22233
- Add v2 onboarding invite team page by @bosiraphael in #22229
- i18n - docs translations by @github-actions[bot] in #22296
- i18n - docs translations by @github-actions[bot] in #22297
- fix: prevent crash when leaving dashboard edit mode with side panel open by @Weiko in #22292
- microsoft webhook ttl fix by @neo773 in #22300
- Add marketplace catalog synchronization to admin panel by @martmull in #22260
- chore(docs): exclude code blocks and icon frontmatter from Crowdin translation by @abdulrahmancodes in #22304
- i18n - docs translations by @github-actions[bot] in #22307
- fix(server): normalize legacy index names (command) by @ijreilly in #22053
- Move filter group destruction after filter operations by @Souheyl7Gouadria in #22248
- i18n - docs translations by @github-actions[bot] in #22317
- Add call recorder oom diagnosis logs by @ehconitin in #22315
- fix: evict js-yaml 3.x via front-matter patch + scoped resolutions by @mabdullahabaid in #22312
- fix(server): add workspaceMember jobTitle field without view-field side effects by @FelixMalfait in #22306
- i18n - docs translations by @github-actions[bot] in #22319
- Polish settings page titles and admin tables by @Bonapara in #22305
- v2 onboarding: dedicated verify step and upgrade-free-trial as the last step by @bosiraphael in #22303
- i18n - docs translations by @github-actions[bot] in #22329
- fix: improve native print output for dashboards and record tables by @vittolago in #22272
- feat(server): resolve app translations across remaining metadata resolvers by @FelixMalfait in #22237
- chore(docs): self-clean orphans and surface failed languages in i18n … by @abdulrahmancodes in #22278
- i18n - docs translations by @github-actions[bot] in #22335
- fix(front): mark stale AnimatePresence exit page inert so it can't intercept clicks by @Weiko in #22328
- bump call recorder by @ehconitin in #22318
- fix: reconcile metadata store after object creation so activity targets on new custom objects link correctly by @etiennejouan in #22331
- ci(twenty-front): show only failing unit tests in CI by @prastoin in #22345
- feat(call-recorder): use workspace logo for Recall bot image by @ehconitin in #22302
- feat(server): configurable HTTP keep-alive/headers timeouts to prevent proxy 502s by @charlesBochet in #22327
- Deprecate
asExpressionfrom field metadata search_vector by @prastoin in #22287 - Remove twenty-ui reexport from the SDK and use twenty-ui directly by @bosiraphael in #22326
- i18n - docs translations by @github-actions[bot] in #22350
- chore: sync DPA sub-processors from trust center by @github-actions[bot] in #22282
- fix(navigation-menu-item): reject PAGE_LAYOUT items that don't reference a STANDALONE_PAGE layout by @etiennejouan in #22343
- feat(messaging): sync draft emails and edit them in the thread composer by @neo773 in #22178
- i18n - docs translations by @github-actions[bot] in #22352
- Fix v2 onboarding dropping to v1 after connecting email by @bosiraphael in #22351
- fix(server): recreate searchVector GIN index on rebuild by @prastoin in #22349
- Clear orphan search field metadata backfill tsVectorFieldMetadataId by @prastoin in #22353
- v1.2.0 — Client brief intake (marketplace B2) by @rashad in #22290
- Track total onboarding free credits in an atom by @bosiraphael in #22348
- Credit the import-contacts onboarding reward on account connection by @bosiraphael in #22354
- feat(server): add 2.18 recompute-search-vectors upgrade command by @prastoin in #22355
- Credit workspaces for onboarding invite-team signups by @bosiraphael in #22309
- improve dry run logs: show entity names and changed fields by @ijreilly in #22299
- Update workflows documentation by @ijreilly in #22356
New Contributors
- @greymoth-jp made their first contribution in #22270
- @mhorcajada made their first contribution in #22233
- @vittolago made their first contribution in #22272
Full Changelog: twenty/v2.17.0...twenty/v2.18.0