twenty/v2.45.0
twentyhq/twentytwenty/v2.45.0Oct 5, 2026by twenty-pr[bot]
Upgrading?
AI Summary
Continues the rollout of record-level sharing, validation rules, and UI improvements. It fixes bugs related to two-factor authentication and workflow display.
Key Highlights
- Complete implementation of record-level sharing with row access policies.
- Validation rule forms are introduced for defining storage and rendering.
- 3D background added to onboarding experience.
Breaking Changes
- Remove compatibility code kept for the 2.44 rollout.
New Features
- Identify function in live logic function logs.
- Record-level sharing 4/5: row access policy for queries/events/writes.
- Validation rule forms (1/5 through 4/5).
- 3D background for onboarding.
- Deprecation of `authContext` in favor of `RawAuthContext`.
Full Release Notes
<!-- generated-release-notes v1 --> ## ⚠️ Breaking changes - [BREAKING_CHANGE] chore: remove the compatibility code kept for the 2.44 rollout ([#27021](https://github.com/twentyhq/twenty/pull/27021)) by @FelixMalfait ## ✨ New features - feat(logic-function): identify the function in live logic function logs ([#27079](https://github.com/twentyhq/twenty/pull/27079)) by @Weiko ## 💅 Improvements & UX - Verify front component checksums before execution ([#26454](https://github.com/twentyhq/twenty/pull/26454)) by @bosiraphael - [Onboarding 9/10] Add 3D background ([#26784](https://github.com/twentyhq/twenty/pull/26784)) by @Bonapara - improve the limits organization plan display ([#26915](https://github.com/twentyhq/twenty/pull/26915)) by @Bonapara - Migrate advanced filter row controls ([#26961](https://github.com/twentyhq/twenty/pull/26961)) by @bosiraphael - Share one billing entitlement check across settings and logs ([#26972](https://github.com/twentyhq/twenty/pull/26972)) by @Bonapara - Unify shortcut formatting and presentation ([#26973](https://github.com/twentyhq/twenty/pull/26973)) by @bosiraphael - Move mobile navigation into its frontend owner ([#26992](https://github.com/twentyhq/twenty/pull/26992)) by @bosiraphael - Migrate workflow and import pickers ([#26999](https://github.com/twentyhq/twenty/pull/26999)) by @bosiraphael - Share Breadcrumb navigation in Twenty UI ([#27001](https://github.com/twentyhq/twenty/pull/27001)) by @bosiraphael - Build the find tool orderBy schema from the object's fields ([#27010](https://github.com/twentyhq/twenty/pull/27010)) by @FelixMalfait - Only offer Export records on index pages ([#27017](https://github.com/twentyhq/twenty/pull/27017)) by @FelixMalfait - Keep the Last Contact app's fields off the record timeline ([#27019](https://github.com/twentyhq/twenty/pull/27019)) by @FelixMalfait - [Onboarding 9/10 follow-up] Keep the 3D background off the onboarding critical path ([#27023](https://github.com/twentyhq/twenty/pull/27023)) by @etiennejouan - Drop legacy core campaignDelivery and messageSuppression tables ([#27025](https://github.com/twentyhq/twenty/pull/27025)) by @FelixMalfait - Share NumberStepper across settings ([#27028](https://github.com/twentyhq/twenty/pull/27028)) by @bosiraphael - Share progress rings and metric rows ([#27031](https://github.com/twentyhq/twenty/pull/27031)) by @bosiraphael - Move ImageInput into Twenty UI ([#27039](https://github.com/twentyhq/twenty/pull/27039)) by @bosiraphael - Move ExpandableList into Twenty UI as OverflowingList ([#27040](https://github.com/twentyhq/twenty/pull/27040)) by @bosiraphael - Record-level sharing 1/5: restrict records of objects open by default ([#27045](https://github.com/twentyhq/twenty/pull/27045)) by @FelixMalfait - Prevent stale credentials in IMAP input ([#27048](https://github.com/twentyhq/twenty/pull/27048)) by @BOHEUS - Let applications and workflows start conversations in a member's chats ([#27049](https://github.com/twentyhq/twenty/pull/27049)) by @FelixMalfait - Restore appearance card design ([#27051](https://github.com/twentyhq/twenty/pull/27051)) by @bosiraphael - Ship junction relations and remove IS_JUNCTION_RELATIONS_ENABLED ([#27053](https://github.com/twentyhq/twenty/pull/27053)) by @FelixMalfait - Record-level sharing 2/5: share records beyond the recipient's role ([#27054](https://github.com/twentyhq/twenty/pull/27054)) by @FelixMalfait - Run application workflows with the owning application's permissions ([#27055](https://github.com/twentyhq/twenty/pull/27055)) by @thomtrp - Record-level sharing 3/5: Share on every object, panel and object settings ([#27057](https://github.com/twentyhq/twenty/pull/27057)) by @FelixMalfait - Record-level sharing 4/5: All records permission and ownership transfer ([#27058](https://github.com/twentyhq/twenty/pull/27058)) by @FelixMalfait - Render core workflow versions as command menu items ([#27062](https://github.com/twentyhq/twenty/pull/27062)) by @thomtrp - Remove the See Version command menu item from workflow runs ([#27063](https://github.com/twentyhq/twenty/pull/27063)) by @thomtrp - Deprecate `authContext` in favor of `RawAuthContext` ( currently type proxy ) ([#27067](https://github.com/twentyhq/twenty/pull/27067)) by @BOHEUS - Record-level sharing 5: one row access policy for queries, events and writes ([#27068](https://github.com/twentyhq/twenty/pull/27068)) by @FelixMalfait - Keep email and calendar steps out of application workflows ([#27072](https://github.com/twentyhq/twenty/pull/27072)) by @thomtrp - Make app scaffolding reusable and fix template typechecking ([#27073](https://github.com/twentyhq/twenty/pull/27073)) by @Weiko - Systemic application registration ownership guard ([#27074](https://github.com/twentyhq/twenty/pull/27074)) by @prastoin - Validation rule form (1/5): render field chips with the shared Chip ([#27090](https://github.com/twentyhq/twenty/pull/27090)) by @thomtrp - Validation rule form (2/5): MenuItem suggestion rows ([#27091](https://github.com/twentyhq/twenty/pull/27091)) by @thomtrp - Validation rule form (3/5): suggestion details like the design ([#27092](https://github.com/twentyhq/twenty/pull/27092)) by @thomtrp - Validation rule form (4/5): condition in one preview card ([#27093](https://github.com/twentyhq/twenty/pull/27093)) by @thomtrp ## 🐛 Bug fixes - fix: harden two-factor authentication against impersonation and OTP guessing ([#26583](https://github.com/twentyhq/twenty/pull/26583)) by @abdulrahmancodes - fix(apps): pin the media-notes example to published SDK versions ([#27011](https://github.com/twentyhq/twenty/pull/27011)) by @Weiko - fix(front): keep disabled sortable widgets accessible ([#27015](https://github.com/twentyhq/twenty/pull/27015)) by @FelixMalfait - fix(workflow): show the selected count on the core workflows index ([#27016](https://github.com/twentyhq/twenty/pull/27016)) by @thomtrp - fix(front): See Workflow from the workflow runs table and hide See Version with core workflows ([#27022](https://github.com/twentyhq/twenty/pull/27022)) by @thomtrp - fix(server): release the migration runner connection before failure cleanup ([#27024](https://github.com/twentyhq/twenty/pull/27024)) by @charlesBochet - fix(workflow): polish the core workflows index and its command menu ([#27066](https://github.com/twentyhq/twenty/pull/27066)) by @thomtrp - fix(ai-chat): strip NUL bytes from message parts before persisting ([#27101](https://github.com/twentyhq/twenty/pull/27101)) by @etiennejouan - fix(settings): role save onSuccess, saving state and permissions fallback ([#27103](https://github.com/twentyhq/twenty/pull/27103)) by @FelixMalfait - fix(permissions): keep row access conditions outside user WHERE expressions ([#27105](https://github.com/twentyhq/twenty/pull/27105)) by @FelixMalfait ## ⚡ Performance - perf: reduce relation assignment and ORM hydration overhead ([#27060](https://github.com/twentyhq/twenty/pull/27060)) by @FelixMalfait ## 🔧 Developer & API - POC: define application workflows through the SDK ([#26662](https://github.com/twentyhq/twenty/pull/26662)) by @thomtrp <details> <summary>🏗️ Internal changes (13)</summary> - chore(server): bump @nestjs packages to 11.2.6, drop multer resolution ([#27013](https://github.com/twentyhq/twenty/pull/27013)) by @mabdullahabaid - chore(server): remove service unit specs ([#27020](https://github.com/twentyhq/twenty/pull/27020)) by @charlesBochet - chore: remove useless and stale comments ([#27026](https://github.com/twentyhq/twenty/pull/27026)) by @charlesBochet - chore: strict comment pass on recently touched files ([#27027](https://github.com/twentyhq/twenty/pull/27027)) by @charlesBochet - refactor(usage-limit): group quota consumption rows by unit ([#27037](https://github.com/twentyhq/twenty/pull/27037)) by @etiennejouan - chore: remove IS_UNIQUE_INDEXES_ENABLED feature flag ([#27052](https://github.com/twentyhq/twenty/pull/27052)) by @FelixMalfait - chore(server): drop the v2 suffix from the workspace pool metric names ([#27056](https://github.com/twentyhq/twenty/pull/27056)) by @charlesBochet - chore(security): bump axios to 1.20.0 everywhere for the September advisory batch ([#27077](https://github.com/twentyhq/twenty/pull/27077)) by @mabdullahabaid - chore(security): bump brace-expansion to fixed versions everywhere ([#27086](https://github.com/twentyhq/twenty/pull/27086)) by @mabdullahabaid - chore(security): bump ip-address to 10.7.2 everywhere ([#27095](https://github.com/twentyhq/twenty/pull/27095)) by @mabdullahabaid - chore(security): bump piscina to 4.9.4 ([#27098](https://github.com/twentyhq/twenty/pull/27098)) by @mabdullahabaid - chore(security): bump @xhmikosr/decompress to 11.1.4 ([#27100](https://github.com/twentyhq/twenty/pull/27100)) by @mabdullahabaid - chore(permissions): remove dead and duplicated server permission code ([#27106](https://github.com/twentyhq/twenty/pull/27106)) by @FelixMalfait </details> <details> <summary>Full changelog (68 PRs)</summary> - Verify front component checksums before execution ([#26454](https://github.com/twentyhq/twenty/pull/26454)) by @bosiraphael - fix: harden two-factor authentication against impersonation and OTP guessing ([#26583](https://github.com/twentyhq/twenty/pull/26583)) by @abdulrahmancodes - POC: define application workflows through the SDK ([#26662](https://github.com/twentyhq/twenty/pull/26662)) by @thomtrp - [Onboarding 9/10] Add 3D background ([#26784](https://github.com/twentyhq/twenty/pull/26784)) by @Bonapara - improve the limits organization plan display ([#26915](https://github.com/twentyhq/twenty/pull/26915)) by @Bonapara - Migrate advanced filter row controls ([#26961](https://github.com/twentyhq/twenty/pull/26961)) by @bosiraphael - Share one billing entitlement check across settings and logs ([#26972](https://github.com/twentyhq/twenty/pull/26972)) by @Bonapara - Unify shortcut formatting and presentation ([#26973](https://github.com/twentyhq/twenty/pull/26973)) by @bosiraphael - Move mobile navigation into its frontend owner ([#26992](https://github.com/twentyhq/twenty/pull/26992)) by @bosiraphael - Migrate workflow and import pickers ([#26999](https://github.com/twentyhq/twenty/pull/26999)) by @bosiraphael - Share Breadcrumb navigation in Twenty UI ([#27001](https://github.com/twentyhq/twenty/pull/27001)) by @bosiraphael - chore: bump version to 2.45.0 ([#27009](https://github.com/twentyhq/twenty/pull/27009)) by @twenty-pr - Build the find tool orderBy schema from the object's fields ([#27010](https://github.com/twentyhq/twenty/pull/27010)) by @FelixMalfait - fix(apps): pin the media-notes example to published SDK versions ([#27011](https://github.com/twentyhq/twenty/pull/27011)) by @Weiko - chore(server): bump @nestjs packages to 11.2.6, drop multer resolution ([#27013](https://github.com/twentyhq/twenty/pull/27013)) by @mabdullahabaid - chore: sync AI model catalog ([#27014](https://github.com/twentyhq/twenty/pull/27014)) by @github-actions - fix(front): keep disabled sortable widgets accessible ([#27015](https://github.com/twentyhq/twenty/pull/27015)) by @FelixMalfait - fix(workflow): show the selected count on the core workflows index ([#27016](https://github.com/twentyhq/twenty/pull/27016)) by @thomtrp - Only offer Export records on index pages ([#27017](https://github.com/twentyhq/twenty/pull/27017)) by @FelixMalfait - Keep the Last Contact app's fields off the record timeline ([#27019](https://github.com/twentyhq/twenty/pull/27019)) by @FelixMalfait - chore(server): remove service unit specs ([#27020](https://github.com/twentyhq/twenty/pull/27020)) by @charlesBochet - [BREAKING_CHANGE] chore: remove the compatibility code kept for the 2.44 rollout ([#27021](https://github.com/twentyhq/twenty/pull/27021)) by @FelixMalfait - fix(front): See Workflow from the workflow runs table and hide See Version with core workflows ([#27022](https://github.com/twentyhq/twenty/pull/27022)) by @thomtrp - [Onboarding 9/10 follow-up] Keep the 3D background off the onboarding critical path ([#27023](https://github.com/twentyhq/twenty/pull/27023)) by @etiennejouan - fix(server): release the migration runner connection before failure cleanup ([#27024](https://github.com/twentyhq/twenty/pull/27024)) by @charlesBochet - Drop legacy core campaignDelivery and messageSuppression tables ([#27025](https://github.com/twentyhq/twenty/pull/27025)) by @FelixMalfait - chore: remove useless and stale comments ([#27026](https://github.com/twentyhq/twenty/pull/27026)) by @charlesBochet - chore: strict comment pass on recently touched files ([#27027](https://github.com/twentyhq/twenty/pull/27027)) by @charlesBochet - Share NumberStepper across settings ([#27028](https://github.com/twentyhq/twenty/pull/27028)) by @bosiraphael - Share progress rings and metric rows ([#27031](https://github.com/twentyhq/twenty/pull/27031)) by @bosiraphael - refactor(usage-limit): group quota consumption rows by unit ([#27037](https://github.com/twentyhq/twenty/pull/27037)) by @etiennejouan - Move ImageInput into Twenty UI ([#27039](https://github.com/twentyhq/twenty/pull/27039)) by @bosiraphael - Move ExpandableList into Twenty UI as OverflowingList ([#27040](https://github.com/twentyhq/twenty/pull/27040)) by @bosiraphael - Record-level sharing 1/5: restrict records of objects open by default ([#27045](https://github.com/twentyhq/twenty/pull/27045)) by @FelixMalfait - Prevent stale credentials in IMAP input ([#27048](https://github.com/twentyhq/twenty/pull/27048)) by @BOHEUS - Let applications and workflows start conversations in a member's chats ([#27049](https://github.com/twentyhq/twenty/pull/27049)) by @FelixMalfait - Restore appearance card design ([#27051](https://github.com/twentyhq/twenty/pull/27051)) by @bosiraphael - chore: remove IS_UNIQUE_INDEXES_ENABLED feature flag ([#27052](https://github.com/twentyhq/twenty/pull/27052)) by @FelixMalfait - Ship junction relations and remove IS_JUNCTION_RELATIONS_ENABLED ([#27053](https://github.com/twentyhq/twenty/pull/27053)) by @FelixMalfait - Record-level sharing 2/5: share records beyond the recipient's role ([#27054](https://github.com/twentyhq/twenty/pull/27054)) by @FelixMalfait - Run application workflows with the owning application's permissions ([#27055](https://github.com/twentyhq/twenty/pull/27055)) by @thomtrp - chore(server): drop the v2 suffix from the workspace pool metric names ([#27056](https://github.com/twentyhq/twenty/pull/27056)) by @charlesBochet - Record-level sharing 3/5: Share on every object, panel and object settings ([#27057](https://github.com/twentyhq/twenty/pull/27057)) by @FelixMalfait - Record-level sharing 4/5: All records permission and ownership transfer ([#27058](https://github.com/twentyhq/twenty/pull/27058)) by @FelixMalfait - perf: reduce relation assignment and ORM hydration overhead ([#27060](https://github.com/twentyhq/twenty/pull/27060)) by @FelixMalfait - Render core workflow versions as command menu items ([#27062](https://github.com/twentyhq/twenty/pull/27062)) by @thomtrp - Remove the See Version command menu item from workflow runs ([#27063](https://github.com/twentyhq/twenty/pull/27063)) by @thomtrp - fix(workflow): polish the core workflows index and its command menu ([#27066](https://github.com/twentyhq/twenty/pull/27066)) by @thomtrp - Deprecate `authContext` in favor of `RawAuthContext` ( currently type proxy ) ([#27067](https://github.com/twentyhq/twenty/pull/27067)) by @BOHEUS - Record-level sharing 5: one row access policy for queries, events and writes ([#27068](https://github.com/twentyhq/twenty/pull/27068)) by @FelixMalfait - Keep email and calendar steps out of application workflows ([#27072](https://github.com/twentyhq/twenty/pull/27072)) by @thomtrp - Make app scaffolding reusable and fix template typechecking ([#27073](https://github.com/twentyhq/twenty/pull/27073)) by @Weiko - Systemic application registration ownership guard ([#27074](https://github.com/twentyhq/twenty/pull/27074)) by @prastoin - chore(security): bump axios to 1.20.0 everywhere for the September advisory batch ([#27077](https://github.com/twentyhq/twenty/pull/27077)) by @mabdullahabaid - feat(logic-function): identify the function in live logic function logs ([#27079](https://github.com/twentyhq/twenty/pull/27079)) by @Weiko - chore(security): bump brace-expansion to fixed versions everywhere ([#27086](https://github.com/twentyhq/twenty/pull/27086)) by @mabdullahabaid - Validation rule form (1/5): render field chips with the shared Chip ([#27090](https://github.com/twentyhq/twenty/pull/27090)) by @thomtrp - Validation rule form (2/5): MenuItem suggestion rows ([#27091](https://github.com/twentyhq/twenty/pull/27091)) by @thomtrp - Validation rule form (3/5): suggestion details like the design ([#27092](https://github.com/twentyhq/twenty/pull/27092)) by @thomtrp - Validation rule form (4/5): condition in one preview card ([#27093](https://github.com/twentyhq/twenty/pull/27093)) by @thomtrp - chore(security): bump ip-address to 10.7.2 everywhere ([#27095](https://github.com/twentyhq/twenty/pull/27095)) by @mabdullahabaid - chore(security): bump piscina to 4.9.4 ([#27098](https://github.com/twentyhq/twenty/pull/27098)) by @mabdullahabaid - chore: sync AI model catalog ([#27099](https://github.com/twentyhq/twenty/pull/27099)) by @github-actions - chore(security): bump @xhmikosr/decompress to 11.1.4 ([#27100](https://github.com/twentyhq/twenty/pull/27100)) by @mabdullahabaid - fix(ai-chat): strip NUL bytes from message parts before persisting ([#27101](https://github.com/twentyhq/twenty/pull/27101)) by @etiennejouan - fix(settings): role save onSuccess, saving state and permissions fallback ([#27103](https://github.com/twentyhq/twenty/pull/27103)) by @FelixMalfait - fix(permissions): keep row access conditions outside user WHERE expressions ([#27105](https://github.com/twentyhq/twenty/pull/27105)) by @FelixMalfait - chore(permissions): remove dead and duplicated server permission code ([#27106](https://github.com/twentyhq/twenty/pull/27106)) by @FelixMalfait </details> **Full Changelog**: https://github.com/twentyhq/twenty/compare/twenty/v2.44.0...twenty/v2.45.0
Related Repositories
openclaw/openclaw★ 392,706
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
nilbuild/developer-roadmap★ 370,075
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
morluto/rea★ 358,379
Reverse engineer anything with agents, from app behavior down to native binaries.
anomalyco/opencode★ 219,726
The open source coding agent.
n8n-io/n8n★ 208,261
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.