sdk/v2.47.0

HumanAIGC/Cloth2Texsdk/v2.47.0Oct 15, 2026by twenty-pr[bot]

Upgrading?

AI Summary

Major SDK update focusing on reshaping sharing APIs, replacing usage meters, and enhancing AI agent capabilities with tool call approvals and thread-based conversation continuation.

Key Highlights

  • Reshape record sharing API and share panel
  • Replace limit meter with usage unit
  • AI agents propose tool calls for approval
  • Migrate Twenty UI components (pickers, menus)
  • Ship Conversations tab under inbox flag

Breaking Changes

  • Reshape record sharing API and share panel
  • Replace limit meter with usage unit
  • Drop unused agent history repository registrations
  • Remove install apps onboarding step
  • sendInboxMessage takes workspaceMemberIds
  • Ship the Conversations tab under the inbox flag
  • Unpin chat Share and drop AI chat sharing dropdown flag

New Features

  • Add selected people or a whole People view to a campaign list
  • Admin-issued two-factor authentication recovery codes
  • AI agent continues a conversation by thread key
  • Agents and workflows propose tool calls for approval
  • Add a workspace flag to turn off record share visibility gating
  • Unread badge on the inbox
  • Reference records with # and bring teammates into chat with @

Full Release Notes

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

## ⚠️ Breaking changes

