twenty/v2.19.0

elizaOS/elizatwenty/v2.19.0Jul 8, 2026by prastoin

AI Summary

Focuses on UI improvements, SDK updates for app metadata management, and AI/emailing feature expansions.

Key Highlights

  • Added terraform-style plan/apply for app metadata sync
  • Introduced the Last contact app to onboarding
  • Improved billing settings UI
  • Added delete_workflow and ask_questions interactive tools

Breaking Changes

  • make pageLayout type field

New Features

  • Terraform-style plan/apply for app metadata
  • Delete workflow tool
  • Ask questions interactive clarifying-question tool
  • Emailing features including SES event forwarding

Full Release Notes

## What's Changed
* fix(page-layout): render relation field widgets in table display mode by @ehconitin in https://github.com/twentyhq/twenty/pull/22220
* chore: bump version to 2.19.0 by @twenty-pr[bot] in https://github.com/twentyhq/twenty/pull/22363
* Fix draft send: read messageChannel from core, not workspace ORM by @neo773 in https://github.com/twentyhq/twenty/pull/22365
* messaging remove dead workspace entities  by @neo773 in https://github.com/twentyhq/twenty/pull/22366
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22371
* `[FIX_TYPECHECK_ON_MAIN]` Add missing inviteTeamMaxCreditsReward to OnboardingConfig type by @prastoin in https://github.com/twentyhq/twenty/pull/22370
* Front fallback flat object search field metadata by @prastoin in https://github.com/twentyhq/twenty/pull/22369
* chore: auto pre-translate untranslated docs strings before Crowdin pull by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/22334
* `[REQUIRED FOR 2.18 RELEASE]` Show the upgrade-plan step at the end of V1 onboarding by @bosiraphael in https://github.com/twentyhq/twenty/pull/22368
* feat(server): make workspace Custom application carry an applicationRegistration so custom labels are translatable by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22378
* fix: drop domain from computed remote name when subdomain present by @martmull in https://github.com/twentyhq/twenty/pull/22376
* chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22387
* fix(workflow): stop relative date filter from crashing on empty/invalid date values by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/22384
* Backfill webhook subscriptions for existing connected accounts by @neo773 in https://github.com/twentyhq/twenty/pull/22314
* feat: show group-by context in record show breadcrumb by @parshipcy in https://github.com/twentyhq/twenty/pull/22247
* Handle field isNullable update by @Weiko in https://github.com/twentyhq/twenty/pull/22362
* fix(dpa): correct US processor entity to Twenty.com PBC by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22393
* Add install your first apps onboarding V2 step by @bosiraphael in https://github.com/twentyhq/twenty/pull/22347
* feat(twenty-sdk): terraform-style plan/apply for app metadata sync by @Weiko in https://github.com/twentyhq/twenty/pull/22372
* SearchVector derivation via migration-scoped index (alt to #2622 __warmedUpCache) by @prastoin in https://github.com/twentyhq/twenty/pull/22389
* Add smooth page transitions to onboarding v2 by @bosiraphael in https://github.com/twentyhq/twenty/pull/22392
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22400
* feat(last-contact): design for Last contact by + Last contact item by @martmull in https://github.com/twentyhq/twenty/pull/22308
* Update onboarding v2 credit reward amounts by @bosiraphael in https://github.com/twentyhq/twenty/pull/22399
* Let the sign-in screen scroll when its content overflows the viewport by @bosiraphael in https://github.com/twentyhq/twenty/pull/22397
* fix(billing): link billing emails to the workspace subdomain by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22401
* Add installed workspaces view to application registration by @martmull in https://github.com/twentyhq/twenty/pull/22359
* refactor(server): unify metadata override-blob computation (step 1 of override unification) by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22404
* Fix BlockNote placeholder alignment + paddings by @Bonapara in https://github.com/twentyhq/twenty/pull/22409
* Update app name by @martmull in https://github.com/twentyhq/twenty/pull/22410
* feat(sdk): translate front-component strings with t()/Trans/useTranslate by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22301
* Improve billing settings UI by @Bonapara in https://github.com/twentyhq/twenty/pull/22377
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22413
* Add twenty-app keyword by @martmull in https://github.com/twentyhq/twenty/pull/22415
* Fix lint by @martmull in https://github.com/twentyhq/twenty/pull/22416
* chore: sync DPA sub-processors from trust center by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22403
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22420
* test(server): fix DPA Annex C test broken by sub-processor sync action by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22422
* feat(shared): require defaultValue on non-nullable field manifests by @martmull in https://github.com/twentyhq/twenty/pull/22419
* feat(twenty-sdk): include app readme in published package by @martmull in https://github.com/twentyhq/twenty/pull/22431
* fix(billing) - invalidate activationStatus after billing event by @etiennejouan in https://github.com/twentyhq/twenty/pull/22414
* fix(website): tighten product-feature spotlight height and align bento spacing by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22428
* feat(website): add Product to menu + footer nav, move Why into Resources dropdown by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22429
* i18n - website translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22436
* Add Last contact app to onboarding v2 installable apps by @bosiraphael in https://github.com/twentyhq/twenty/pull/22433
* fix: bump json-2-csv 5.5.10 -> 5.5.11 (Dependabot) by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22438
* refactor(schema): reorganize IndexField and related types by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/22439
* fix(website): center the User Guide nav preview image by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22445
* refactor(server): unify the two metadata override mechanisms into one by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22417
* fix(ai) - Fix date stripped from agent tool output by @etiennejouan in https://github.com/twentyhq/twenty/pull/22443
* feat(ai) - add delete_workflow tool by @etiennejouan in https://github.com/twentyhq/twenty/pull/22432
* chore(server): ship the 2.20 standardOverrides drop as a dormant command by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22448
* fix(website): restore footer CTA buttons on the light card inside the dark stage by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22447
* fix(server): apply row-level security predicates to API key and application principals by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22456
* fix(front): render pinned command-menu buttons inline in page header by @Weiko in https://github.com/twentyhq/twenty/pull/22446
* fix(front): hide sub-item tree connector in navigation drag preview by @Weiko in https://github.com/twentyhq/twenty/pull/22442
* feat(server): improve traceability of flat-entity map mutation errors by @prastoin in https://github.com/twentyhq/twenty/pull/22396
* feat(ai): surface AI chat stream failures through one typed error channel by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22434
* fix(twenty-sdk): stop dev-mode OOM by caching compiled manifest modules by @martmull in https://github.com/twentyhq/twenty/pull/22435
* Fix front component crash on unknown elements by @bosiraphael in https://github.com/twentyhq/twenty/pull/22455
* feat(emailing): forward SES events to Tatami Monitor by @neo773 in https://github.com/twentyhq/twenty/pull/22407
* feat(ai): add ask_questions interactive clarifying-question tool by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22346
* feat(emailing): local unsubscribe URL + full-content log driver by @neo773 in https://github.com/twentyhq/twenty/pull/22412
* [Breaking change] fix: make pageLayout type field required by @etiennejouan in https://github.com/twentyhq/twenty/pull/22450
* Drop unsafe props from front component elements by @bosiraphael in https://github.com/twentyhq/twenty/pull/22458
* perf(front): query only rendered fields in application settings pages by @martmull in https://github.com/twentyhq/twenty/pull/22454
* feat(server): workspace opt-out of root-domain directory listing by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22423
* Gate and meter email group: enterprise license (self-host) + credits (cloud) by @neo773 in https://github.com/twentyhq/twenty/pull/22390
* feat(call-recorder): cap media file size during ingestion to avoid OOM by @ehconitin in https://github.com/twentyhq/twenty/pull/22463
* Fire front component window error handlers by @bosiraphael in https://github.com/twentyhq/twenty/pull/22462
* fix(ai): offer Retry when the failed turn persisted partial assistant output by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22478
* fix(sse): treat expected event-stream coordination errors as 403s and never crash the sync loop by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22475
* test(ai): pin StreamAgentChatJob stream lifecycle with a reusable spec harness by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22479
* fix(ai): delete the Redis chunk list on credits-exhausted terminal events by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22477
* fix(ai): route missing-workspace stream failures through the standard error path by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22480
* perf(sse): drop the per-workspace lock around atomic activeStreams set operations by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22476
* fix(ai): tell members without billing permission why AI stopped at the usage cap by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22487
* fix(ai): apply stream chunks in exact server seq order via a client-side sequencer by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22484
* fix(ai): bound silent stream recovery and surface a terminal CONNECTION_LOST state by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22486
* perf(ai): render streaming markdown as memoized blocks by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22489
* chore(server): fix stream-agent-chat job spec formatting breaking main's lint by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22493
* feat(ai): typed CONTEXT_WINDOW_EXCEEDED error that hides the pointless Retry by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22488
* fix(ai): converge every tab's transcript when a stream fails with partial output by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22494
* fix(ai): notify all tabs when a pending question is answered by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22491
* fix(ai): fully roll back a question answer when the resume enqueue fails by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22492
* use Temporal for date filter evaluation and fix IS operand by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/22408
* test(ai): pin the queue-updated event that now follows stream-error on the failure path by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22500
* fix(upgrade): re-slot all 2-19 upgrade commands to their real merge epochs and guard timestamps in CI by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22498
* fix: format numbers according to user preferences in settings views by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22501
* fix: align email validation between front and server and roll back optimistic value on failed save by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/22490
* fix(front): skip unknown fields in SSE optimistic updates instead of dropping the event by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22474
* Fix non-idempotent application sync for viewSorts (subFieldName undefined vs null) by @martmull in https://github.com/twentyhq/twenty/pull/22505
* Self-host Inter and DM Mono fonts by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22506
* Add billing plans comparison page by @Bonapara in https://github.com/twentyhq/twenty/pull/22424
* fix(ai): make stream claims atomic via conditional UPDATEs with claim-or-queue send by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22481
* fix(front): gate SSO and audit logs on enterprise validity token by @charlesBochet in https://github.com/twentyhq/twenty/pull/22459
* fix(ai) - sync AI agent step output schema when agent response format changes by @etiennejouan in https://github.com/twentyhq/twenty/pull/22466
* feat(applications): add type and options to application variables by @martmull in https://github.com/twentyhq/twenty/pull/22157
* Fix webhook entity dropdown layout by @Bonapara in https://github.com/twentyhq/twenty/pull/22497
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22511
* perf(twenty-server): browser-cache picture file responses (avatars/logos) by @clivemeister in https://github.com/twentyhq/twenty/pull/22166
* feat(server): first-class logo on application registration + narrowed settings queries by @martmull in https://github.com/twentyhq/twenty/pull/22453
* feat(server): import application logo into file storage at install by @martmull in https://github.com/twentyhq/twenty/pull/22437
* fix(server): resolve foreign key violation blocking application uninstall by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/22502
* perf(twenty-server): drive immutable file caching from fileFolderConfigs on both serving paths by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22510
* chore(server): remove the five dead FileFolder values and their legacy serving pipeline by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22516
* feat(logic-function): namespace shared Lambda resources per instance by @charlesBochet in https://github.com/twentyhq/twenty/pull/22509
* feat(ai): add a stream heartbeat and reap dead claims so a worker crash cannot brick a thread by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22482
* feat(server): promote registration display fields to first-class columns by @martmull in https://github.com/twentyhq/twenty/pull/22513
* fix email alias guard with message channel availibility by @neo773 in https://github.com/twentyhq/twenty/pull/22521
* fix(server): tolerate metadata-physical index drift in legacy index name normalization by @prastoin in https://github.com/twentyhq/twenty/pull/22472
* feat(files): direct-to-storage upload endpoints with pending file lifecycle by @martmull in https://github.com/twentyhq/twenty/pull/22449
* feat(ai): dashboard & view building by @etiennejouan in https://github.com/twentyhq/twenty/pull/22411
* fix(server): restrict /webhooks/server dispatch to server-route-exposed functions by @prastoin in https://github.com/twentyhq/twenty/pull/22469
* perf(twenty-server): cache BuiltFrontComponent and PublicAsset responses by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22523
* perf(front-component): fingerprint built-JS URLs by path for CDN caching by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22530
* Support sender variable on workflow send-email action by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22512
* Expose sent message identifiers in workflow send-email step output by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22520
* Remove v1 onboarding and rely only on v2 by @bosiraphael in https://github.com/twentyhq/twenty/pull/22398
* Centralized side effects devxp basis by @prastoin in https://github.com/twentyhq/twenty/pull/22295
* feat(ai): persist assistant chat messages progressively during streaming by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22524
* Add configurable call recorder summaries by @ehconitin in https://github.com/twentyhq/twenty/pull/22405
* feat(server): drain queue workers gracefully on SIGTERM by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22514
* fix(ai): gate chat thread totals on stream ownership to prevent usage under-counting by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22534
* Call recorder: skeleton loading state + port front components to twenty-ui by @ehconitin in https://github.com/twentyhq/twenty/pull/22473
* Squirclesssss 🟦🔵 by @Bonapara in https://github.com/twentyhq/twenty/pull/22535
* fix(docker): bump node base to 24.17.0 for CVE-2026-48930 (critical) by @charlesBochet in https://github.com/twentyhq/twenty/pull/22529
* feat(helm): parametrize liveness, readiness and startup probes for server by @mhorcajada in https://github.com/twentyhq/twenty/pull/22268
* feat(twenty-for-twenty): bump to SDK 2.18 with local UI components by @charlesBochet in https://github.com/twentyhq/twenty/pull/22542
* fix(front): don't blank record title when the title cell is untouched by @avonian in https://github.com/twentyhq/twenty/pull/22293
* feat(ci): detect bot signatures in PR description, comments and reviews by @charlesBochet in https://github.com/twentyhq/twenty/pull/22547
* Add MCP setup screen by @Bonapara in https://github.com/twentyhq/twenty/pull/22468
* chore(apps): remove the twenty-for-twenty app (consolidated into twenty-eng) by @charlesBochet in https://github.com/twentyhq/twenty/pull/22549
* fix(server): require confidential client auth in authorization_code grant by @charlesBochet in https://github.com/twentyhq/twenty/pull/22548
* feat(server): refresh application registration on install by @martmull in https://github.com/twentyhq/twenty/pull/22527
* feat: expose marketplace app detail fields explicitly and deprecate manifest blob by @martmull in https://github.com/twentyhq/twenty/pull/22526
* QA follow up - Polish settings billing and MCP UI by @Bonapara in https://github.com/twentyhq/twenty/pull/22554
* refactor(server): regroup application resolvers by resource and unify install permission flag by @martmull in https://github.com/twentyhq/twenty/pull/22532
* Run integration tests against the real BullMQ driver by @neo773 in https://github.com/twentyhq/twenty/pull/22551
* Add focus-safe side panel shortcuts by @Bonapara in https://github.com/twentyhq/twenty/pull/22499
* chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22558
* message campaign redesign by @neo773 in https://github.com/twentyhq/twenty/pull/22508
* feat(server): abort ai stream jobs that outlive the shutdown drain budget by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22517
* messaging: Prefer plain text calendar event description over HTML for Microsoft calendar. by @mvanhorn in https://github.com/twentyhq/twenty/pull/22540
* Call recorder: parse conference links from calendar event text by @ehconitin in https://github.com/twentyhq/twenty/pull/22555
* chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22568
* feat(files): content-verify direct uploads and pin pending files to octet-stream by @martmull in https://github.com/twentyhq/twenty/pull/22533
* feat(files): reap stale pending direct-upload files via hourly cron by @martmull in https://github.com/twentyhq/twenty/pull/22531
* Reverse pinned command menu item order on record header by @bosiraphael in https://github.com/twentyhq/twenty/pull/22577
* refactor(server): remove nestjs-query from key-value-pair module by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/22575
* Don't list headless front components in the widget picker by @bosiraphael in https://github.com/twentyhq/twenty/pull/22578
* feat(server): add instance-level file storage layer by @martmull in https://github.com/twentyhq/twenty/pull/22560
* fix(server): pace lambda control-plane calls to avoid 'Rate exceeded' on release by @thomtrp in https://github.com/twentyhq/twenty/pull/22569
* chore(server): remove unused flat-field-metadata per-object mocks by @prastoin in https://github.com/twentyhq/twenty/pull/22581
* Revert "feat(server): add instance-level file storage layer" by @martmull in https://github.com/twentyhq/twenty/pull/22579
* Fix stale token race forcing re-login on verify pages by @bosiraphael in https://github.com/twentyhq/twenty/pull/22573
* Inject functions URL into logic function env by @ehconitin in https://github.com/twentyhq/twenty/pull/22583
* feat(front): upload files directly to storage for files-field, attachments and workflow by @martmull in https://github.com/twentyhq/twenty/pull/22576
* Deterministic system field universal identifier by @prastoin in https://github.com/twentyhq/twenty/pull/22565
* Polish onboarding v2 verify animation and step screens by @bosiraphael in https://github.com/twentyhq/twenty/pull/22585
* feat(ai): open Ask AI side panel with a preprompt in two modes by @Weiko in https://github.com/twentyhq/twenty/pull/22582
* feat: publish MCP & API discovery documents (well-known standards) by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22589
* (Billing for self hosts) Tie enterprise key to server by @ijreilly in https://github.com/twentyhq/twenty/pull/22464
* feat(messaging): message campaign delivery stats + views by @neo773 in https://github.com/twentyhq/twenty/pull/22452
* fix(server): converge app-sync `isUnique` diff for single-column unique constraints by @ijreilly in https://github.com/twentyhq/twenty/pull/22592
* chore: bump sdk packages to 2.19.0-alpha.1 prerelease by @prastoin in https://github.com/twentyhq/twenty/pull/22599
* feat(files): use direct-to-storage upload for email and AI-chat attachments by @martmull in https://github.com/twentyhq/twenty/pull/22610
* Remove book a call step from onboarding by @bosiraphael in https://github.com/twentyhq/twenty/pull/22597
* Fix side panel open/close animation glitches in the page header and panel content by @bosiraphael in https://github.com/twentyhq/twenty/pull/22598
* Use record pickers for People Data Labs enrichment workflow inputs by @bosiraphael in https://github.com/twentyhq/twenty/pull/22596
* fix(server): make all view children reparentable across a workspace migration sync by @prastoin in https://github.com/twentyhq/twenty/pull/22600
* feat(app): allow claiming ownership of unclaimed app registrations by @martmull in https://github.com/twentyhq/twenty/pull/22609
* Add Document Generator SDK app + step-by-step tutorial by @martmull in https://github.com/twentyhq/twenty/pull/22522
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22617
* Use SDK calendarEventRecordPageFields identifiers in call-recorder by @ehconitin in https://github.com/twentyhq/twenty/pull/22618
* App installation workspace version check engines constraint by @prastoin in https://github.com/twentyhq/twenty/pull/22613
* chore(server): remove nestjs-query from user-workspace module by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/22591
* chore(server): migrate 5 modules off NestjsQueryTypeOrmModule wiring by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/22595
* Update claude session settings for a proper PR behavior by @martmull in https://github.com/twentyhq/twenty/pull/22619
* Widen front component crossing attributes to aria-*, data-* and draggable by @bosiraphael in https://github.com/twentyhq/twenty/pull/22614
* fix(front): honor user-set label on LINKS/URL social links by @thomtrp in https://github.com/twentyhq/twenty/pull/22586
* chore(apps): bump sdk to 2.19.0-alpha.1 and require twenty server >=2.19.0 by @prastoin in https://github.com/twentyhq/twenty/pull/22601
* chore(apps): patch bump public apps moved to sdk 2.19.0-alpha.1 by @prastoin in https://github.com/twentyhq/twenty/pull/22623
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22624
* feat(index): support composite unique indexes in create-many upsert conflict resolution by @etiennejouan in https://github.com/twentyhq/twenty/pull/22604
* Revert   "feat(messaging): message campaign delivery stats + views" (#22452) by @prastoin in https://github.com/twentyhq/twenty/pull/22627
* Remove logo from onboarding trust badges by @bosiraphael in https://github.com/twentyhq/twenty/pull/22628
* test(messaging): messaging and calendar sync integration suites by @neo773 in https://github.com/twentyhq/twenty/pull/22567
* Call recorder: sweep upcoming calendar events for recording bots on install by @ehconitin in https://github.com/twentyhq/twenty/pull/22552
* fix(ai-chat): sort message parts by orderIndex on reload by @thomtrp in https://github.com/twentyhq/twenty/pull/22629
* Create billing customer at signup so onboarding rewards are credited by @bosiraphael in https://github.com/twentyhq/twenty/pull/22633
* Display featured applications in marketplace by @martmull in https://github.com/twentyhq/twenty/pull/22635


**Full Changelog**: https://github.com/twentyhq/twenty/compare/twenty/v2.18.0...twenty/v2.19.0