What's Changed
- chore(front): move mocked-metadata helpers under src/testing by @charlesBochet in #20341
- Add description to oAuth_only app created by @martmull in #20336
- Fix plan-required modal issue by @etiennejouan in #20346
- i18n - translations by @github-actions[bot] in #20347
- chore: bump version to 2.4.0 by @twenty-pr[bot] in #20345
- Oxlint ignore twenty-version constant by @prastoin in #20350
- Improved create-twenty-app documentation for AI coding agents by @Bredo in #20325
- fix: workspace member "me" filters now work in dashboard widgets by @QuantumByteMaster in #20266
- i18n - docs translations by @github-actions[bot] in #20353
- External contributor auto-draft and dispatch pr-review event type by @prastoin in #20329
- Fix auto draft workflow by @prastoin in #20357
- Billing - Migrate from Stripe metering by @etiennejouan in #20298
- Fix docs apps navigation by @dev111-actor in #20359
- i18n - translations by @github-actions[bot] in #20362
- i18n - docs translations by @github-actions[bot] in #20366
- Billing - remove default feature flag by @etiennejouan in #20365
- fix: Use settings table rows and detail page for app connections by @bitloi in #20257
- i18n - translations by @github-actions[bot] in #20372
- i18n - docs translations by @github-actions[bot] in #20373
- Add defineApplicationRole method by @abdulrahmancodes in #20314
- i18n - docs translations by @github-actions[bot] in #20375
- Detail steps during create twenty app by @martmull in #20374
- i18n - docs translations by @github-actions[bot] in #20378
- [Website] Reintroduce the product page. by @mabdullahabaid in #20349
- i18n - docs translations by @github-actions[bot] in #20385
- chore: sync AI model catalog from models.dev by @github-actions[bot] in #20392
- i18n - website translations by @github-actions[bot] in #20384
- fix: handle widgets with missing universalConfiguration in 2.3 delete-gauge-widgets command by @charlesBochet in #20393
- fix: validate enum values before opening transaction in alterEnumValues by @Weiko in #20376
- fix: basic-ftp has FTP Command injection via CRLF by @mabdullahabaid in #20396
- Protect sendEmail endpoint and thread user context through logic function executor by @martmull in #20369
- Simplify dispatch pr review by @prastoin in #20397
- feat(sdk): warn when local server image is behind latest by @FelixMalfait in #20352
- Isolate twenty apps from nx project by @martmull in #20406
- refactor: scope ApplicationRegistrationService findOneById to tenant rows by @FelixMalfait in #20408
- feat: add email forwarding message channel by @FelixMalfait in #19535
- i18n - translations by @github-actions[bot] in #20411
- Prevent non-admin users from impersonating admin users by @FelixMalfait in #20412
- [Website] Codebase cleanup and SEO improvements. by @mabdullahabaid in #20415
- fix: scroll AI chat to bottom on side panel reopen by @FelixMalfait in #20413
- Reserve inbound subdomain for SES by @neo773 in #20414
- i18n - website translations by @github-actions[bot] in #20418
- fix(messaging): reset sync state when IMAP/SMTP/CalDAV credentials are updated by @fucx in #20405
- feat(public-domain): bind public domains to apps + reorganize settings by @FelixMalfait in #20360
- i18n - translations by @github-actions[bot] in #20428
- i18n - docs translations by @github-actions[bot] in #20429
- i18n - docs translations by @github-actions[bot] in #20431
- [Website] Extract HomeVisual into shared AppPreview section. by @mabdullahabaid in #20432
- i18n - website translations by @github-actions[bot] in #20434
New Contributors
- @Bredo made their first contribution in #20325
- @dev111-actor made their first contribution in #20359
- @fucx made their first contribution in #20405
Full Changelog: v2.3.0...v2.4.0