sdk/v2.41.0

twentyhq/twentysdk/v2.41.0Sep 23, 2026by twenty-pr[bot]

Upgrading?

AI Summary

This release introduces significant messaging capabilities allowing applications to own channels and ingest messages. It also features major updates to the Twenty UI library, agent skills, and exposes usage limits via the metadata API.

Key Highlights

  • Applications can now own message channels and ingest messages directly.
  • Usage limits are now exposed via the metadata API.
  • Agent-only skills have been separated from user skills.
  • Twenty UI components have been migrated and documented.

Breaking Changes

  • Let every application admin manage a workspace-shared connection

New Features

  • Seed a user-owned initial view per object alongside the INDEX view
  • Expose usage limits over the metadata API
  • Point core workflows and command menu items at core version ids
  • Split agent-only skills from user skills, rewrite the catalog
  • Let apps own message channels
  • Let apps ingest messages into their channels
  • Resolve identity for non-email participants

Full Release Notes

<!-- generated-release-notes v1 -->

## ⚠️ Breaking changes

- Let every application admin manage a workspace-shared connection ([#25773](https://github.com/twentyhq/twenty/pull/25773)) by @abdulrahmancodes

## ✨ New features

- feat(view): seed a user-owned initial view per object alongside the INDEX view ([#25416](https://github.com/twentyhq/twenty/pull/25416)) by @thomtrp
- feat(usage-limit): expose usage limits over the metadata API ([#25740](https://github.com/twentyhq/twenty/pull/25740)) by @etiennejouan
- feat(workflow): point core workflows and command menu items at core version ids ([#25757](https://github.com/twentyhq/twenty/pull/25757)) by @thomtrp
- feat(skills): split agent-only skills from user skills, rewrite the catalog ([#25798](https://github.com/twentyhq/twenty/pull/25798)) by @FelixMalfait
- feat(messaging): let apps own message channels ([#25903](https://github.com/twentyhq/twenty/pull/25903)) by @FelixMalfait
- feat(messaging): let apps ingest messages into their channels ([#25905](https://github.com/twentyhq/twenty/pull/25905)) by @FelixMalfait
- feat(messaging): resolve identity for non-email participants ([#25906](https://github.com/twentyhq/twenty/pull/25906)) by @FelixMalfait

## 💅 Improvements & UX

- Record sharing: inherited objects follow their parent ([#25439](https://github.com/twentyhq/twenty/pull/25439)) by @martmull
- Support explicit widget height behavior ([#25512](https://github.com/twentyhq/twenty/pull/25512)) by @Bonapara
- Simplify page layout manifest authoring ([#25513](https://github.com/twentyhq/twenty/pull/25513)) by @Bonapara
- [1/4] Desktop Recorder: support existing UI controls ([#25632](https://github.com/twentyhq/twenty/pull/25632)) by @Bonapara
- Replace frontend snackbars with twenty-ui toasts ([#25664](https://github.com/twentyhq/twenty/pull/25664)) by @bosiraphael
- Stop pull overwriting a source file that defines no entity ([#25739](https://github.com/twentyhq/twenty/pull/25739)) by @Weiko
- Write pulled standalone page layout widgets as define files ([#25743](https://github.com/twentyhq/twenty/pull/25743)) by @Weiko
- Stop calling a local file unknown to the workspace when the export reported it ([#25746](https://github.com/twentyhq/twenty/pull/25746)) by @Weiko
- Tell pull users their project cannot build what pull just wrote ([#25747](https://github.com/twentyhq/twenty/pull/25747)) by @Weiko
- Refuse to pull an application into a project that already defines another ([#25750](https://github.com/twentyhq/twenty/pull/25750)) by @Weiko
- Restrict AI and Settings access during layout editing ([#25760](https://github.com/twentyhq/twenty/pull/25760)) by @Bonapara
- Validate select option colors ([#25805](https://github.com/twentyhq/twenty/pull/25805)) by @bosiraphael
- Point pull users at the apply flag that protects what it could not write ([#25808](https://github.com/twentyhq/twenty/pull/25808)) by @Weiko
- Polish AI model settings ([#25810](https://github.com/twentyhq/twenty/pull/25810)) by @Bonapara
- Let runAgent messages carry file attachments ([#25835](https://github.com/twentyhq/twenty/pull/25835)) by @abdulrahmancodes
- Lay the app out right to left for Arabic and Hebrew ([#25854](https://github.com/twentyhq/twenty/pull/25854)) by @FelixMalfait
- Migrate buttons to Base UI ([#25888](https://github.com/twentyhq/twenty/pull/25888)) by @bosiraphael
- Add live previews to Twenty UI documentation ([#25889](https://github.com/twentyhq/twenty/pull/25889)) by @bosiraphael
- Remove the email group flag and gate campaigns behind their own flag ([#25916](https://github.com/twentyhq/twenty/pull/25916)) by @neo773
- Show AI chat context and credit usage ([#25923](https://github.com/twentyhq/twenty/pull/25923)) by @Bonapara
- Organize Twenty UI into primitive families ([#25948](https://github.com/twentyhq/twenty/pull/25948)) by @bosiraphael
- Split the admin application registration update input ([#25963](https://github.com/twentyhq/twenty/pull/25963)) by @prastoin
- Derive permission universal identifiers from their role and target ([#25966](https://github.com/twentyhq/twenty/pull/25966)) by @Weiko
- Redesign the marketplace app detail page ([#25969](https://github.com/twentyhq/twenty/pull/25969)) by @martmull
- [1/2 Sidebar] New layout ([#25974](https://github.com/twentyhq/twenty/pull/25974)) by @Bonapara
- Use Twenty UI components in presentation stories ([#25976](https://github.com/twentyhq/twenty/pull/25976)) by @bosiraphael
- Desktop Recorder: align merged integration and UI naming conventions ([#25977](https://github.com/twentyhq/twenty/pull/25977)) by @Bonapara
- Document data display primitives ([#25980](https://github.com/twentyhq/twenty/pull/25980)) by @bosiraphael
- Write roles and permission flags on pull ([#25994](https://github.com/twentyhq/twenty/pull/25994)) by @Weiko
- Use Twenty UI buttons in Menu and Popover stories ([#26001](https://github.com/twentyhq/twenty/pull/26001)) by @bosiraphael
- Clip the toast progress overlay to the toast corners ([#26012](https://github.com/twentyhq/twenty/pull/26012)) by @neo773
- Clarify twenty-ui setup in the README ([#26044](https://github.com/twentyhq/twenty/pull/26044)) by @bosiraphael
- Document controlled and uncontrolled UI state ([#26062](https://github.com/twentyhq/twenty/pull/26062)) by @bosiraphael
- Document Twenty UI anatomy and composition ([#26066](https://github.com/twentyhq/twenty/pull/26066)) by @bosiraphael
- Disable play functions in UI documentation examples ([#26069](https://github.com/twentyhq/twenty/pull/26069)) by @bosiraphael
- Make record sharing an enterprise feature ([#26070](https://github.com/twentyhq/twenty/pull/26070)) by @martmull
- Cache billing entitlements in the workspace cache ([#26078](https://github.com/twentyhq/twenty/pull/26078)) by @Weiko

## 🐛 Bug fixes

- fix(storybook): prevent oversized Argos screenshots ([#25779](https://github.com/twentyhq/twenty/pull/25779)) by @bosiraphael
- fix(create-twenty-app): ship a lockfile so generated apps install under an age gate ([#25879](https://github.com/twentyhq/twenty/pull/25879)) by @FelixMalfait

## 🔧 Developer & API

- Align twenty-ui with SDK package versions ([#25758](https://github.com/twentyhq/twenty/pull/25758)) by @bosiraphael
- Migrate Status to the new twenty-ui API ([#25785](https://github.com/twentyhq/twenty/pull/25785)) by @bosiraphael
- Migrate Tag to the new twenty-ui API ([#25786](https://github.com/twentyhq/twenty/pull/25786)) by @bosiraphael
- Migrate Avatar to the new twenty-ui API ([#25787](https://github.com/twentyhq/twenty/pull/25787)) by @bosiraphael
- Migrate Chip to the new twenty-ui API ([#25788](https://github.com/twentyhq/twenty/pull/25788)) by @bosiraphael
- Add Twenty UI documentation and generated API references ([#25791](https://github.com/twentyhq/twenty/pull/25791)) by @bosiraphael

<details>
<summary>🏗️ Internal changes (1)</summary>

- refactor(server): bind resolved application packages to their registration ([#26077](https://github.com/twentyhq/twenty/pull/26077)) by @prastoin

</details>

## 🎉 New contributors

- @mydd7 made their first contribution in https://github.com/twentyhq/twenty/pull/25674
- @mcr-ksh made their first contribution in https://github.com/twentyhq/twenty/pull/25782
- @amannn made their first contribution in https://github.com/twentyhq/twenty/pull/25754
- @tomjtobinn made their first contribution in https://github.com/twentyhq/twenty/pull/25822
- @yosh1 made their first contribution in https://github.com/twentyhq/twenty/pull/25868
- @Dewin made their first contribution in https://github.com/twentyhq/twenty/pull/26017

<details>
<summary>Full changelog (55 PRs)</summary>

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

</details>

**Full Changelog**: https://github.com/twentyhq/twenty/compare/sdk/v2.40.0...sdk/v2.41.0

Related Repositories