sdk/v2.47.0
twentyhq/twentysdk/v2.47.0Oct 15, 2026by twenty-pr[bot]
Upgrading?
AI Summary
The SDK release corresponding to twenty/v2.47.0, focusing on reshaping the record sharing API, replacing the limit meter with a usage unit, and enhancing AI agent capabilities like tool call approvals.
Key Highlights
- Reshapes record sharing API and share panel.
- Replaces the limit meter with a usage unit.
- AI agents and workflows can now propose tool calls for approval.
- Batched mutation for AI chat inbox operations to improve performance.
Breaking Changes
- Reshape record sharing API and share panel.
- Replace the limit meter with a usage unit.
- Drop unused agent history repository registrations.
- Remove the install apps onboarding step.
- Send inbox messages takes workspaceMemberIds.
New Features
- Admin-issued two-factor authentication recovery codes.
- AI agents and workflows propose tool calls for approval.
- Unread badge on the inbox.
- Applications show install and uninstall progress.
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
openclaw/openclaw★ 392,729
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
nilbuild/developer-roadmap★ 370,105
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
morluto/rea★ 361,460
Reverse engineer anything with agents, from app behavior down to native binaries.
anomalyco/opencode★ 219,920
The open source coding agent.
n8n-io/n8n★ 208,293
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.