What's Changed
- Lowercase email by @BOHEUS in #17775
- i18n - translations by @github-actions[bot] in #17842
- Fix phone validation performance by using Set/Map instead of Array lookups by @FelixMalfait in #17843
- fix: show user-friendly error message when duplicate invite is sent by @FelixMalfait in #17827
- perf: cache ServerBlockNoteEditor instance in transformRichTextV2Value by @FelixMalfait in #17844
- Runner metadata events by @prastoin in #17841
- Fix merge records page accumulating duplicate morph items by @rdelassus in #17705
- Prevent leak between /metadata and /graphql GQL schemas by @charlesBochet in #17845
- Fix spurious logouts by deduplicating concurrent token renewals by @FelixMalfait in #17858
- Do not throw on corrupted labelFieldMetadataIdentifier by @prastoin in #17859
- Remove guard from find logic functions by @thomtrp in #17862
- File - Migrate avatarUrl > avatarFile on person (data migration + logic) + Attachment data migration by @etiennejouan in #17752
- Fix code step and logic function step in workflows by @thomtrp in #17856
- Add wildcard documentation for like/ilike/containsIlike filters by @bugisthegod in #17825
- Feat: Navbar customization by @abdulrahmancodes in #17728
- i18n - translations by @github-actions[bot] in #17869
- i18n - translations by @github-actions[bot] in #17872
- Solo transaction application synchronization service refactor by @prastoin in #17864
- Fix page layout seeding for record page layouts by @Weiko in #17871
- Handle 413 with user friendly message by @etiennejouan in #17870
- Fix hardcoded colors in 2FA verification screen for dark mode by @FelixMalfait in #17868
- Fix redirect to deleted workspace subdomain after workspace deletion by @FelixMalfait in #17865
- i18n - translations by @github-actions[bot] in #17874
- Remove redundant self-build from Nx targets that compile on the fly by @FelixMalfait in #17851
- Generate GQL schema based on applicationId by @charlesBochet in #17860
- Fix event stream does not exists error by @thomtrp in #17873
- Introducing view field group syncable entity by @Weiko in #17867
- i18n - translations by @github-actions[bot] in #17877
- Navbar customization followup by @abdulrahmancodes in #17848
- i18n - translations by @github-actions[bot] in #17881
- Reduce leak between gql schema by @charlesBochet in #17878
- Logic function refactorization by @martmull in #17861
- i18n - translations by @github-actions[bot] in #17887
- File v2 - Backfill mimeType and size - command by @etiennejouan in #17875
- Fix widget and front component queries hitting wrong GraphQL endpoint by @ehconitin in #17889
- [FRONT COMPONENTS] Twenty UI elements generation by @bosiraphael in #17866
- Bump @types/bytes from 3.1.4 to 3.1.5 by @dependabot[bot] in #17882
- Bump react-loading-skeleton from 3.4.0 to 3.5.0 by @dependabot[bot] in #17883
- Workflow bug fixes by @thomtrp in #17886
- Bump @vitest/browser-playwright from 4.0.17 to 4.0.18 by @dependabot[bot] in #17884
- Start Jotai Migration by @charlesBochet in #17893
- Fix index field comparison by @prastoin in #17896
- Migrate twenty ui to jotai by @charlesBochet in #17900
- Fix EMFILE: too many open files, watch on macOS by @FelixMalfait in #17901
- Prefil fields widgets to standard app by @Weiko in #17897
- Migrate more to Jotai by @charlesBochet in #17903
- Scalar and universal flat entity transpilers by @prastoin in #17891
- Fix twenty sdk build by @martmull in #17902
- feat: emit metadata events for schema changes with actor context for webhooks by @mabdullahabaid in #17622
- [Apps] Content + permission tabs for marketplace and installed apps by @ijreilly in #17888
- Files - Migrate attachments in activities by @etiennejouan in #17808
- Feat 17408 : Add remove option for object permissions rule by @LTan-101104 in #17601
- Some fixes by @ijreilly in #17904
- Improve AI agent chat, tool display, and workflow agent management by @FelixMalfait in #17876
- i18n - translations by @github-actions[bot] in #17905
- Refactor metadata events to contain
scalarEntityby @prastoin in #17908 - i18n - translations by @github-actions[bot] in #17911
- Speed up twenty-emails build by replacing vite-plugin-dts with tsgo by @FelixMalfait in #17857
- Migrate create syncable entity cursor rule to skills by @prastoin in #17912
- Hide delete button for record page layout widgets by @Copilot in #17892
- Drag and drop fields of Fields widgets by @Devessier in #17910
- fix: prevent tab synchronization between different records by @Eruis2579 in #17559
- chore(nx): remove leftover Nx wrapper artifacts by @ehconitin in #17916
- Add mentions feature to objects in notes by @acee3 in #16373
- i18n - translations by @github-actions[bot] in #17915
- [FRONT COMPONENT] Add Front component token generation by @ehconitin in #17855
- Improve building of twenty-sdk by @charlesBochet in #17913
- Fix event stream infinite loops by @thomtrp in #17919
- i18n - translations by @github-actions[bot] in #17920
- Add scripts to publish cli tools by @martmull in #17914
- Enhance stories for front component in sdk by @charlesBochet in #17925
- i18n - docs translations by @github-actions[bot] in #17930
- fix: replace react-tooltip with AppTooltip and refactor MenuItemAvatar by @kiannidev in #17846
- Create record page layout after custom object creation by @Weiko in #17923
- Revert export twenty UI by @charlesBochet in #17929
- Update cli tool versions by @martmull in #17933
- i18n - translations by @github-actions[bot] in #17932
- feat: add draft email workflow action by @neo773 in #17793
- Respect Gmail retry-after in messaging throttle by @neo773 in #17850
- i18n - docs translations by @github-actions[bot] in #17939
- fix: add explicit error hint for coverage threshold failures in frontend test step by @mabdullahabaid in #17937
- i18n - translations by @github-actions[bot] in #17935
- Add @mention support in AI Chat input by @FelixMalfait in #17943
- fix: markdown-it is has a regular expression denial of service by @mabdullahabaid in #17946
- fix: qs arrayLimit bypass in comma parsing allows denial of service by @mabdullahabaid in #17947
- i18n - translations by @github-actions[bot] in #17945
- [FRONT COMPONENTS] Allow style librairies in remote dom by @bosiraphael in #17936
- fix: restore customDomain field in getCurrentUser query fragment by @FelixMalfait in #17949
- Support define is tool logic function by @martmull in #17926
- i18n - translations by @github-actions[bot] in #17966
- i18n - docs translations by @github-actions[bot] in #17967
- feat: configure standard views and migrate attachment seeds to FILES field by @FelixMalfait in #17958
- i18n - docs translations by @github-actions[bot] in #17972
[OBJECT_MANIFEST_BREAKING_CHANGE]Sync returns workspace migration by @prastoin in #17918- Add default fields on object manifest by @martmull in #17977
- [DASHBOARDS] Add split multi-value fields setting for charts by @ehconitin in #17907
- i18n - docs translations by @github-actions[bot] in #17981
- Change condition for multi-workspace check by @manstfu in #17938
- i18n - translations by @github-actions[bot] in #17983
- Fix and refactor all metadata relation by @prastoin in #17978
- i18n - translations by @github-actions[bot] in #17986
- Improve AI chat UX by @Bonapara in #17974
- i18n - translations by @github-actions[bot] in #17987
- fix: use pickMorphGroupSurvivor in relation loader to match field metadata deduplication by @FelixMalfait in #17988
- File - Disable file upload in standalone rich text widget by @etiennejouan in #17934
- Navigation Menu Item - Migration in v1.18 by @etiennejouan in #17991
- i18n - translations by @github-actions[bot] in #17993
- fix: on charts newly added multi split values toggle wasnt being saved by @ehconitin in #17990
- feat: show auto-generated conversation title for AI chat. by @mabdullahabaid in #17922
- fix: improve clipboard copy for non-HTTPS self-hosted deployments by @FelixMalfait in #17989
- i18n - translations by @github-actions[bot] in #17995
- i18n - translations by @github-actions[bot] in #17997
- Fix dashboard new tab creation by @Devessier in #17971
- Page layout various fixes by @Weiko in #17996
- Added relations to SSE events by @lucasbordeau in #17683
- Emitting the correct event based on whether the record is being soft deleted or restored. by @Lakshayyy-m in #17953
- Sync views and navigation items by @thomtrp in #18003
- Fix initial code step functionInput by @martmull in #18002
- File - Migrate core pictures (workspace and member logo) + workflow attachments by @etiennejouan in #17924
- Translate page layout tab title by @Devessier in #17975
- i18n - translations by @github-actions[bot] in #18007
- Fixed group by query order by inside group by @lucasbordeau in #18005
- Move secure HTTP client IP validation to connection level by @FelixMalfait in #18006
- Replace country code by calling code in workflows by @thomtrp in #18008
- i18n - translations by @github-actions[bot] in #18012
- Add Client Api generation by @charlesBochet in #17961
- Load view field groups by @Devessier in #18010
- New onboarding plan by @BOHEUS in #17776
- i18n - translations by @github-actions[bot] in #18013
- Migrate more to Jotai by @charlesBochet in #17968
- i18n - docs translations by @github-actions[bot] in #18014
- Navbar customization improvements by @abdulrahmancodes in #17863
- Fix connected account permissions by @BOHEUS in #17598
- i18n - docs translations by @github-actions[bot] in #18017
- i18n - docs translations by @github-actions[bot] in #18020
- Files command - fixes by @etiennejouan in #18016
- Date & DateTime validation fixes / improvements by @etiennejouan in #18009
- fixes: loosen up front validation, add resolveEntityRelationUniversalIdentifiers to update and restore by @ehconitin in #18015
- New field creates fields widget field by @Weiko in #18022
- App feedbacks by @martmull in #18028
- Add SSE for metadata and plug front components by @bosiraphael in #17998
- Improve API Client usage and add Typescript check by @charlesBochet in #18023
- i18n - translations by @github-actions[bot] in #18029
- v1.18 - Fix command by @etiennejouan in #18032
- Fix Gmail thread awareness for custom labels by @neo773 in #18031
- Allow DATE_TIME IS operand to filter on a whole day by @carbonFibreCode in #17529
- Replace generic "Unknown error" messages with descriptive error details by @FelixMalfait in #18019
- Use proper PostgreSQL identifier/literal escaping in workspace DDL by @FelixMalfait in #18024
- Fixes - Workspace logo migration by @etiennejouan in #18035
- [Chore] : Generate migration for DATE_TIME to DATE for DATE_TIME + IS operand filters by @carbonFibreCode in #17564
- 2094 extensibility define postinstall orand preinstall function to run in application by @martmull in #18037
- Nav Menu Item Migration command fix by @etiennejouan in #18041
New Contributors
- @LTan-101104 made their first contribution in #17601
- @Eruis2579 made their first contribution in #17559
- @acee3 made their first contribution in #16373
- @kiannidev made their first contribution in #17846
- @manstfu made their first contribution in #17938
Full Changelog: v1.17.0...v1.18.0