⚠️ Breaking changes
- [BREAKING_CHANGE] chore: remove the compatibility code kept for the 2.44 rollout (#27021) by @FelixMalfait
✨ New features
💅 Improvements & UX
- Verify front component checksums before execution (#26454) by @bosiraphael
- [Onboarding 9/10] Add 3D background (#26784) by @Bonapara
- improve the limits organization plan display (#26915) by @Bonapara
- Migrate advanced filter row controls (#26961) by @bosiraphael
- Share one billing entitlement check across settings and logs (#26972) by @Bonapara
- Unify shortcut formatting and presentation (#26973) by @bosiraphael
- Move mobile navigation into its frontend owner (#26992) by @bosiraphael
- Migrate workflow and import pickers (#26999) by @bosiraphael
- Share Breadcrumb navigation in Twenty UI (#27001) by @bosiraphael
- Build the find tool orderBy schema from the object's fields (#27010) by @FelixMalfait
- Only offer Export records on index pages (#27017) by @FelixMalfait
- Keep the Last Contact app's fields off the record timeline (#27019) by @FelixMalfait
- [Onboarding 9/10 follow-up] Keep the 3D background off the onboarding critical path (#27023) by @etiennejouan
- Drop legacy core campaignDelivery and messageSuppression tables (#27025) by @FelixMalfait
- Share NumberStepper across settings (#27028) by @bosiraphael
- Share progress rings and metric rows (#27031) by @bosiraphael
- Move ImageInput into Twenty UI (#27039) by @bosiraphael
- Move ExpandableList into Twenty UI as OverflowingList (#27040) by @bosiraphael
- Record-level sharing 1/5: restrict records of objects open by default (#27045) by @FelixMalfait
- Prevent stale credentials in IMAP input (#27048) by @BOHEUS
- Let applications and workflows start conversations in a member's chats (#27049) by @FelixMalfait
- Restore appearance card design (#27051) by @bosiraphael
- Ship junction relations and remove IS_JUNCTION_RELATIONS_ENABLED (#27053) by @FelixMalfait
- Record-level sharing 2/5: share records beyond the recipient's role (#27054) by @FelixMalfait
- Run application workflows with the owning application's permissions (#27055) by @thomtrp
- Record-level sharing 3/5: Share on every object, panel and object settings (#27057) by @FelixMalfait
- Record-level sharing 4/5: All records permission and ownership transfer (#27058) by @FelixMalfait
- Render core workflow versions as command menu items (#27062) by @thomtrp
- Remove the See Version command menu item from workflow runs (#27063) by @thomtrp
- Deprecate
authContextin favor ofRawAuthContext( currently type proxy ) (#27067) by @BOHEUS - Record-level sharing 5: one row access policy for queries, events and writes (#27068) by @FelixMalfait
- Keep email and calendar steps out of application workflows (#27072) by @thomtrp
- Make app scaffolding reusable and fix template typechecking (#27073) by @Weiko
- Systemic application registration ownership guard (#27074) by @prastoin
- Validation rule form (1/5): render field chips with the shared Chip (#27090) by @thomtrp
- Validation rule form (2/5): MenuItem suggestion rows (#27091) by @thomtrp
- Validation rule form (3/5): suggestion details like the design (#27092) by @thomtrp
- Validation rule form (4/5): condition in one preview card (#27093) by @thomtrp
🐛 Bug fixes
- fix: harden two-factor authentication against impersonation and OTP guessing (#26583) by @abdulrahmancodes
- fix(apps): pin the media-notes example to published SDK versions (#27011) by @Weiko
- fix(front): keep disabled sortable widgets accessible (#27015) by @FelixMalfait
- fix(workflow): show the selected count on the core workflows index (#27016) by @thomtrp
- fix(front): See Workflow from the workflow runs table and hide See Version with core workflows (#27022) by @thomtrp
- fix(server): release the migration runner connection before failure cleanup (#27024) by @charlesBochet
- fix(workflow): polish the core workflows index and its command menu (#27066) by @thomtrp
- fix(ai-chat): strip NUL bytes from message parts before persisting (#27101) by @etiennejouan
- fix(settings): role save onSuccess, saving state and permissions fallback (#27103) by @FelixMalfait
- fix(permissions): keep row access conditions outside user WHERE expressions (#27105) by @FelixMalfait
⚡ Performance
- perf: reduce relation assignment and ORM hydration overhead (#27060) by @FelixMalfait
🔧 Developer & API
🏗️ Internal changes (13)
- chore(server): bump @nestjs packages to 11.2.6, drop multer resolution (#27013) by @mabdullahabaid
- chore(server): remove service unit specs (#27020) by @charlesBochet
- chore: remove useless and stale comments (#27026) by @charlesBochet
- chore: strict comment pass on recently touched files (#27027) by @charlesBochet
- refactor(usage-limit): group quota consumption rows by unit (#27037) by @etiennejouan
- chore: remove IS_UNIQUE_INDEXES_ENABLED feature flag (#27052) by @FelixMalfait
- chore(server): drop the v2 suffix from the workspace pool metric names (#27056) by @charlesBochet
- chore(security): bump axios to 1.20.0 everywhere for the September advisory batch (#27077) by @mabdullahabaid
- chore(security): bump brace-expansion to fixed versions everywhere (#27086) by @mabdullahabaid
- chore(security): bump ip-address to 10.7.2 everywhere (#27095) by @mabdullahabaid
- chore(security): bump piscina to 4.9.4 (#27098) by @mabdullahabaid
- chore(security): bump @xhmikosr/decompress to 11.1.4 (#27100) by @mabdullahabaid
- chore(permissions): remove dead and duplicated server permission code (#27106) by @FelixMalfait
Full changelog (68 PRs)
- Verify front component checksums before execution (#26454) by @bosiraphael
- fix: harden two-factor authentication against impersonation and OTP guessing (#26583) by @abdulrahmancodes
- POC: define application workflows through the SDK (#26662) by @thomtrp
- [Onboarding 9/10] Add 3D background (#26784) by @Bonapara
- improve the limits organization plan display (#26915) by @Bonapara
- Migrate advanced filter row controls (#26961) by @bosiraphael
- Share one billing entitlement check across settings and logs (#26972) by @Bonapara
- Unify shortcut formatting and presentation (#26973) by @bosiraphael
- Move mobile navigation into its frontend owner (#26992) by @bosiraphael
- Migrate workflow and import pickers (#26999) by @bosiraphael
- Share Breadcrumb navigation in Twenty UI (#27001) by @bosiraphael
- chore: bump version to 2.45.0 (#27009) by @twenty-pr
- Build the find tool orderBy schema from the object's fields (#27010) by @FelixMalfait
- fix(apps): pin the media-notes example to published SDK versions (#27011) by @Weiko
- chore(server): bump @nestjs packages to 11.2.6, drop multer resolution (#27013) by @mabdullahabaid
- chore: sync AI model catalog (#27014) by @github-actions
- fix(front): keep disabled sortable widgets accessible (#27015) by @FelixMalfait
- fix(workflow): show the selected count on the core workflows index (#27016) by @thomtrp
- Only offer Export records on index pages (#27017) by @FelixMalfait
- Keep the Last Contact app's fields off the record timeline (#27019) by @FelixMalfait
- chore(server): remove service unit specs (#27020) by @charlesBochet
- [BREAKING_CHANGE] chore: remove the compatibility code kept for the 2.44 rollout (#27021) by @FelixMalfait
- fix(front): See Workflow from the workflow runs table and hide See Version with core workflows (#27022) by @thomtrp
- [Onboarding 9/10 follow-up] Keep the 3D background off the onboarding critical path (#27023) by @etiennejouan
- fix(server): release the migration runner connection before failure cleanup (#27024) by @charlesBochet
- Drop legacy core campaignDelivery and messageSuppression tables (#27025) by @FelixMalfait
- chore: remove useless and stale comments (#27026) by @charlesBochet
- chore: strict comment pass on recently touched files (#27027) by @charlesBochet
- Share NumberStepper across settings (#27028) by @bosiraphael
- Share progress rings and metric rows (#27031) by @bosiraphael
- refactor(usage-limit): group quota consumption rows by unit (#27037) by @etiennejouan
- Move ImageInput into Twenty UI (#27039) by @bosiraphael
- Move ExpandableList into Twenty UI as OverflowingList (#27040) by @bosiraphael
- Record-level sharing 1/5: restrict records of objects open by default (#27045) by @FelixMalfait
- Prevent stale credentials in IMAP input (#27048) by @BOHEUS
- Let applications and workflows start conversations in a member's chats (#27049) by @FelixMalfait
- Restore appearance card design (#27051) by @bosiraphael
- chore: remove IS_UNIQUE_INDEXES_ENABLED feature flag (#27052) by @FelixMalfait
- Ship junction relations and remove IS_JUNCTION_RELATIONS_ENABLED (#27053) by @FelixMalfait
- Record-level sharing 2/5: share records beyond the recipient's role (#27054) by @FelixMalfait
- Run application workflows with the owning application's permissions (#27055) by @thomtrp
- chore(server): drop the v2 suffix from the workspace pool metric names (#27056) by @charlesBochet
- Record-level sharing 3/5: Share on every object, panel and object settings (#27057) by @FelixMalfait
- Record-level sharing 4/5: All records permission and ownership transfer (#27058) by @FelixMalfait
- perf: reduce relation assignment and ORM hydration overhead (#27060) by @FelixMalfait
- Render core workflow versions as command menu items (#27062) by @thomtrp
- Remove the See Version command menu item from workflow runs (#27063) by @thomtrp
- fix(workflow): polish the core workflows index and its command menu (#27066) by @thomtrp
- Deprecate
authContextin favor ofRawAuthContext( currently type proxy ) (#27067) by @BOHEUS - Record-level sharing 5: one row access policy for queries, events and writes (#27068) by @FelixMalfait
- Keep email and calendar steps out of application workflows (#27072) by @thomtrp
- Make app scaffolding reusable and fix template typechecking (#27073) by @Weiko
- Systemic application registration ownership guard (#27074) by @prastoin
- chore(security): bump axios to 1.20.0 everywhere for the September advisory batch (#27077) by @mabdullahabaid
- feat(logic-function): identify the function in live logic function logs (#27079) by @Weiko
- chore(security): bump brace-expansion to fixed versions everywhere (#27086) by @mabdullahabaid
- Validation rule form (1/5): render field chips with the shared Chip (#27090) by @thomtrp
- Validation rule form (2/5): MenuItem suggestion rows (#27091) by @thomtrp
- Validation rule form (3/5): suggestion details like the design (#27092) by @thomtrp
- Validation rule form (4/5): condition in one preview card (#27093) by @thomtrp
- chore(security): bump ip-address to 10.7.2 everywhere (#27095) by @mabdullahabaid
- chore(security): bump piscina to 4.9.4 (#27098) by @mabdullahabaid
- chore: sync AI model catalog (#27099) by @github-actions
- chore(security): bump @xhmikosr/decompress to 11.1.4 (#27100) by @mabdullahabaid
- fix(ai-chat): strip NUL bytes from message parts before persisting (#27101) by @etiennejouan
- fix(settings): role save onSuccess, saving state and permissions fallback (#27103) by @FelixMalfait
- fix(permissions): keep row access conditions outside user WHERE expressions (#27105) by @FelixMalfait
- chore(permissions): remove dead and duplicated server permission code (#27106) by @FelixMalfait
Full Changelog: twenty/v2.44.0...twenty/v2.45.0