⚠️ Breaking changes
- fix: lift nest and verdaccio parents, drop four obsoleted resolutions (#24675) by @mabdullahabaid
- Model the object navigation command menu item target as a foreign key (#24690) by @prastoin
✨ New features
- feat(front): show loading and error states for video attachment previews (#24454) by @emmanuelhb56
- feat(docs): gate MDX docs on Crowdin-safe placeholders (#24540) by @FelixMalfait
- feat(workflow): enable core read and dispatch flags on new workspaces (#24680) by @thomtrp
- feat(server): add a gauge tracking feature flag rollout across workspaces (#24685) by @charlesBochet
- feat(ai-chat): address field references by name (#24701) by @etiennejouan
💅 Improvements & UX
- Add workflow node actions and side panel controls (#24411) by @Bonapara
- Simplify widget rendering surfaces (#24444) by @Bonapara
- Unify vertical list widget layout (#24445) by @Bonapara
- Add widget layout settings flow (#24446) by @Bonapara
- Support HTTP range requests for streamed files (#24517) by @ehconitin
- Add a native video player to call recording transcripts (#24518) by @ehconitin
- Synchronize call recording transcripts with video playback (#24519) by @ehconitin
- messaging: Allow sending outbound mail from a verified account alias (#24560) by @neo773
- Cover timeline activity routing branches (#24655) by @FelixMalfait
- Share timeline activity routing plans (#24656) by @FelixMalfait
- Emit both sides of junction repoints (#24657) by @FelixMalfait
- Serialize timeline activity coalescing (#24659) by @FelixMalfait
- Remove timeline metadata diagnostics (#24660) by @FelixMalfait
- Validate timeline activity manifest references locally (#24661) by @FelixMalfait
- Manage timeline activity types in application settings (#24662) by @FelixMalfait
- Show timeline filters in solo widget tabs (#24664) by @FelixMalfait
- Add calendar event composer to record timeline (#24667) by @FelixMalfait
- Add Timeline related-record action launcher (#24677) by @FelixMalfait
- Fix custom-only attachment timeline upgrades in v2.35 (#24679) by @FelixMalfait
- Enable ORM v2 read path by default on new workspaces (#24682) by @charlesBochet
- Add place autocomplete to calendar event locations (#24686) by @FelixMalfait
- Allow custom widgets to declare header command items (#24688) by @FelixMalfait
- Deprecate enqueueJob in favor of enqueueJobs batch mutation (#24691) by @martmull
- Remove IS_ORM_V2_READ_PATH_ENABLED and collapse to the ORM v2 path (#24692) by @charlesBochet
- Declare the objectMetadata - pageLayout one-to-many so page layouts resolve through an aggregator (#24694) by @prastoin
- Fix website marketplace queries after logo - logoUrl schema rename (#24695) by @martmull
- Add stories for side panel composers (#24700) by @FelixMalfait
- Turn /partners into the partner lead page (#24702) by @rashad
- Remove the v1 TypeORM workspace ORM (#24718) by @charlesBochet
- Repair stale timeline activity target metadata (#24726) by @FelixMalfait
- Swap timeline widget header actions (#24732) by @FelixMalfait
- Fix record page widget presentation (#24734) by @Bonapara
- Remove dead code left behind by the v1 workspace ORM (#24737) by @charlesBochet
- Backfill timeline activity metadata and drop legacy fields (#24738) by @FelixMalfait
- Collapse the ORM v1/v2 seams left after the v2 cutover (#24747) by @charlesBochet
- Drop the ignored workspaceId argument from getRepository (#24752) by @charlesBochet
- Retry event-log inserts on transient ClickHouse network errors without Sentry noise (#24760) by @charlesBochet
- Rename the legacy schema service and fold the v2 ORM module (#24761) by @charlesBochet
- Add Exa to marketplace vetted applications (#24763) by @martmull
- Remove unused Twenty Partner Ops role from twenty-partners app (1.6.5) (#24764) by @rashad
- Remove IS_NATIVE_CALL_RECORDING_TABS_ENABLED feature flag (#24765) by @ehconitin
- Move twenty-orm-v2 into twenty-orm, paths only (#24768) by @charlesBochet
- Bump npm packages to 2.35.1 (#24771) by @prastoin
- Drop the V2 suffix from the core workspace ORM classes (#24774) by @charlesBochet
🐛 Bug fixes
- fix(server): restore standard default-relation fields wiped by pre-2.20 application syncs (#24001) by @thomtrp
- fix(workflow): read a filter variable that resolved to null as an emptiness check (#24501) by @thomtrp
- fix(mcp): echo the client's progressToken instead of fabricating one (#24582) by @ebrahim2355
- fix(client-sdk): accept generated client options in the CoreApiClient stub (#24671) by @abdulrahmancodes
- fix: re-land brace-expansion 5.0.9 in app lockfiles (Dependabot) (#24672) by @mabdullahabaid
- fix: drop obsolete resolutions whose blockers shipped (#24673) by @mabdullahabaid
- fix(i18n): repair backslash-escaped tags in Crowdin inline code (#24674) by @abdulrahmancodes
- fix(call-recorder): require Twenty 2.32 (#24714) by @ehconitin
- fix: drop eight mintlify resolutions obsoleted by the mintlify lift (#24715) by @mabdullahabaid
- fix(docker): patch prod image OS CVEs (postgresql18-client, python3, sqlite) (#24722) by @charlesBochet
- fix(server): make workflow-core + person-avatar upgrade commands v2-safe (#24724) by @charlesBochet
- fix: bump react-router-dom to 6.30.6 in call-recorder and fireflies (Dependabot) (#24727) by @mabdullahabaid
- fix: lift @argos-ci/storybook to ~6.0.18, drop the sharp resolution, bump tiptap to 3.30.2 (#24728) by @mabdullahabaid
- fix(workflow): exclude soft-deleted workspaces from the core-consistency cron (#24740) by @charlesBochet
- fix(server): reject empty filter on bulk mutations to prevent unbounded delete/update (#24746) by @charlesBochet
- fix(server): attach service and pod identity to exported metrics (#24756) by @charlesBochet
- fix(server): don't delete the invitation before resend passes its gates (#24758) by @charlesBochet
🔧 Developer & API
- Always regenerate SDK client on application install and upgrade (#24696) by @martmull
- Share client-sdk runAs/options type and guard stub drift (#24716) by @abdulrahmancodes
🏗️ Internal changes (2)
- chore(security): bump vulnerable deps to clear Dependabot alerts (#24698) by @charlesBochet
- chore(security): bump sharp to 0.35.3 in twenty-apps example lockfiles (#24717) by @charlesBochet
🎉 New contributors
- @ebrahim2355 made their first contribution in #24582
Full changelog (107 PRs)
- fix(server): restore standard default-relation fields wiped by pre-2.20 application syncs (#24001) by @thomtrp
- Add workflow node actions and side panel controls (#24411) by @Bonapara
- Simplify widget rendering surfaces (#24444) by @Bonapara
- Unify vertical list widget layout (#24445) by @Bonapara
- Add widget layout settings flow (#24446) by @Bonapara
- feat(front): show loading and error states for video attachment previews (#24454) by @emmanuelhb56
- fix(workflow): read a filter variable that resolved to null as an emptiness check (#24501) by @thomtrp
- Support HTTP range requests for streamed files (#24517) by @ehconitin
- Add a native video player to call recording transcripts (#24518) by @ehconitin
- Synchronize call recording transcripts with video playback (#24519) by @ehconitin
- feat(docs): gate MDX docs on Crowdin-safe placeholders (#24540) by @FelixMalfait
- messaging: Allow sending outbound mail from a verified account alias (#24560) by @neo773
- fix(mcp): echo the client's progressToken instead of fabricating one (#24582) by @ebrahim2355
- i18n - translations (#24639) by @github-actions
- chore: bump version to 2.35.0 (#24651) by @twenty-pr
- i18n - translations (#24653) by @github-actions
- Cover timeline activity routing branches (#24655) by @FelixMalfait
- Share timeline activity routing plans (#24656) by @FelixMalfait
- Emit both sides of junction repoints (#24657) by @FelixMalfait
- Serialize timeline activity coalescing (#24659) by @FelixMalfait
- Remove timeline metadata diagnostics (#24660) by @FelixMalfait
- Validate timeline activity manifest references locally (#24661) by @FelixMalfait
- Manage timeline activity types in application settings (#24662) by @FelixMalfait
- Show timeline filters in solo widget tabs (#24664) by @FelixMalfait
- Add calendar event composer to record timeline (#24667) by @FelixMalfait
- fix(client-sdk): accept generated client options in the CoreApiClient stub (#24671) by @abdulrahmancodes
- fix: re-land brace-expansion 5.0.9 in app lockfiles (Dependabot) (#24672) by @mabdullahabaid
- fix: drop obsolete resolutions whose blockers shipped (#24673) by @mabdullahabaid
- fix(i18n): repair backslash-escaped tags in Crowdin inline code (#24674) by @abdulrahmancodes
- fix: lift nest and verdaccio parents, drop four obsoleted resolutions (#24675) by @mabdullahabaid
- Add Timeline related-record action launcher (#24677) by @FelixMalfait
- i18n - docs translations (#24678) by @github-actions
- Fix custom-only attachment timeline upgrades in v2.35 (#24679) by @FelixMalfait
- feat(workflow): enable core read and dispatch flags on new workspaces (#24680) by @thomtrp
- Enable ORM v2 read path by default on new workspaces (#24682) by @charlesBochet
- i18n - translations (#24683) by @github-actions
- feat(server): add a gauge tracking feature flag rollout across workspaces (#24685) by @charlesBochet
- Add place autocomplete to calendar event locations (#24686) by @FelixMalfait
- Allow custom widgets to declare header command items (#24688) by @FelixMalfait
- i18n - translations (#24689) by @github-actions
- Model the object navigation command menu item target as a foreign key (#24690) by @prastoin
- Deprecate enqueueJob in favor of enqueueJobs batch mutation (#24691) by @martmull
- Remove IS_ORM_V2_READ_PATH_ENABLED and collapse to the ORM v2 path (#24692) by @charlesBochet
- i18n - translations (#24693) by @github-actions
- Declare the objectMetadata - pageLayout one-to-many so page layouts resolve through an aggregator (#24694) by @prastoin
- Fix website marketplace queries after logo - logoUrl schema rename (#24695) by @martmull
- Always regenerate SDK client on application install and upgrade (#24696) by @martmull
- i18n - translations (#24697) by @github-actions
- chore(security): bump vulnerable deps to clear Dependabot alerts (#24698) by @charlesBochet
- i18n - translations (#24699) by @github-actions
- Add stories for side panel composers (#24700) by @FelixMalfait
- feat(ai-chat): address field references by name (#24701) by @etiennejouan
- Turn /partners into the partner lead page (#24702) by @rashad
- i18n - translations (#24703) by @github-actions
- i18n - translations (#24704) by @github-actions
- i18n - translations (#24705) by @github-actions
- i18n - translations (#24706) by @github-actions
- i18n - translations (#24707) by @github-actions
- i18n - translations (#24710) by @github-actions
- i18n - docs translations (#24711) by @github-actions
- fix(call-recorder): require Twenty 2.32 (#24714) by @ehconitin
- fix: drop eight mintlify resolutions obsoleted by the mintlify lift (#24715) by @mabdullahabaid
- Share client-sdk runAs/options type and guard stub drift (#24716) by @abdulrahmancodes
- chore(security): bump sharp to 0.35.3 in twenty-apps example lockfiles (#24717) by @charlesBochet
- Remove the v1 TypeORM workspace ORM (#24718) by @charlesBochet
- i18n - translations (#24720) by @github-actions
- i18n - translations (#24721) by @github-actions
- fix(docker): patch prod image OS CVEs (postgresql18-client, python3, sqlite) (#24722) by @charlesBochet
- fix(server): make workflow-core + person-avatar upgrade commands v2-safe (#24724) by @charlesBochet
- Repair stale timeline activity target metadata (#24726) by @FelixMalfait
- fix: bump react-router-dom to 6.30.6 in call-recorder and fireflies (Dependabot) (#24727) by @mabdullahabaid
- fix: lift @argos-ci/storybook to ~6.0.18, drop the sharp resolution, bump tiptap to 3.30.2 (#24728) by @mabdullahabaid
- chore: sync AI model catalog from models.dev (#24729) by @github-actions
- i18n - translations (#24730) by @github-actions
- i18n - translations (#24731) by @github-actions
- Swap timeline widget header actions (#24732) by @FelixMalfait
- i18n - docs translations (#24733) by @github-actions
- Fix record page widget presentation (#24734) by @Bonapara
- i18n - translations (#24736) by @github-actions
- Remove dead code left behind by the v1 workspace ORM (#24737) by @charlesBochet
- Backfill timeline activity metadata and drop legacy fields (#24738) by @FelixMalfait
- fix(workflow): exclude soft-deleted workspaces from the core-consistency cron (#24740) by @charlesBochet
- i18n - translations (#24741) by @github-actions
- i18n - website translations (#24742) by @github-actions
- i18n - translations (#24743) by @github-actions
- i18n - website translations (#24744) by @github-actions
- fix(server): reject empty filter on bulk mutations to prevent unbounded delete/update (#24746) by @charlesBochet
- Collapse the ORM v1/v2 seams left after the v2 cutover (#24747) by @charlesBochet
- i18n - translations (#24749) by @github-actions
- Drop the ignored workspaceId argument from getRepository (#24752) by @charlesBochet
- i18n - translations (#24753) by @github-actions
- i18n - website translations (#24754) by @github-actions
- i18n - translations (#24755) by @github-actions
- fix(server): attach service and pod identity to exported metrics (#24756) by @charlesBochet
- fix(server): don't delete the invitation before resend passes its gates (#24758) by @charlesBochet
- Retry event-log inserts on transient ClickHouse network errors without Sentry noise (#24760) by @charlesBochet
- Rename the legacy schema service and fold the v2 ORM module (#24761) by @charlesBochet
- i18n - translations (#24762) by @github-actions
- Add Exa to marketplace vetted applications (#24763) by @martmull
- Remove unused Twenty Partner Ops role from twenty-partners app (1.6.5) (#24764) by @rashad
- Remove IS_NATIVE_CALL_RECORDING_TABS_ENABLED feature flag (#24765) by @ehconitin
- Move twenty-orm-v2 into twenty-orm, paths only (#24768) by @charlesBochet
- i18n - translations (#24769) by @github-actions
- Bump npm packages to 2.35.1 (#24771) by @prastoin
- i18n - translations (#24772) by @github-actions
- Drop the V2 suffix from the core workspace ORM classes (#24774) by @charlesBochet
- i18n - translations (#24775) by @github-actions
Full Changelog: twenty/v2.34.0...twenty/v2.35.0