- feat(sharing): reshape record sharing API and share panel ([#27121](https://github.com/twentyhq/twenty/pull/27121)) by @FelixMalfait
- feat(usage-limit): replace the limit meter with a usage unit ([#27124](https://github.com/twentyhq/twenty/pull/27124)) by @etiennejouan
- refactor(ai): drop unused agent history repository registrations and errorDetails field ([#27197](https://github.com/twentyhq/twenty/pull/27197)) by @FelixMalfait
- Remove the install apps onboarding step and rely on pre-installed apps ([#27374](https://github.com/twentyhq/twenty/pull/27374)) by @etiennejouan
- Track application upgrade as a queued job with progress ([#27526](https://github.com/twentyhq/twenty/pull/27526)) by @martmull
- sendInboxMessage takes workspaceMemberIds; one thread key is one conversation ([#27615](https://github.com/twentyhq/twenty/pull/27615)) by @FelixMalfait
- [BREAKING_CHANGE] Ship the Conversations tab and workflow inbox messages under the inbox flag ([#27830](https://github.com/twentyhq/twenty/pull/27830)) by @FelixMalfait
- [BREAKING_CHANGE] Unpin chat Share and drop the AI chat sharing dropdown flag ([#27832](https://github.com/twentyhq/twenty/pull/27832)) by @FelixMalfait
- Add widgetAvailability to front components ([#27841](https://github.com/twentyhq/twenty/pull/27841)) by @martmull

## ✨ New features

- feat(campaigns): add selected people or a whole People view to a campaign list ([#26823](https://github.com/twentyhq/twenty/pull/26823)) by @neo773
- feat: admin-issued two-factor authentication recovery codes ([#26933](https://github.com/twentyhq/twenty/pull/26933)) by @abdulrahmancodes
- feat(ai): let runAgent continue a conversation by thread key ([#27135](https://github.com/twentyhq/twenty/pull/27135)) by @FelixMalfait
- feat(ai): let agents and workflows propose tool calls for approval ([#27169](https://github.com/twentyhq/twenty/pull/27169)) by @FelixMalfait
- feat(permissions): add a workspace flag to turn off record share visibility gating ([#27177](https://github.com/twentyhq/twenty/pull/27177)) by @charlesBochet
- feat(ai): ask one question per call and step through every pending request ([#27206](https://github.com/twentyhq/twenty/pull/27206)) by @FelixMalfait
- feat(ai): unread badge on the inbox, with inbox state sent as record events ([#27221](https://github.com/twentyhq/twenty/pull/27221)) by @FelixMalfait
- feat(ai-chat): # to reference records, @ to bring teammates into a chat ([#27234](https://github.com/twentyhq/twenty/pull/27234)) by @FelixMalfait
- feat(applications): show install and uninstall progress in the action buttons ([#27357](https://github.com/twentyhq/twenty/pull/27357)) by @martmull

## 💅 Improvements & UX

- Forward typed events with React compatibility to front component workers ([#26356](https://github.com/twentyhq/twenty/pull/26356)) by @bosiraphael
- [1/3] Let apps declare user-scoped application variables ([#26868](https://github.com/twentyhq/twenty/pull/26868)) by @ehconitin
- [2/3] Let each member set their own value of a user application variable ([#26869](https://github.com/twentyhq/twenty/pull/26869)) by @ehconitin
- Track campaign opens ([#26938](https://github.com/twentyhq/twenty/pull/26938)) by @neo773
- Chat inbox: read cursor, unread line, done and snooze per member ([#27046](https://github.com/twentyhq/twenty/pull/27046)) by @FelixMalfait
- Migrate field input pickers and row menus ([#27061](https://github.com/twentyhq/twenty/pull/27061)) by @bosiraphael
- Migrate navigation menus and icon pickers ([#27064](https://github.com/twentyhq/twenty/pull/27064)) by @bosiraphael
- Migrate address and email autocompletes ([#27065](https://github.com/twentyhq/twenty/pull/27065)) by @bosiraphael
- Migrate record and tab dropdown menus ([#27070](https://github.com/twentyhq/twenty/pull/27070)) by @bosiraphael
- Unify resizing with ResizeHandle ([#27083](https://github.com/twentyhq/twenty/pull/27083)) by @bosiraphael
- Migrate phone country picker to Twenty UI ([#27125](https://github.com/twentyhq/twenty/pull/27125)) by @bosiraphael
- Migrate currency picker to Twenty UI ([#27127](https://github.com/twentyhq/twenty/pull/27127)) by @bosiraphael
- Migrate country selection in Twenty UI ([#27128](https://github.com/twentyhq/twenty/pull/27128)) by @bosiraphael
- Keep the first keystroke typed into a dropdown search ([#27148](https://github.com/twentyhq/twenty/pull/27148)) by @bosiraphael
- Replace hidden chat messages with system messages ([#27207](https://github.com/twentyhq/twenty/pull/27207)) by @FelixMalfait
- Load a member's chat inbox state with its threads ([#27219](https://github.com/twentyhq/twenty/pull/27219)) by @FelixMalfait
- Refuse administration operations to installed application tokens ([#27241](https://github.com/twentyhq/twenty/pull/27241)) by @prastoin
- Add isSystem to agents and workflows ([#27252](https://github.com/twentyhq/twenty/pull/27252)) by @FelixMalfait
- Upgrade Preact to 11 for React 19 refs ([#27271](https://github.com/twentyhq/twenty/pull/27271)) by @bosiraphael
- Add people to a campaign list with a background job ([#27276](https://github.com/twentyhq/twenty/pull/27276)) by @neo773
- Remove agent evaluations and the agent Logs tab ([#27320](https://github.com/twentyhq/twenty/pull/27320)) by @FelixMalfait
- Add triggers to agents (1/3) ([#27322](https://github.com/twentyhq/twenty/pull/27322)) by @FelixMalfait
- Record runAgent calls made without a thread ([#27337](https://github.com/twentyhq/twenty/pull/27337)) by @FelixMalfait
- Remove dead AI code and unused module imports ([#27339](https://github.com/twentyhq/twenty/pull/27339)) by @FelixMalfait
- Organize Twenty UI components by family ([#27354](https://github.com/twentyhq/twenty/pull/27354)) by @bosiraphael
- Keep JSX handlers when a clone replaces a remote element ref ([#27366](https://github.com/twentyhq/twenty/pull/27366)) by @bosiraphael
- Align settings switches and complete feature flag labels ([#27370](https://github.com/twentyhq/twenty/pull/27370)) by @Bonapara
- Ground the scaffolded AGENTS.md in what the build enforces and fix dev:add output ([#27371](https://github.com/twentyhq/twenty/pull/27371)) by @ijreilly
- Complete ColorSample and Loader APIs ([#27381](https://github.com/twentyhq/twenty/pull/27381)) by @bosiraphael
- Accept isActive when updating a page layout widget ([#27389](https://github.com/twentyhq/twenty/pull/27389)) by @thomtrp
- Use node slots for icon presentation ([#27393](https://github.com/twentyhq/twenty/pull/27393)) by @bosiraphael
- Align Banner and InlineBanner feedback APIs ([#27396](https://github.com/twentyhq/twenty/pull/27396)) by @bosiraphael
- Let agent triggers and runAgent calls wait on events and durations ([#27403](https://github.com/twentyhq/twenty/pull/27403)) by @FelixMalfait
- Expose the selected records filter to front components ([#27404](https://github.com/twentyhq/twenty/pull/27404)) by @charlesBochet
- Stop agent code from depending on workflow code ([#27407](https://github.com/twentyhq/twenty/pull/27407)) by @FelixMalfait
- Inbox: chat subscriptions and server-side mentions ([#27430](https://github.com/twentyhq/twenty/pull/27430)) by @FelixMalfait
- Remove unused NestJS module imports in twenty-server ([#27434](https://github.com/twentyhq/twenty/pull/27434)) by @FelixMalfait
- Inbox: assign chats to a member ([#27442](https://github.com/twentyhq/twenty/pull/27442)) by @FelixMalfait
- Move skeleton placeholders into twenty-ui ([#27481](https://github.com/twentyhq/twenty/pull/27481)) by @bosiraphael
- Make Callout dismissal caller-owned ([#27485](https://github.com/twentyhq/twenty/pull/27485)) by @bosiraphael
- Align Tooltip shorthand and parts ([#27488](https://github.com/twentyhq/twenty/pull/27488)) by @bosiraphael
- Add loading positions to Button ([#27496](https://github.com/twentyhq/twenty/pull/27496)) by @bosiraphael
- Write the front component JSX runtime in TypeScript ([#27497](https://github.com/twentyhq/twenty/pull/27497)) by @bosiraphael
- Make typography composition explicit ([#27504](https://github.com/twentyhq/twenty/pull/27504)) by @bosiraphael
- Expose Collapsible parts ([#27507](https://github.com/twentyhq/twenty/pull/27507)) by @bosiraphael
- Block uninstalling a server route app from its owner workspace while installed elsewhere ([#27510](https://github.com/twentyhq/twenty/pull/27510)) by @martmull
- Gate the AI chat inbox behind a feature flag ([#27552](https://github.com/twentyhq/twenty/pull/27552)) by @FelixMalfait
- Remove the unused addAgentChatThreadParticipants mutation ([#27557](https://github.com/twentyhq/twenty/pull/27557)) by @FelixMalfait
- Compute the inbox counts on the server over all of a member's chats ([#27570](https://github.com/twentyhq/twenty/pull/27570)) by @FelixMalfait
- Replace the seven AI chat inbox mutations with one batched mutation ([#27576](https://github.com/twentyhq/twenty/pull/27576)) by @FelixMalfait
- Represent a paused agent run as a pending wake-up ([#27579](https://github.com/twentyhq/twenty/pull/27579)) by @FelixMalfait
- Complete Field and Slider anatomy ([#27583](https://github.com/twentyhq/twenty/pull/27583)) by @bosiraphael
- Align Section and CommandBlock composition ([#27584](https://github.com/twentyhq/twenty/pull/27584)) by @bosiraphael
- Expose Checkbox and Switch parts ([#27587](https://github.com/twentyhq/twenty/pull/27587)) by @bosiraphael
- Align input and textarea integration ([#27589](https://github.com/twentyhq/twenty/pull/27589)) by @bosiraphael
- Expose complete Popover parts ([#27590](https://github.com/twentyhq/twenty/pull/27590)) by @bosiraphael
- Complete AlertDialog parts ([#27605](https://github.com/twentyhq/twenty/pull/27605)) by @bosiraphael
- Expose complete Dialog parts ([#27606](https://github.com/twentyhq/twenty/pull/27606)) by @bosiraphael
- Complete Button and IconButton contracts ([#27609](https://github.com/twentyhq/twenty/pull/27609)) by @bosiraphael
- Fix oversized icon in InlineBanner ([#27624](https://github.com/twentyhq/twenty/pull/27624)) by @FelixMalfait
- Lighter shortcut hint in buttons and new snooze/done icons in the AI inbox ([#27626](https://github.com/twentyhq/twenty/pull/27626)) by @FelixMalfait
- Complete Card composition ([#27632](https://github.com/twentyhq/twenty/pull/27632)) by @bosiraphael
- Preserve native Breadcrumb links ([#27636](https://github.com/twentyhq/twenty/pull/27636)) by @bosiraphael
- Expose Avatar parts and explicit interaction ([#27640](https://github.com/twentyhq/twenty/pull/27640)) by @bosiraphael
- Stabilize Dropdown trailing action story ([#27641](https://github.com/twentyhq/twenty/pull/27641)) by @bosiraphael
- Derive AvatarGroup overflow ([#27646](https://github.com/twentyhq/twenty/pull/27646)) by @bosiraphael
- Simplify Chip content and interaction ([#27648](https://github.com/twentyhq/twenty/pull/27648)) by @bosiraphael
- Simplify Tag and Status composition ([#27681](https://github.com/twentyhq/twenty/pull/27681)) by @bosiraphael
- Keep ListItem presentational ([#27683](https://github.com/twentyhq/twenty/pull/27683)) by @bosiraphael
- Clarify SettingsRow control integration ([#27686](https://github.com/twentyhq/twenty/pull/27686)) by @bosiraphael
- Replace Pill and NotificationCounter with Badge ([#27702](https://github.com/twentyhq/twenty/pull/27702)) by @bosiraphael
- Clarify ImageInput file selection ([#27706](https://github.com/twentyhq/twenty/pull/27706)) by @bosiraphael
- Complete radio and segmented selection ([#27707](https://github.com/twentyhq/twenty/pull/27707)) by @bosiraphael
- Replace Accounts with App preferences behind a feature flag ([#27708](https://github.com/twentyhq/twenty/pull/27708)) by @ehconitin
- Align Tabs with Base UI ([#27732](https://github.com/twentyhq/twenty/pull/27732)) by @bosiraphael
- Expose NumberField and retain NumberStepper ([#27734](https://github.com/twentyhq/twenty/pull/27734)) by @bosiraphael
- Complete Select public parts ([#27741](https://github.com/twentyhq/twenty/pull/27741)) by @bosiraphael
- Wait for popup visibility in disabled item stories ([#27766](https://github.com/twentyhq/twenty/pull/27766)) by @FelixMalfait
- Identify chat owners and senders by workspace member, and drop the legacy chat columns ([#27783](https://github.com/twentyhq/twenty/pull/27783)) by @FelixMalfait
- Complete Autocomplete parts ([#27806](https://github.com/twentyhq/twenty/pull/27806)) by @bosiraphael
- Gate validation rules behind the Organization plan ([#27818](https://github.com/twentyhq/twenty/pull/27818)) by @thomtrp
- Let invoice-paying customers end their trial without a card ([#27827](https://github.com/twentyhq/twenty/pull/27827)) by @ijreilly
- Unify Progress semantics and move onboarding motion ([#27831](https://github.com/twentyhq/twenty/pull/27831)) by @bosiraphael
- feat(billing) : store the ?partner= sign-up attribution on the Stripe customer ([#27836](https://github.com/twentyhq/twenty/pull/27836)) by @etiennejouan
- Order application workflow steps by application and label ([#27839](https://github.com/twentyhq/twenty/pull/27839)) by @martmull
- Ask consent to bill credits when installing an app ([#27844](https://github.com/twentyhq/twenty/pull/27844)) by @martmull
- Add Toast updates and status naming ([#27846](https://github.com/twentyhq/twenty/pull/27846)) by @bosiraphael
- Make workflow commands, navigation and pages core-only ([#27853](https://github.com/twentyhq/twenty/pull/27853)) by @thomtrp
- Show application logo on fields, views, widgets and created-by actor ([#27876](https://github.com/twentyhq/twenty/pull/27876)) by @martmull
- Put twenty-ui styles in a cascade layer ([#27899](https://github.com/twentyhq/twenty/pull/27899)) by @bosiraphael
- Only measure overflowing lists while their count can show ([#27923](https://github.com/twentyhq/twenty/pull/27923)) by @charlesBochet
- Make Toast timing deterministic ([#27930](https://github.com/twentyhq/twenty/pull/27930)) by @bosiraphael
- Make table cell and skeleton styles static and add a block Skeleton layout ([#27957](https://github.com/twentyhq/twenty/pull/27957)) by @charlesBochet

## 🐛 Bug fixes

- fix(front): preserve multi-record selection in side-panel components ([#27041](https://github.com/twentyhq/twenty/pull/27041)) by @waelantar
- fix(ui): truncate LTR values at their end in RTL layouts ([#27059](https://github.com/twentyhq/twenty/pull/27059)) by @almoghazaz-cell
- fix(cli): remove legacy CLI config migration ([#27085](https://github.com/twentyhq/twenty/pull/27085)) by @Sameer7-s
- fix(calendar): stop re-saving unchanged calendar events and participants on sync ([#27151](https://github.com/twentyhq/twenty/pull/27151)) by @charlesBochet
- fix(twenty-sdk): only remove dist/sdk before bundling declarations ([#27261](https://github.com/twentyhq/twenty/pull/27261)) by @PINYOPATTANAWASANPORN
- fix(usage-limit): keep the limits form off scopes only an operator can set ([#27373](https://github.com/twentyhq/twenty/pull/27373)) by @etiennejouan
- fix(auth): trust the identity provider's email for SSO sign-ups and show the real SAML/OIDC URLs ([#27486](https://github.com/twentyhq/twenty/pull/27486)) by @ijreilly

## ⚡ Performance

- perf(roles): batch role relation resolvers and add a getRole query ([#27118](https://github.com/twentyhq/twenty/pull/27118)) by @FelixMalfait

## 🔧 Developer & API

- Accept enum string values in twenty-sdk inputs ([#27193](https://github.com/twentyhq/twenty/pull/27193)) by @prastoin
- Clean up CodeEditorHeader API ([#27376](https://github.com/twentyhq/twenty/pull/27376)) by @bosiraphael
- Normalize Separator API ([#27383](https://github.com/twentyhq/twenty/pull/27383)) by @bosiraphael
- Run workflow, API and trigger agent turns through one engine runner ([#27385](https://github.com/twentyhq/twenty/pull/27385)) by @FelixMalfait
- Normalize DirectionProvider API ([#27387](https://github.com/twentyhq/twenty/pull/27387)) by @bosiraphael
- Normalize VisuallyHidden API ([#27388](https://github.com/twentyhq/twenty/pull/27388)) by @bosiraphael
- Regenerate the SDK metadata client ([#27544](https://github.com/twentyhq/twenty/pull/27544)) by @FelixMalfait
- Remove unused Menu API ([#27815](https://github.com/twentyhq/twenty/pull/27815)) by @bosiraphael
- Deprecate the SDK CLI and create-twenty-app ([#27862](https://github.com/twentyhq/twenty/pull/27862)) by @Weiko

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

- refactor(shared): expose universal identifier validation ([#27140](https://github.com/twentyhq/twenty/pull/27140)) by @Weiko
- refactor(ai): simplify and unify AI chat code on server and front ([#27192](https://github.com/twentyhq/twenty/pull/27192)) by @FelixMalfait
- chore(usage-limit): remove the webhook rate limit and execution quota feature flags ([#27278](https://github.com/twentyhq/twenty/pull/27278)) by @etiennejouan
- refactor(usage-limit): charge usage rows through one call that debits then records ([#27286](https://github.com/twentyhq/twenty/pull/27286)) by @etiennejouan
- chore(logic-function): remove the IS_LOGIC_FUNCTION_PREBUILT_MODE_ENABLED feature flag ([#27307](https://github.com/twentyhq/twenty/pull/27307)) by @martmull
- docs(sdk): point to the twenty CLI package from the SDK README ([#27512](https://github.com/twentyhq/twenty/pull/27512)) by @Weiko
- chore(twenty-ui): declare storybook as a devDependency ([#27697](https://github.com/twentyhq/twenty/pull/27697)) by @abdulrahmancodes
- chore(security): bump oxfmt to 0.72.0 and reformat ([#27772](https://github.com/twentyhq/twenty/pull/27772)) by @mabdullahabaid

</details>

## 🎉 New contributors

- @PINYOPATTANAWASANPORN made their first contribution in https://github.com/twentyhq/twenty/pull/26742
- @glitchedmob made their first contribution in https://github.com/twentyhq/twenty/pull/27226
- @okxint made their first contribution in https://github.com/twentyhq/twenty/pull/27232
- @YadurajManu made their first contribution in https://github.com/twentyhq/twenty/pull/27248
- @omlahore made their first contribution in https://github.com/twentyhq/twenty/pull/26759
- @sarmah-rup made their first contribution in https://github.com/twentyhq/twenty/pull/26880
- @pranav440 made their first contribution in https://github.com/twentyhq/twenty/pull/26929
- @evanliuuu made their first contribution in https://github.com/twentyhq/twenty/pull/27018
- @hussnainahmedd made their first contribution in https://github.com/twentyhq/twenty/pull/27112
- @Sameer7-s made their first contribution in https://github.com/twentyhq/twenty/pull/27085
- @slavarosin made their first contribution in https://github.com/twentyhq/twenty/pull/27245

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

- Forward typed events with React compatibility to front component workers ([#26356](https://github.com/twentyhq/twenty/pull/26356)) by @bosiraphael
- feat(campaigns): add selected people or a whole People view to a campaign list ([#26823](https://github.com/twentyhq/twenty/pull/26823)) by @neo773
- [1/3] Let apps declare user-scoped application variables ([#26868](https://github.com/twentyhq/twenty/pull/26868)) by @ehconitin
- [2/3] Let each member set their own value of a user application variable ([#26869](https://github.com/twentyhq/twenty/pull/26869)) by @ehconitin
- feat: admin-issued two-factor authentication recovery codes ([#26933](https://github.com/twentyhq/twenty/pull/26933)) by @abdulrahmancodes
- Track campaign opens ([#26938](https://github.com/twentyhq/twenty/pull/26938)) by @neo773
- fix(front): preserve multi-record selection in side-panel components ([#27041](https://github.com/twentyhq/twenty/pull/27041)) by @waelantar
- Chat inbox: read cursor, unread line, done and snooze per member ([#27046](https://github.com/twentyhq/twenty/pull/27046)) by @FelixMalfait
- fix(ui): truncate LTR values at their end in RTL layouts ([#27059](https://github.com/twentyhq/twenty/pull/27059)) by @almoghazaz-cell
- Migrate field input pickers and row menus ([#27061](https://github.com/twentyhq/twenty/pull/27061)) by @bosiraphael
- Migrate navigation menus and icon pickers ([#27064](https://github.com/twentyhq/twenty/pull/27064)) by @bosiraphael
- Migrate address and email autocompletes ([#27065](https://github.com/twentyhq/twenty/pull/27065)) by @bosiraphael
- Migrate record and tab dropdown menus ([#27070](https://github.com/twentyhq/twenty/pull/27070)) by @bosiraphael
- Unify resizing with ResizeHandle ([#27083](https://github.com/twentyhq/twenty/pull/27083)) by @bosiraphael
- fix(cli): remove legacy CLI config migration ([#27085](https://github.com/twentyhq/twenty/pull/27085)) by @Sameer7-s
- perf(roles): batch role relation resolvers and add a getRole query ([#27118](https://github.com/twentyhq/twenty/pull/27118)) by @FelixMalfait
- feat(sharing): reshape record sharing API and share panel ([#27121](https://github.com/twentyhq/twenty/pull/27121)) by @FelixMalfait
- feat(usage-limit): replace the limit meter with a usage unit ([#27124](https://github.com/twentyhq/twenty/pull/27124)) by @etiennejouan
- Migrate phone country picker to Twenty UI ([#27125](https://github.com/twentyhq/twenty/pull/27125)) by @bosiraphael
- chore: bump version to 2.46.0 ([#27126](https://github.com/twentyhq/twenty/pull/27126)) by @twenty-pr
- Migrate currency picker to Twenty UI ([#27127](https://github.com/twentyhq/twenty/pull/27127)) by @bosiraphael
- Migrate country selection in Twenty UI ([#27128](https://github.com/twentyhq/twenty/pull/27128)) by @bosiraphael
- feat(ai): let runAgent continue a conversation by thread key ([#27135](https://github.com/twentyhq/twenty/pull/27135)) by @FelixMalfait
- refactor(shared): expose universal identifier validation ([#27140](https://github.com/twentyhq/twenty/pull/27140)) by @Weiko
- Keep the first keystroke typed into a dropdown search ([#27148](https://github.com/twentyhq/twenty/pull/27148)) by @bosiraphael
- fix(calendar): stop re-saving unchanged calendar events and participants on sync ([#27151](https://github.com/twentyhq/twenty/pull/27151)) by @charlesBochet
- feat(ai): let agents and workflows propose tool calls for approval ([#27169](https://github.com/twentyhq/twenty/pull/27169)) by @FelixMalfait
- feat(permissions): add a workspace flag to turn off record share visibility gating ([#27177](https://github.com/twentyhq/twenty/pull/27177)) by @charlesBochet
- refactor(ai): simplify and unify AI chat code on server and front ([#27192](https://github.com/twentyhq/twenty/pull/27192)) by @FelixMalfait
- Accept enum string values in twenty-sdk inputs ([#27193](https://github.com/twentyhq/twenty/pull/27193)) by @prastoin
- refactor(ai): drop unused agent history repository registrations and errorDetails field ([#27197](https://github.com/twentyhq/twenty/pull/27197)) by @FelixMalfait
- feat(ai): ask one question per call and step through every pending request ([#27206](https://github.com/twentyhq/twenty/pull/27206)) by @FelixMalfait
- Replace hidden chat messages with system messages ([#27207](https://github.com/twentyhq/twenty/pull/27207)) by @FelixMalfait
- Load a member's chat inbox state with its threads ([#27219](https://github.com/twentyhq/twenty/pull/27219)) by @FelixMalfait
- feat(ai): unread badge on the inbox, with inbox state sent as record events ([#27221](https://github.com/twentyhq/twenty/pull/27221)) by @FelixMalfait
- feat(ai-chat): # to reference records, @ to bring teammates into a chat ([#27234](https://github.com/twentyhq/twenty/pull/27234)) by @FelixMalfait
- Refuse administration operations to installed application tokens ([#27241](https://github.com/twentyhq/twenty/pull/27241)) by @prastoin
- Add isSystem to agents and workflows ([#27252](https://github.com/twentyhq/twenty/pull/27252)) by @FelixMalfait
- fix(twenty-sdk): only remove dist/sdk before bundling declarations ([#27261](https://github.com/twentyhq/twenty/pull/27261)) by @PINYOPATTANAWASANPORN
- Upgrade Preact to 11 for React 19 refs ([#27271](https://github.com/twentyhq/twenty/pull/27271)) by @bosiraphael
- Add people to a campaign list with a background job ([#27276](https://github.com/twentyhq/twenty/pull/27276)) by @neo773
- chore(usage-limit): remove the webhook rate limit and execution quota feature flags ([#27278](https://github.com/twentyhq/twenty/pull/27278)) by @etiennejouan
- refactor(usage-limit): charge usage rows through one call that debits then records ([#27286](https://github.com/twentyhq/twenty/pull/27286)) by @etiennejouan
- chore(logic-function): remove the IS_LOGIC_FUNCTION_PREBUILT_MODE_ENABLED feature flag ([#27307](https://github.com/twentyhq/twenty/pull/27307)) by @martmull
- Remove agent evaluations and the agent Logs tab ([#27320](https://github.com/twentyhq/twenty/pull/27320)) by @FelixMalfait
- Add triggers to agents (1/3) ([#27322](https://github.com/twentyhq/twenty/pull/27322)) by @FelixMalfait
- Record runAgent calls made without a thread ([#27337](https://github.com/twentyhq/twenty/pull/27337)) by @FelixMalfait
- Remove dead AI code and unused module imports ([#27339](https://github.com/twentyhq/twenty/pull/27339)) by @FelixMalfait
- Organize Twenty UI components by family ([#27354](https://github.com/twentyhq/twenty/pull/27354)) by @bosiraphael
- feat(applications): show install and uninstall progress in the action buttons ([#27357](https://github.com/twentyhq/twenty/pull/27357)) by @martmull
- Keep JSX handlers when a clone replaces a remote element ref ([#27366](https://github.com/twentyhq/twenty/pull/27366)) by @bosiraphael
- Align settings switches and complete feature flag labels ([#27370](https://github.com/twentyhq/twenty/pull/27370)) by @Bonapara
- Ground the scaffolded AGENTS.md in what the build enforces and fix dev:add output ([#27371](https://github.com/twentyhq/twenty/pull/27371)) by @ijreilly
- fix(usage-limit): keep the limits form off scopes only an operator can set ([#27373](https://github.com/twentyhq/twenty/pull/27373)) by @etiennejouan
- Remove the install apps onboarding step and rely on pre-installed apps ([#27374](https://github.com/twentyhq/twenty/pull/27374)) by @etiennejouan
- Clean up CodeEditorHeader API ([#27376](https://github.com/twentyhq/twenty/pull/27376)) by @bosiraphael
- Complete ColorSample and Loader APIs ([#27381](https://github.com/twentyhq/twenty/pull/27381)) by @bosiraphael
- Normalize Separator API ([#27383](https://github.com/twentyhq/twenty/pull/27383)) by @bosiraphael
- Run workflow, API and trigger agent turns through one engine runner ([#27385](https://github.com/twentyhq/twenty/pull/27385)) by @FelixMalfait
- Normalize DirectionProvider API ([#27387](https://github.com/twentyhq/twenty/pull/27387)) by @bosiraphael
- Normalize VisuallyHidden API ([#27388](https://github.com/twentyhq/twenty/pull/27388)) by @bosiraphael
- Accept isActive when updating a page layout widget ([#27389](https://github.com/twentyhq/twenty/pull/27389)) by @thomtrp
- Use node slots for icon presentation ([#27393](https://github.com/twentyhq/twenty/pull/27393)) by @bosiraphael
- Align Banner and InlineBanner feedback APIs ([#27396](https://github.com/twentyhq/twenty/pull/27396)) by @bosiraphael
- Let agent triggers and runAgent calls wait on events and durations ([#27403](https://github.com/twentyhq/twenty/pull/27403)) by @FelixMalfait
- Expose the selected records filter to front components ([#27404](https://github.com/twentyhq/twenty/pull/27404)) by @charlesBochet
- Stop agent code from depending on workflow code ([#27407](https://github.com/twentyhq/twenty/pull/27407)) by @FelixMalfait
- Inbox: chat subscriptions and server-side mentions ([#27430](https://github.com/twentyhq/twenty/pull/27430)) by @FelixMalfait
- Remove unused NestJS module imports in twenty-server ([#27434](https://github.com/twentyhq/twenty/pull/27434)) by @FelixMalfait
- Inbox: assign chats to a member ([#27442](https://github.com/twentyhq/twenty/pull/27442)) by @FelixMalfait
- Move skeleton placeholders into twenty-ui ([#27481](https://github.com/twentyhq/twenty/pull/27481)) by @bosiraphael
- Make Callout dismissal caller-owned ([#27485](https://github.com/twentyhq/twenty/pull/27485)) by @bosiraphael
- fix(auth): trust the identity provider's email for SSO sign-ups and show the real SAML/OIDC URLs ([#27486](https://github.com/twentyhq/twenty/pull/27486)) by @ijreilly
- Align Tooltip shorthand and parts ([#27488](https://github.com/twentyhq/twenty/pull/27488)) by @bosiraphael
- Add loading positions to Button ([#27496](https://github.com/twentyhq/twenty/pull/27496)) by @bosiraphael
- Write the front component JSX runtime in TypeScript ([#27497](https://github.com/twentyhq/twenty/pull/27497)) by @bosiraphael
- Make typography composition explicit ([#27504](https://github.com/twentyhq/twenty/pull/27504)) by @bosiraphael
- Expose Collapsible parts ([#27507](https://github.com/twentyhq/twenty/pull/27507)) by @bosiraphael
- Block uninstalling a server route app from its owner workspace while installed elsewhere ([#27510](https://github.com/twentyhq/twenty/pull/27510)) by @martmull
- docs(sdk): point to the twenty CLI package from the SDK README ([#27512](https://github.com/twentyhq/twenty/pull/27512)) by @Weiko
- Track application upgrade as a queued job with progress ([#27526](https://github.com/twentyhq/twenty/pull/27526)) by @martmull
- Regenerate the SDK metadata client ([#27544](https://github.com/twentyhq/twenty/pull/27544)) by @FelixMalfait
- Gate the AI chat inbox behind a feature flag ([#27552](https://github.com/twentyhq/twenty/pull/27552)) by @FelixMalfait
- Remove the unused addAgentChatThreadParticipants mutation ([#27557](https://github.com/twentyhq/twenty/pull/27557)) by @FelixMalfait
- Compute the inbox counts on the server over all of a member's chats ([#27570](https://github.com/twentyhq/twenty/pull/27570)) by @FelixMalfait
- Replace the seven AI chat inbox mutations with one batched mutation ([#27576](https://github.com/twentyhq/twenty/pull/27576)) by @FelixMalfait
- Represent a paused agent run as a pending wake-up ([#27579](https://github.com/twentyhq/twenty/pull/27579)) by @FelixMalfait
- Complete Field and Slider anatomy ([#27583](https://github.com/twentyhq/twenty/pull/27583)) by @bosiraphael
- Align Section and CommandBlock composition ([#27584](https://github.com/twentyhq/twenty/pull/27584)) by @bosiraphael
- Expose Checkbox and Switch parts ([#27587](https://github.com/twentyhq/twenty/pull/27587)) by @bosiraphael
- Align input and textarea integration ([#27589](https://github.com/twentyhq/twenty/pull/27589)) by @bosiraphael
- Expose complete Popover parts ([#27590](https://github.com/twentyhq/twenty/pull/27590)) by @bosiraphael
- Complete AlertDialog parts ([#27605](https://github.com/twentyhq/twenty/pull/27605)) by @bosiraphael
- Expose complete Dialog parts ([#27606](https://github.com/twentyhq/twenty/pull/27606)) by @bosiraphael
- Complete Button and IconButton contracts ([#27609](https://github.com/twentyhq/twenty/pull/27609)) by @bosiraphael
- sendInboxMessage takes workspaceMemberIds; one thread key is one conversation ([#27615](https://github.com/twentyhq/twenty/pull/27615)) by @FelixMalfait
- Fix oversized icon in InlineBanner ([#27624](https://github.com/twentyhq/twenty/pull/27624)) by @FelixMalfait
- Lighter shortcut hint in buttons and new snooze/done icons in the AI inbox ([#27626](https://github.com/twentyhq/twenty/pull/27626)) by @FelixMalfait
- Complete Card composition ([#27632](https://github.com/twentyhq/twenty/pull/27632)) by @bosiraphael
- Preserve native Breadcrumb links ([#27636](https://github.com/twentyhq/twenty/pull/27636)) by @bosiraphael
- Expose Avatar parts and explicit interaction ([#27640](https://github.com/twentyhq/twenty/pull/27640)) by @bosiraphael
- Stabilize Dropdown trailing action story ([#27641](https://github.com/twentyhq/twenty/pull/27641)) by @bosiraphael
- Derive AvatarGroup overflow ([#27646](https://github.com/twentyhq/twenty/pull/27646)) by @bosiraphael
- Simplify Chip content and interaction ([#27648](https://github.com/twentyhq/twenty/pull/27648)) by @bosiraphael
- Simplify Tag and Status composition ([#27681](https://github.com/twentyhq/twenty/pull/27681)) by @bosiraphael
- Keep ListItem presentational ([#27683](https://github.com/twentyhq/twenty/pull/27683)) by @bosiraphael
- Clarify SettingsRow control integration ([#27686](https://github.com/twentyhq/twenty/pull/27686)) by @bosiraphael
- chore(twenty-ui): declare storybook as a devDependency ([#27697](https://github.com/twentyhq/twenty/pull/27697)) by @abdulrahmancodes
- Replace Pill and NotificationCounter with Badge ([#27702](https://github.com/twentyhq/twenty/pull/27702)) by @bosiraphael
- Clarify ImageInput file selection ([#27706](https://github.com/twentyhq/twenty/pull/27706)) by @bosiraphael
- Complete radio and segmented selection ([#27707](https://github.com/twentyhq/twenty/pull/27707)) by @bosiraphael
- Replace Accounts with App preferences behind a feature flag ([#27708](https://github.com/twentyhq/twenty/pull/27708)) by @ehconitin
- Align Tabs with Base UI ([#27732](https://github.com/twentyhq/twenty/pull/27732)) by @bosiraphael
- Expose NumberField and retain NumberStepper ([#27734](https://github.com/twentyhq/twenty/pull/27734)) by @bosiraphael
- chore: bump version to 2.47.0 ([#27735](https://github.com/twentyhq/twenty/pull/27735)) by @twenty-pr
- Complete Select public parts ([#27741](https://github.com/twentyhq/twenty/pull/27741)) by @bosiraphael
- Wait for popup visibility in disabled item stories ([#27766](https://github.com/twentyhq/twenty/pull/27766)) by @FelixMalfait
- chore(security): bump oxfmt to 0.72.0 and reformat ([#27772](https://github.com/twentyhq/twenty/pull/27772)) by @mabdullahabaid
- Identify chat owners and senders by workspace member, and drop the legacy chat columns ([#27783](https://github.com/twentyhq/twenty/pull/27783)) by @FelixMalfait
- Complete Autocomplete parts ([#27806](https://github.com/twentyhq/twenty/pull/27806)) by @bosiraphael
- Remove unused Menu API ([#27815](https://github.com/twentyhq/twenty/pull/27815)) by @bosiraphael
- Gate validation rules behind the Organization plan ([#27818](https://github.com/twentyhq/twenty/pull/27818)) by @thomtrp
- Let invoice-paying customers end their trial without a card ([#27827](https://github.com/twentyhq/twenty/pull/27827)) by @ijreilly
- [BREAKING_CHANGE] Ship the Conversations tab and workflow inbox messages under the inbox flag ([#27830](https://github.com/twentyhq/twenty/pull/27830)) by @FelixMalfait
- Unify Progress semantics and move onboarding motion ([#27831](https://github.com/twentyhq/twenty/pull/27831)) by @bosiraphael
- [BREAKING_CHANGE] Unpin chat Share and drop the AI chat sharing dropdown flag ([#27832](https://github.com/twentyhq/twenty/pull/27832)) by @FelixMalfait
- feat(billing) : store the ?partner= sign-up attribution on the Stripe customer ([#27836](https://github.com/twentyhq/twenty/pull/27836)) by @etiennejouan
- Order application workflow steps by application and label ([#27839](https://github.com/twentyhq/twenty/pull/27839)) by @martmull
- Add widgetAvailability to front components ([#27841](https://github.com/twentyhq/twenty/pull/27841)) by @martmull
- Ask consent to bill credits when installing an app ([#27844](https://github.com/twentyhq/twenty/pull/27844)) by @martmull
- Add Toast updates and status naming ([#27846](https://github.com/twentyhq/twenty/pull/27846)) by @bosiraphael
- Make workflow commands, navigation and pages core-only ([#27853](https://github.com/twentyhq/twenty/pull/27853)) by @thomtrp
- Deprecate the SDK CLI and create-twenty-app ([#27862](https://github.com/twentyhq/twenty/pull/27862)) by @Weiko
- Show application logo on fields, views, widgets and created-by actor ([#27876](https://github.com/twentyhq/twenty/pull/27876)) by @martmull
- Put twenty-ui styles in a cascade layer ([#27899](https://github.com/twentyhq/twenty/pull/27899)) by @bosiraphael
- Only measure overflowing lists while their count can show ([#27923](https://github.com/twentyhq/twenty/pull/27923)) by @charlesBochet
- Make Toast timing deterministic ([#27930](https://github.com/twentyhq/twenty/pull/27930)) by @bosiraphael
- Make table cell and skeleton styles static and add a block Skeleton layout ([#27957](https://github.com/twentyhq/twenty/pull/27957)) by @charlesBochet

</details>

**Full Changelog**: https://github.com/twentyhq/twenty/compare/sdk/v2.45.0...sdk/v2.47.0

Related Repositories