What's Changed
- Fix empty emails critical bug by @bosiraphael in #13465
- bug fix - cannot-read-properties-of-undefined-reading-tolowercase by @guillim in #13466
- Synchronization between Core Views and Workspace Views by @bosiraphael in #13461
- Cleaning command - add log by @etiennejouan in #13464
- Cleanup remaining old component states by @lucasbordeau in #13435
- add command to destroy workspaces by @etiennejouan in #13447
- fixing issue with QueryFailed on message import by @guillim in #13471
- Improve core view migration by @bosiraphael in #13474
- [permissions] Adapt FE to non-readable fields by @ijreilly in #13440
- remove gql connect input for morph field - temporary by @etiennejouan in #13475
- Connect/Disconnect in .save by @etiennejouan in #13444
- feat: add Google Place Autocomplete for address fields by @omarNaifer12 in #13450
- move APIs and Webhooks section out of advanced mode by @BKM14 in #13481
- Filter action fixes on select field by @thomtrp in #13477
- i18n - translations by @github-actions[bot] in #13483
- Fix Website deploy by @FelixMalfait in #13482
- Permissions V1 Documentation by @vickywxng in #13473
- Remove all legacy state management by @lucasbordeau in #13476
- Filter batch fixes by @thomtrp in #13486
- feat(ai): add markdown in ai chat by @AMoreaux in #13402
- Reset relation id to null rather than empty string by @thomtrp in #13488
- Object metadata API create one using workspace migration v2 by @prastoin in #13420
- fix: Display year for releases from previous years on website (#13276) by @vishwas-babar in #13291
- refactor: to useCopyToClipboard to catch errors - when user has disable copy clipboard permission in browser by @Nabhag8848 in #13330
- i18n - translations by @github-actions[bot] in #13495
- feat: allow users to start the calendar week on Monday by @omarNaifer12 in #13295
- i18n - translations by @github-actions[bot] in #13499
- fix: IMAP Import by @neo773 in #13500
CreateFieldInput
transpilation toFlatFieldMetadata
,FlatFieldMetadata
validation by @prastoin in #13493- Add design for selected filter by @thomtrp in #13498
- i18n - translations by @github-actions[bot] in #13503
- AI Agent handoffs by @abdulrahmancodes in #13472
- Implement Workspace Schema Manager Service by @Weiko in #13501
- fix: add userFriendlyMessage to handleDuplicateKeyError by @neo773 in #13513
- Remove mistakenly added files by @FelixMalfait in #13514
- BREAKING - feat(auth): refactor tokens logic & enhance email verification flow by @AMoreaux in #13487
- feat: merge records by @neo773 in #13436
- i18n - translations by @github-actions[bot] in #13521
- Fix 2fa auth and token format migration by @FelixMalfait in #13523
- test(front): coverage limit by @prastoin in #13526
FlatFieldMetadataType
hashmap arch and enum validation by @prastoin in #13502- Fix linter performance front by @charlesBochet in #13527
- i18n - translations by @github-actions[bot] in #13528
- Do not enrich relations when id undefined by @thomtrp in #13530
- i18n - translations by @github-actions[bot] in #13531
- [permissions] Update permission check layer by @ijreilly in #13485
- fix: delete account by @neo773 in #13543
- i18n - translations by @github-actions[bot] in #13546
- enhance globalComponentInstanceContextMap type safety by @neo773 in #13544
- feat(domain-manager): refactor custom domain validation and improve c… by @AMoreaux in #13388
- i18n - translations by @github-actions[bot] in #13547
- [admin-panel] - add scroll restoration and filter persistence on config variables by @ehconitin in #13363
- [POC] multi select drag and drop on record board by @ehconitin in #13053
- feat: merge records button in RecordDetailDuplicatesSection by @neo773 in #13537
- i18n - translations by @github-actions[bot] in #13555
- fix: prevent saving tiny scroll positions in restoration hook by @ehconitin in #13554
- AI settings tab by @abdulrahmancodes in #13496
- i18n - translations by @github-actions[bot] in #13556
- feat(database): add chunked insert method for ClickHouse integration by @AMoreaux in #13534
- Fix
flatFieldMetadata
transpiler to fit realcache
typing by @prastoin in #13529 - Fix eventEmitter emitting when diff is empty by @Weiko in #13560
- feat: add sub fields for address by @omarNaifer12 in #13566
- Enable roles on api keys by @ehconitin in #13334
- Removed Line 52 from SETTINGS_NON_COMPOSITE_FIELD_TYPE_CONFIGS by @Atharva-Pandkar in #13572
- i18n - translations by @github-actions[bot] in #13575
- Fix breadcrumbs to display friendly object names instead of API names… by @aaron-cal in #13573
- i18n - translations by @github-actions[bot] in #13578
- Improve messaging sync performances by @charlesBochet in #13549
- [permissions] Remove non-readable field from aggregate options (kanban) by @ijreilly in #13559
- Refacto filter action + handle missing composite fields by @thomtrp in #13557
- Field metadata v2 relation by @prastoin in #13562
- fix: standardize GraphQL schema UUID field types by @abdulrahmancodes in #13550
- Add tooltip when navigation menu isnt expanded by @FelixMalfait in #13583
- Reset overflow visible to previous value, fix console error by @FelixMalfait in #13586
- fix: API key regeneration fails when roles feature is disabled by @ehconitin in #13588
- Fix upsert in ORM by @charlesBochet in #13589
- Disable changing label identifier for standard objects by @FelixMalfait in #13593
- Add local storage effect to save sidebar state by @FelixMalfait in #13591
- Implement branch front end by @martmull in #13489
- i18n - translations by @github-actions[bot] in #13600
- Fix seed workspace by @martmull in #13601
- [permissions] Return all columns by default for upsert by @ijreilly in #13587
- Update workflow stepId type by @abdulrahmancodes in #13602
- Add TwentyORM query read timeout exception by @charlesBochet in #13603
- i18n - translations by @github-actions[bot] in #13606
- Fix workflowRun real time updates by @martmull in #13605
- Create getting-around-twenty.mdx by @StephanieJoly4 in #13558
- Fix id typing in metadata generated schema by @charlesBochet in #13596
- Refactor isReadOnly + introduce restrictedFields by @ijreilly in #13533
- Upsert in CreateMany - fixes by @etiennejouan in #13598
- Update docker-compose.mdx by @alexcohfr in #13597
- Upgrade Vite6 to Vite7 by @FelixMalfait in #13610
- Remove unused files by @FelixMalfait in #13612
- Remove unused dependencies by @FelixMalfait in #13611
- Add snackbar on CSV exports by @BiswasRai in #13608
- feat: email and calendar events for opportunities by @neo773 in #13613
- Update object-level permissions design by @FelixMalfait in #13614
- Fix soft delete unique constraints to allow reusing unique values after deletion by @abdulrahmancodes in #13615
- i18n - translations by @github-actions[bot] in #13616
- [CleanUp] Post api keys and webhooks migration cleanup by @ehconitin in #13576
- i18n - translations by @github-actions[bot] in #13617
- IMAP Fixes & Improvements by @neo773 in #13582
- [Admin Panel] fix invalid uuid issue on health status by @ehconitin in #13619
FlatObjectMetadataMaps
and non FP style refactor by @prastoin in #13590- Fix created step position by @martmull in #13621
- Field permission CRUD front-end implementation by @lucasbordeau in #13524
- Handle types that are not field metadata by @thomtrp in #13604
- i18n - translations by @github-actions[bot] in #13627
- Fix email not verified issue while login through sso by @charlesBochet in #13631
- i18n - translations by @github-actions[bot] in #13632
- fix typo by @etiennejouan in #13634
- Add immer in package.json by @charlesBochet in #13635
- [api keys] fix breadcrumb not appearing on api key details by @ehconitin in #13633
- i18n - translations by @github-actions[bot] in #13636
- Remove graphql-middleware by @charlesBochet in #13638
- Fix workflow run command by @martmull in #13641
- Improve code editor style and enable full screen code editor by @FelixMalfait in #13618
- i18n - translations by @github-actions[bot] in #13645
- [permissions] Handle fieldPermissions configuration for 1N relations by @ijreilly in #13630
- Re add graphql middlware by @charlesBochet in #13644
- Split workspace service by @martmull in #13642
- i18n - translations by @github-actions[bot] in #13648
- Display edge button when whole edge is hovered by @martmull in #13651
- Fixed SettingsObjectFieldItemTableRow grid sizes by @lucasbordeau in #13653
- Fix insert query builder not handling empty array by @charlesBochet in #13656
- Merge Records fix by @neo773 in #13658
- add userFriendly messages to PermissionsException by @neo773 in #13659
- [permissions] Adapt field permissions to connect + createMany by @ijreilly in #13655
- Data model settings - Address field design fix by @etiennejouan in #13677
- Removed all v2 in naming of state management logic by @lucasbordeau in #13675
- Introduce a TAB to test the HTTP node by @FelixMalfait in #13622
- Merge record UI fixes by @neo773 in #13678
- fix api mismatch on rest metadata by @ehconitin in #13680
- revert ci changes on ci-breaking-changes by @ehconitin in #13682
- Add ADD NEW cta as the last row by @FelixMalfait in #13594
- i18n - translations by @github-actions[bot] in #13684
- Fix broken main branch by @FelixMalfait in #13685
- Handle relations for filters by @thomtrp in #13654
- i18n - translations by @github-actions[bot] in #13688
- Feat workspace migration maintains flat object metadata maps by @prastoin in #13620
- Fix for Invalid URL Error when creating new user by @thomasmol in #13689
- Fixed show page crash with object metadata item not found by @lucasbordeau in #13694
- Disable node dragging on workflow run and workflow version by @martmull in #13693
FlatObject/FieldMetadata
andFlatObjectMetadataMaps
mocks by @prastoin in #13691- Add design when edge focused by @martmull in #13687
- Replace
useOnSelectionChange
withonClick
listeners for steps opening by @Devessier in #13672 - i18n - translations by @github-actions[bot] in #13707
FlatObjectMetadataMaps
utils coverage by @prastoin in #13695- PR comment followups (isNonEmptyString and rename WorkflowExecutionResult) by @FelixMalfait in #13706
- Refactor timeline activity insert by @charlesBochet in #13696
- [Need metadatada sync] - add user email unique on workspace member by @etiennejouan in #13686
- Timestamp column migration in all workspace schema tables by @etiennejouan in #13679
- CreateMany optim - .save -> .updateMany + position by @etiennejouan in #13704
- Fix i18n issues on datamodel translation by @charlesBochet in #13710
- Remove filters following deleted trigger/steps by @thomtrp in #13697
- Fix update many behavior with composite and connect by @charlesBochet in #13712
- Filter dropdown by types by @thomtrp in #13703
- [permissions] Fix delete and soft-delete + enable fieldPermissions in devSeeds by @ijreilly in #13646
- fix record position calculations on tables by @ehconitin in #13723
- Fix missing WHERE clause in migration by @martmull in #13718
- Set flow after step creation by @Devessier in #13725
- Do not throw when no selected not found by @thomtrp in #13727
- Remove chrome extension by @FelixMalfait in #13729
- Upgrade to Node 24 by @FelixMalfait in #13730
- Refactor
FieldMetadataService
and validation to consumeFlatObjectMetadataMaps
by @prastoin in #13719 - Remove filter when this is the last step by @thomtrp in #13726
- Prevent node creation when trigger is empty by @thomtrp in #13731
- [permissions] QA fixes by @ijreilly in #13698
- Expect node
24.5.0
by @prastoin in #13734 - fix rest api metadata by @etiennejouan in #13720
- Create resolvers and controllers for core views by @bosiraphael in #13624
- i18n - translations by @github-actions[bot] in #13738
- Add command to delete workflow runs by @martmull in #13736
- Run migrations on empty databases on docker compose by @thani-sh in #13647
- Improve messaging behavior by @charlesBochet in #13746
- Update try/catch syntax by @FelixMalfait in #13732
- Improve messaging batch by @charlesBochet in #13747
- Other messaging improvements by @charlesBochet in #13750
New Contributors
- @Atharva-Pandkar made their first contribution in #13572
- @aaron-cal made their first contribution in #13573
- @alexcohfr made their first contribution in #13597
- @BiswasRai made their first contribution in #13608
- @thani-sh made their first contribution in #13647
Full Changelog: v1.2.0...v1.3.0