⚠️ Breaking changes
- Let every application admin manage a workspace-shared connection (#25773) by @abdulrahmancodes
✨ New features
- feat(view): seed a user-owned initial view per object alongside the INDEX view (#25416) by @thomtrp
- feat(usage-limit): expose usage limits over the metadata API (#25740) by @etiennejouan
- feat(workflow): point core workflows and command menu items at core version ids (#25757) by @thomtrp
- feat(skills): split agent-only skills from user skills, rewrite the catalog (#25798) by @FelixMalfait
- feat(messaging): let apps own message channels (#25903) by @FelixMalfait
- feat(messaging): let apps ingest messages into their channels (#25905) by @FelixMalfait
- feat(messaging): resolve identity for non-email participants (#25906) by @FelixMalfait
💅 Improvements & UX
- Record sharing: inherited objects follow their parent (#25439) by @martmull
- Support explicit widget height behavior (#25512) by @Bonapara
- Simplify page layout manifest authoring (#25513) by @Bonapara
- [1/4] Desktop Recorder: support existing UI controls (#25632) by @Bonapara
- Replace frontend snackbars with twenty-ui toasts (#25664) by @bosiraphael
- Stop pull overwriting a source file that defines no entity (#25739) by @Weiko
- Write pulled standalone page layout widgets as define files (#25743) by @Weiko
- Stop calling a local file unknown to the workspace when the export reported it (#25746) by @Weiko
- Tell pull users their project cannot build what pull just wrote (#25747) by @Weiko
- Refuse to pull an application into a project that already defines another (#25750) by @Weiko
- Restrict AI and Settings access during layout editing (#25760) by @Bonapara
- Validate select option colors (#25805) by @bosiraphael
- Point pull users at the apply flag that protects what it could not write (#25808) by @Weiko
- Polish AI model settings (#25810) by @Bonapara
- Let runAgent messages carry file attachments (#25835) by @abdulrahmancodes
- Lay the app out right to left for Arabic and Hebrew (#25854) by @FelixMalfait
- Migrate buttons to Base UI (#25888) by @bosiraphael
- Add live previews to Twenty UI documentation (#25889) by @bosiraphael
- Remove the email group flag and gate campaigns behind their own flag (#25916) by @neo773
- Show AI chat context and credit usage (#25923) by @Bonapara
- Organize Twenty UI into primitive families (#25948) by @bosiraphael
- Split the admin application registration update input (#25963) by @prastoin
- Derive permission universal identifiers from their role and target (#25966) by @Weiko
- Redesign the marketplace app detail page (#25969) by @martmull
- [1/2 Sidebar] New layout (#25974) by @Bonapara
- Use Twenty UI components in presentation stories (#25976) by @bosiraphael
- Desktop Recorder: align merged integration and UI naming conventions (#25977) by @Bonapara
- Document data display primitives (#25980) by @bosiraphael
- Write roles and permission flags on pull (#25994) by @Weiko
- Use Twenty UI buttons in Menu and Popover stories (#26001) by @bosiraphael
- Clip the toast progress overlay to the toast corners (#26012) by @neo773
- Clarify twenty-ui setup in the README (#26044) by @bosiraphael
- Document controlled and uncontrolled UI state (#26062) by @bosiraphael
- Document Twenty UI anatomy and composition (#26066) by @bosiraphael
- Disable play functions in UI documentation examples (#26069) by @bosiraphael
- Make record sharing an enterprise feature (#26070) by @martmull
- Cache billing entitlements in the workspace cache (#26078) by @Weiko
🐛 Bug fixes
- fix(storybook): prevent oversized Argos screenshots (#25779) by @bosiraphael
- fix(create-twenty-app): ship a lockfile so generated apps install under an age gate (#25879) by @FelixMalfait
🔧 Developer & API
- Align twenty-ui with SDK package versions (#25758) by @bosiraphael
- Migrate Status to the new twenty-ui API (#25785) by @bosiraphael
- Migrate Tag to the new twenty-ui API (#25786) by @bosiraphael
- Migrate Avatar to the new twenty-ui API (#25787) by @bosiraphael
- Migrate Chip to the new twenty-ui API (#25788) by @bosiraphael
- Add Twenty UI documentation and generated API references (#25791) by @bosiraphael
🏗️ Internal changes (1)
🎉 New contributors
- @mydd7 made their first contribution in #25674
- @mcr-ksh made their first contribution in #25782
- @amannn made their first contribution in #25754
- @tomjtobinn made their first contribution in #25822
- @yosh1 made their first contribution in #25868
- @Dewin made their first contribution in #26017
Full changelog (55 PRs)
- feat(view): seed a user-owned initial view per object alongside the INDEX view (#25416) by @thomtrp
- Record sharing: inherited objects follow their parent (#25439) by @martmull
- Support explicit widget height behavior (#25512) by @Bonapara
- Simplify page layout manifest authoring (#25513) by @Bonapara
- [1/4] Desktop Recorder: support existing UI controls (#25632) by @Bonapara
- Replace frontend snackbars with twenty-ui toasts (#25664) by @bosiraphael
- Stop pull overwriting a source file that defines no entity (#25739) by @Weiko
- feat(usage-limit): expose usage limits over the metadata API (#25740) by @etiennejouan
- Write pulled standalone page layout widgets as define files (#25743) by @Weiko
- Stop calling a local file unknown to the workspace when the export reported it (#25746) by @Weiko
- Tell pull users their project cannot build what pull just wrote (#25747) by @Weiko
- Refuse to pull an application into a project that already defines another (#25750) by @Weiko
- feat(workflow): point core workflows and command menu items at core version ids (#25757) by @thomtrp
- Align twenty-ui with SDK package versions (#25758) by @bosiraphael
- Restrict AI and Settings access during layout editing (#25760) by @Bonapara
- Let every application admin manage a workspace-shared connection (#25773) by @abdulrahmancodes
- fix(storybook): prevent oversized Argos screenshots (#25779) by @bosiraphael
- Migrate Status to the new twenty-ui API (#25785) by @bosiraphael
- Migrate Tag to the new twenty-ui API (#25786) by @bosiraphael
- Migrate Avatar to the new twenty-ui API (#25787) by @bosiraphael
- Migrate Chip to the new twenty-ui API (#25788) by @bosiraphael
- Add Twenty UI documentation and generated API references (#25791) by @bosiraphael
- feat(skills): split agent-only skills from user skills, rewrite the catalog (#25798) by @FelixMalfait
- Validate select option colors (#25805) by @bosiraphael
- Point pull users at the apply flag that protects what it could not write (#25808) by @Weiko
- Polish AI model settings (#25810) by @Bonapara
- chore: bump version to 2.41.0 (#25813) by @twenty-pr
- Let runAgent messages carry file attachments (#25835) by @abdulrahmancodes
- Lay the app out right to left for Arabic and Hebrew (#25854) by @FelixMalfait
- fix(create-twenty-app): ship a lockfile so generated apps install under an age gate (#25879) by @FelixMalfait
- Migrate buttons to Base UI (#25888) by @bosiraphael
- Add live previews to Twenty UI documentation (#25889) by @bosiraphael
- feat(messaging): let apps own message channels (#25903) by @FelixMalfait
- feat(messaging): let apps ingest messages into their channels (#25905) by @FelixMalfait
- feat(messaging): resolve identity for non-email participants (#25906) by @FelixMalfait
- Remove the email group flag and gate campaigns behind their own flag (#25916) by @neo773
- Show AI chat context and credit usage (#25923) by @Bonapara
- Organize Twenty UI into primitive families (#25948) by @bosiraphael
- Split the admin application registration update input (#25963) by @prastoin
- Derive permission universal identifiers from their role and target (#25966) by @Weiko
- Redesign the marketplace app detail page (#25969) by @martmull
- [1/2 Sidebar] New layout (#25974) by @Bonapara
- Use Twenty UI components in presentation stories (#25976) by @bosiraphael
- Desktop Recorder: align merged integration and UI naming conventions (#25977) by @Bonapara
- Document data display primitives (#25980) by @bosiraphael
- Write roles and permission flags on pull (#25994) by @Weiko
- Use Twenty UI buttons in Menu and Popover stories (#26001) by @bosiraphael
- Clip the toast progress overlay to the toast corners (#26012) by @neo773
- Clarify twenty-ui setup in the README (#26044) by @bosiraphael
- Document controlled and uncontrolled UI state (#26062) by @bosiraphael
- Document Twenty UI anatomy and composition (#26066) by @bosiraphael
- Disable play functions in UI documentation examples (#26069) by @bosiraphael
- Make record sharing an enterprise feature (#26070) by @martmull
- refactor(server): bind resolved application packages to their registration (#26077) by @prastoin
- Cache billing entitlements in the workspace cache (#26078) by @Weiko
Full Changelog: sdk/v2.40.0...sdk/v2.41.0