twenty/v2.47.0
HumanAIGC/Cloth2Textwenty/v2.47.0Oct 15, 2026by twenty-pr[bot]
Upgrading?
AI Summary
Server-side update focusing on Teams assistant integration, marketplace app versioning, and refined billing and usage limits.
Key Highlights
- Answer Teams assistant requests
- Hide marketplace apps that don't satisfy server version
- Set quota and stock default values per billing plan
- Align Tabs with Base UI
- Complete radio and segmented selection
Breaking Changes
- Ship the Conversations tab and workflow inbox messages under the inbox flag
- Unpin chat Share and drop the AI chat sharing dropdown flag
- Add widgetAvailability to front components
- Reject records-API writes on workflow and workflowVersion
- Remove the legacy workspace-id workflow GraphQL API
New Features
- Teams assistant requests
- Hide marketplace apps the server version does not satisfy
- Set quota and stock default values per billing plan
Full Release Notes
<!-- generated-release-notes v1 --> ## ⚠️ Breaking changes - [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 - Reject records-API writes on workflow and workflowVersion ([#27855](https://github.com/twentyhq/twenty/pull/27855)) by @thomtrp - Remove the legacy workspace-id workflow GraphQL API ([#27856](https://github.com/twentyhq/twenty/pull/27856)) by @thomtrp - Accept [BREAKING_CHANGE] titles and stop flagging feature flag removals in the API breaking change check ([#27859](https://github.com/twentyhq/twenty/pull/27859)) by @FelixMalfait - fix(admin-panel): look up admin chat threads in the workspace from the route ([#27901](https://github.com/twentyhq/twenty/pull/27901)) by @etiennejouan ## ✨ 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(teams): answer Teams assistant requests ([#27811](https://github.com/twentyhq/twenty/pull/27811)) by @abdulrahmancodes - feat(apps): hide marketplace apps the server version does not satisfy ([#27843](https://github.com/twentyhq/twenty/pull/27843)) by @martmull - feat(usage-limit): set quota and stock default values per billing plan ([#27890](https://github.com/twentyhq/twenty/pull/27890)) by @etiennejouan ## 💅 Improvements & UX - Fix JSON filter ([#26589](https://github.com/twentyhq/twenty/pull/26589)) by @BOHEUS - Show unique and total clicks and opens on campaigns ([#26875](https://github.com/twentyhq/twenty/pull/26875)) by @neo773 - Track campaign opens ([#26938](https://github.com/twentyhq/twenty/pull/26938)) by @neo773 - Make TipTap email documents the only outbound email body format ([#26981](https://github.com/twentyhq/twenty/pull/26981)) by @neo773 - Fix record gql fields typing ([#27069](https://github.com/twentyhq/twenty/pull/27069)) by @BOHEUS - fix force redirect with Navigate ([#27130](https://github.com/twentyhq/twenty/pull/27130)) by @minnibaevB - Add people to a campaign list with a background job ([#27276](https://github.com/twentyhq/twenty/pull/27276)) by @neo773 - Align agent execution with caller context ([#27394](https://github.com/twentyhq/twenty/pull/27394)) by @prastoin - refactor(usage-limit) - quota counters hold consumption; allowance cap from the workspace cache ([#27479](https://github.com/twentyhq/twenty/pull/27479)) by @etiennejouan - Support ImageInput file selection in the front component renderer ([#27588](https://github.com/twentyhq/twenty/pull/27588)) by @bosiraphael - Let the AI agent build validation rules from the side panel ([#27635](https://github.com/twentyhq/twenty/pull/27635)) by @thomtrp - Link Teams transcripts to their calendar event by Microsoft Graph event id ([#27676](https://github.com/twentyhq/twenty/pull/27676)) by @ehconitin - Add Persian locale ([#27684](https://github.com/twentyhq/twenty/pull/27684)) by @BOHEUS - Skip standby aggregate queries when refetching after record changes ([#27691](https://github.com/twentyhq/twenty/pull/27691)) by @FelixMalfait - Align log console access and retention with plans ([#27696](https://github.com/twentyhq/twenty/pull/27696)) by @martmull - Let application workflows run on a schedule ([#27699](https://github.com/twentyhq/twenty/pull/27699)) by @thomtrp - Let application workflows run on record events ([#27700](https://github.com/twentyhq/twenty/pull/27700)) by @thomtrp - Replace Pill and NotificationCounter with Badge ([#27702](https://github.com/twentyhq/twenty/pull/27702)) by @bosiraphael - Complete radio and segmented selection ([#27707](https://github.com/twentyhq/twenty/pull/27707)) by @bosiraphael - Preserve native edits across renderer updates ([#27726](https://github.com/twentyhq/twenty/pull/27726)) by @bosiraphael - Align Tabs with Base UI ([#27732](https://github.com/twentyhq/twenty/pull/27732)) by @bosiraphael - Remove the WhatsApp and Calls Soon tabs from Communication settings ([#27733](https://github.com/twentyhq/twenty/pull/27733)) by @Bonapara - Expose NumberField and retain NumberStepper ([#27734](https://github.com/twentyhq/twenty/pull/27734)) by @bosiraphael - Stop stacking record creation forms on repeated Create clicks ([#27736](https://github.com/twentyhq/twenty/pull/27736)) by @thomtrp - Complete Select public parts ([#27741](https://github.com/twentyhq/twenty/pull/27741)) by @bosiraphael - Normalize saved view filter values for query resolution ([#27742](https://github.com/twentyhq/twenty/pull/27742)) by @FelixMalfait - Batch global admin chat report transactions ([#27746](https://github.com/twentyhq/twenty/pull/27746)) by @FelixMalfait - Stop selecting agent.evaluationInputs once the 2.47 drop has run ([#27748](https://github.com/twentyhq/twenty/pull/27748)) by @charlesBochet - Derive persisted record filter types from field metadata like views ([#27754](https://github.com/twentyhq/twenty/pull/27754)) by @FelixMalfait - Last contact 1.9.1: stop restoring trashed people, skip unchanged writes ([#27755](https://github.com/twentyhq/twenty/pull/27755)) by @martmull - Add missing translation keys ([#27759](https://github.com/twentyhq/twenty/pull/27759)) by @BOHEUS - Rename morph relations ([#27760](https://github.com/twentyhq/twenty/pull/27760)) by @BOHEUS - Fix ordering for view sort replacements ([#27764](https://github.com/twentyhq/twenty/pull/27764)) by @FelixMalfait - Wait for popup visibility in disabled item stories ([#27766](https://github.com/twentyhq/twenty/pull/27766)) by @FelixMalfait - Fix cascade-before-update ordering in workspace migrations ([#27767](https://github.com/twentyhq/twenty/pull/27767)) by @FelixMalfait - Fix table skeleton cells overflowing into the next column ([#27768](https://github.com/twentyhq/twenty/pull/27768)) by @ehconitin - Remove the 2.45/2.46 chat upgrade fences and fallbacks ([#27779](https://github.com/twentyhq/twenty/pull/27779)) by @FelixMalfait - Drop usage limit meter compatibility in 2.47 ([#27780](https://github.com/twentyhq/twenty/pull/27780)) by @FelixMalfait - Add OSS Scanner build and threat model ([#27781](https://github.com/twentyhq/twenty/pull/27781)) 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 - Follow shared chats only when taking part in them, and track what members read ([#27786](https://github.com/twentyhq/twenty/pull/27786)) by @FelixMalfait - Spell out the security contact email in SECURITY.md ([#27789](https://github.com/twentyhq/twenty/pull/27789)) by @FelixMalfait - Show workspace members by name or email through one helper ([#27791](https://github.com/twentyhq/twenty/pull/27791)) by @FelixMalfait - Type RolePermissionConfig by role source ([#27805](https://github.com/twentyhq/twenty/pull/27805)) by @prastoin - Complete Autocomplete parts ([#27806](https://github.com/twentyhq/twenty/pull/27806)) by @bosiraphael - Remove leftover in Admin Panel ([#27812](https://github.com/twentyhq/twenty/pull/27812)) by @BOHEUS - Show the real remaining count on relation card widgets ([#27813](https://github.com/twentyhq/twenty/pull/27813)) by @charlesBochet - Fix double highlight on view picker rows ([#27816](https://github.com/twentyhq/twenty/pull/27816)) by @Bonapara - Gate validation rules behind the Organization plan ([#27818](https://github.com/twentyhq/twenty/pull/27818)) by @thomtrp - Require the roles permission to pick a role when sending invitations ([#27820](https://github.com/twentyhq/twenty/pull/27820)) by @thomtrp - Group pending invoice items monthly for invoice-paying subscriptions ([#27826](https://github.com/twentyhq/twenty/pull/27826)) by @ijreilly - Let invoice-paying customers end their trial without a card ([#27827](https://github.com/twentyhq/twenty/pull/27827)) by @ijreilly - Add Teams user link object ([#27828](https://github.com/twentyhq/twenty/pull/27828)) by @abdulrahmancodes - 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 - Revert the browser-bound application claim state (#26214) ([#27837](https://github.com/twentyhq/twenty/pull/27837)) by @martmull - Keep app update tag visible in installed apps list ([#27838](https://github.com/twentyhq/twenty/pull/27838)) by @martmull - Order application workflow steps by application and label ([#27839](https://github.com/twentyhq/twenty/pull/27839)) by @martmull - Show validation rule messages under their field in the record creation form ([#27840](https://github.com/twentyhq/twenty/pull/27840)) by @thomtrp - Keep add-people-to-message-list spec from flooding the workflow queue ([#27842](https://github.com/twentyhq/twenty/pull/27842)) by @FelixMalfait - 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 the workflow editor hooks core-only ([#27852](https://github.com/twentyhq/twenty/pull/27852)) by @thomtrp - Make workflow commands, navigation and pages core-only ([#27853](https://github.com/twentyhq/twenty/pull/27853)) by @thomtrp - Remove the legacy workflow trigger and version workspace services ([#27857](https://github.com/twentyhq/twenty/pull/27857)) by @thomtrp - Remove the legacy workflow step and edge workspace services ([#27858](https://github.com/twentyhq/twenty/pull/27858)) by @thomtrp - Show core workflow and version on the workflow runs index ([#27861](https://github.com/twentyhq/twenty/pull/27861)) by @thomtrp - Remove tabs from marketplace app detail page ([#27868](https://github.com/twentyhq/twenty/pull/27868)) by @martmull - Fix oversized icon in side panel switch rows ([#27869](https://github.com/twentyhq/twenty/pull/27869)) by @FelixMalfait - Sort admin apps by attention and show author and install count ([#27871](https://github.com/twentyhq/twenty/pull/27871)) by @martmull - Navigate the inbox with the arrow keys ([#27875](https://github.com/twentyhq/twenty/pull/27875)) by @FelixMalfait - Show application logo on fields, views, widgets and created-by actor ([#27876](https://github.com/twentyhq/twenty/pull/27876)) by @martmull - Remove the workflow drift check, the workspace statuses job and the workspace-to-core sync listener ([#27879](https://github.com/twentyhq/twenty/pull/27879)) by @thomtrp - Activate and deactivate workflows without writing workspace rows ([#27880](https://github.com/twentyhq/twenty/pull/27880)) by @thomtrp - Write workflow version content and drafts to core only ([#27881](https://github.com/twentyhq/twenty/pull/27881)) by @thomtrp - Create, rename, duplicate and delete workflows in core only ([#27882](https://github.com/twentyhq/twenty/pull/27882)) by @thomtrp - Remove the dead workflow mirror write code ([#27883](https://github.com/twentyhq/twenty/pull/27883)) by @thomtrp - Seed and prefill workflows in core only ([#27884](https://github.com/twentyhq/twenty/pull/27884)) by @thomtrp - Keep AI chat thinking signatures valid across turns ([#27888](https://github.com/twentyhq/twenty/pull/27888)) by @charlesBochet - Speed up switching between record table views ([#27897](https://github.com/twentyhq/twenty/pull/27897)) by @charlesBochet - Use Teams user links when matching the sender ([#27898](https://github.com/twentyhq/twenty/pull/27898)) by @abdulrahmancodes - Put twenty-ui styles in a cascade layer ([#27899](https://github.com/twentyhq/twenty/pull/27899)) by @bosiraphael - Use the existing banner and field error components for validation rule messages ([#27906](https://github.com/twentyhq/twenty/pull/27906)) by @thomtrp - Add a route to remove Teams user links ([#27909](https://github.com/twentyhq/twenty/pull/27909)) by @abdulrahmancodes - Take row-level rules from the roles the permission config intersects ([#27911](https://github.com/twentyhq/twenty/pull/27911)) by @prastoin - Fix application author display when the manifest carries an npm-style author object ([#27918](https://github.com/twentyhq/twenty/pull/27918)) by @martmull - Only measure overflowing lists while their count can show ([#27923](https://github.com/twentyhq/twenty/pull/27923)) by @charlesBochet - Enable initial object views on new workspaces ([#27924](https://github.com/twentyhq/twenty/pull/27924)) by @thomtrp - Bump claude-code-action and Claude Code ([#27928](https://github.com/twentyhq/twenty/pull/27928)) by @neo773 - Only add Bedrock cache points for Claude models ([#27929](https://github.com/twentyhq/twenty/pull/27929)) by @charlesBochet - Make Toast timing deterministic ([#27930](https://github.com/twentyhq/twenty/pull/27930)) by @bosiraphael - Fix Kanban icon ([#27936](https://github.com/twentyhq/twenty/pull/27936)) by @BOHEUS - Keep the role permission config on the workspace repository ([#27942](https://github.com/twentyhq/twenty/pull/27942)) by @prastoin - Resolve the connected account when an email is clicked, not per cell ([#27947](https://github.com/twentyhq/twenty/pull/27947)) by @charlesBochet - Wait for Select popup transitions ([#27950](https://github.com/twentyhq/twenty/pull/27950)) by @bosiraphael - Read waiting job ids without loading job data in the BullMQ driver ([#27955](https://github.com/twentyhq/twenty/pull/27955)) by @charlesBochet - Make table cell and skeleton styles static and add a block Skeleton layout ([#27957](https://github.com/twentyhq/twenty/pull/27957)) by @charlesBochet - MCP: fix soft-delete generated tools ([#27962](https://github.com/twentyhq/twenty/pull/27962)) by @BOHEUS - Make filter validation errors actionable for AI agents ([#27963](https://github.com/twentyhq/twenty/pull/27963)) by @BOHEUS ## 🐛 Bug fixes - fix(front): lay phone numbers out left to right in RTL locales ([#27006](https://github.com/twentyhq/twenty/pull/27006)) by @almoghazaz-cell - fix(billing): surface checkoutSession GraphQL errors in toast ([#27018](https://github.com/twentyhq/twenty/pull/27018)) by @evanliuuu - 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: use overflow clip on app layout to stop side-panel shift ([#27112](https://github.com/twentyhq/twenty/pull/27112)) by @hussnainahmedd - fix(server): sync userWorkspace.locale when a workspace member's locale is updated through the record API ([#27245](https://github.com/twentyhq/twenty/pull/27245)) by @slavarosin - fix(website): bump @opennextjs/cloudflare to 1.20.8 for Next 16.3.8 cache keys ([#27751](https://github.com/twentyhq/twenty/pull/27751)) by @FelixMalfait - fix(usage-limit): no workspace record or storage limit when the config variable is unset ([#27803](https://github.com/twentyhq/twenty/pull/27803)) by @etiennejouan - fix(workspace-cleaner): never warn members of a soft-deleted workspace ([#27814](https://github.com/twentyhq/twenty/pull/27814)) by @etiennejouan - fix(workflow): skip not-taken if/else branch targets also listed in the step's nextStepIds ([#27833](https://github.com/twentyhq/twenty/pull/27833)) by @thomtrp - fix(cli): lock the app template with the pins the publish check verified ([#27864](https://github.com/twentyhq/twenty/pull/27864)) by @Weiko - fix(server): sample AI SDK v7 agent spans at 100% in Sentry ([#27913](https://github.com/twentyhq/twenty/pull/27913)) by @etiennejouan - fix(admin-panel): drop the admin panel global AI chats list ([#27920](https://github.com/twentyhq/twenty/pull/27920)) by @etiennejouan - fix(cli): report the Node requirement when launched with npx ([#27932](https://github.com/twentyhq/twenty/pull/27932)) by @Weiko ## 🔧 Developer & API - Stop registering dynamic record cache fragments with graphql-tag ([#27690](https://github.com/twentyhq/twenty/pull/27690)) by @FelixMalfait - Adopt gpt-6-luna for the cheap tier (dev, staging, self-host) ([#27763](https://github.com/twentyhq/twenty/pull/27763)) by @twenty-pr-author - Remove unused Menu API ([#27815](https://github.com/twentyhq/twenty/pull/27815)) by @bosiraphael - Move workflow execution integration tests to the core workflow API ([#27848](https://github.com/twentyhq/twenty/pull/27848)) by @thomtrp - Move workflow node, core workflow, lifecycle and permission integration tests to the core workflow API ([#27849](https://github.com/twentyhq/twenty/pull/27849)) by @thomtrp - Deprecate the SDK CLI and create-twenty-app ([#27862](https://github.com/twentyhq/twenty/pull/27862)) by @Weiko - Align CLI version with Twenty 2.46.0 ([#27905](https://github.com/twentyhq/twenty/pull/27905)) by @Weiko - Let Bedrock AI providers authenticate with a Bedrock API key ([#27907](https://github.com/twentyhq/twenty/pull/27907)) by @charlesBochet - Skip cli-test in the merge queue ([#27908](https://github.com/twentyhq/twenty/pull/27908)) by @prastoin - Skip cli-package-test in the merge queue ([#27910](https://github.com/twentyhq/twenty/pull/27910)) by @prastoin - Let application workflows start from a webhook ([#27933](https://github.com/twentyhq/twenty/pull/27933)) by @thomtrp <details> <summary>🏗️ Internal changes (11)</summary> - chore(twenty-ui): declare storybook as a devDependency ([#27697](https://github.com/twentyhq/twenty/pull/27697)) by @abdulrahmancodes - ci(website): serve the built Worker in workerd and smoke-test real pages ([#27756](https://github.com/twentyhq/twenty/pull/27756)) by @FelixMalfait - chore(security): bump handlebars to 4.7.10 ([#27765](https://github.com/twentyhq/twenty/pull/27765)) by @mabdullahabaid - chore(security): bump simple-git to 4.0.2 ([#27769](https://github.com/twentyhq/twenty/pull/27769)) by @mabdullahabaid - chore(security): bump source-map-js to 1.2.2 ([#27770](https://github.com/twentyhq/twenty/pull/27770)) by @mabdullahabaid - chore(security): bump oxfmt to 0.72.0 and reformat ([#27772](https://github.com/twentyhq/twenty/pull/27772)) by @mabdullahabaid - chore(security): bump nx to 22.7.12 and smol-toml to 1.9.0 ([#27782](https://github.com/twentyhq/twenty/pull/27782)) by @mabdullahabaid - refactor(usage-limit): stock counters hold what is held, keyed by scope ([#27866](https://github.com/twentyhq/twenty/pull/27866)) by @etiennejouan - docs: list the Microsoft scopes Twenty actually requests ([#27904](https://github.com/twentyhq/twenty/pull/27904)) by @neo773 - refactor(usage-limit): import billing directly instead of discovering its providers ([#27926](https://github.com/twentyhq/twenty/pull/27926)) by @etiennejouan - chore(cli): bump the twenty package to 2.47.0 ([#27940](https://github.com/twentyhq/twenty/pull/27940)) by @Weiko </details> ## 🎉 New contributors - @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 (160 PRs)</summary> - Fix JSON filter ([#26589](https://github.com/twentyhq/twenty/pull/26589)) by @BOHEUS - feat(campaigns): add selected people or a whole People view to a campaign list ([#26823](https://github.com/twentyhq/twenty/pull/26823)) by @neo773 - Show unique and total clicks and opens on campaigns ([#26875](https://github.com/twentyhq/twenty/pull/26875)) by @neo773 - Track campaign opens ([#26938](https://github.com/twentyhq/twenty/pull/26938)) by @neo773 - Make TipTap email documents the only outbound email body format ([#26981](https://github.com/twentyhq/twenty/pull/26981)) by @neo773 - fix(front): lay phone numbers out left to right in RTL locales ([#27006](https://github.com/twentyhq/twenty/pull/27006)) by @almoghazaz-cell - fix(billing): surface checkoutSession GraphQL errors in toast ([#27018](https://github.com/twentyhq/twenty/pull/27018)) by @evanliuuu - fix(ui): truncate LTR values at their end in RTL layouts ([#27059](https://github.com/twentyhq/twenty/pull/27059)) by @almoghazaz-cell - Fix record gql fields typing ([#27069](https://github.com/twentyhq/twenty/pull/27069)) by @BOHEUS - fix(cli): remove legacy CLI config migration ([#27085](https://github.com/twentyhq/twenty/pull/27085)) by @Sameer7-s - fix: use overflow clip on app layout to stop side-panel shift ([#27112](https://github.com/twentyhq/twenty/pull/27112)) by @hussnainahmedd - fix force redirect with Navigate ([#27130](https://github.com/twentyhq/twenty/pull/27130)) by @minnibaevB - fix(server): sync userWorkspace.locale when a workspace member's locale is updated through the record API ([#27245](https://github.com/twentyhq/twenty/pull/27245)) by @slavarosin - Add people to a campaign list with a background job ([#27276](https://github.com/twentyhq/twenty/pull/27276)) by @neo773 - Align agent execution with caller context ([#27394](https://github.com/twentyhq/twenty/pull/27394)) by @prastoin - refactor(usage-limit) - quota counters hold consumption; allowance cap from the workspace cache ([#27479](https://github.com/twentyhq/twenty/pull/27479)) by @etiennejouan - Support ImageInput file selection in the front component renderer ([#27588](https://github.com/twentyhq/twenty/pull/27588)) by @bosiraphael - Let the AI agent build validation rules from the side panel ([#27635](https://github.com/twentyhq/twenty/pull/27635)) by @thomtrp - Link Teams transcripts to their calendar event by Microsoft Graph event id ([#27676](https://github.com/twentyhq/twenty/pull/27676)) by @ehconitin - Add Persian locale ([#27684](https://github.com/twentyhq/twenty/pull/27684)) by @BOHEUS - Stop registering dynamic record cache fragments with graphql-tag ([#27690](https://github.com/twentyhq/twenty/pull/27690)) by @FelixMalfait - Skip standby aggregate queries when refetching after record changes ([#27691](https://github.com/twentyhq/twenty/pull/27691)) by @FelixMalfait - Align log console access and retention with plans ([#27696](https://github.com/twentyhq/twenty/pull/27696)) by @martmull - chore(twenty-ui): declare storybook as a devDependency ([#27697](https://github.com/twentyhq/twenty/pull/27697)) by @abdulrahmancodes - Let application workflows run on a schedule ([#27699](https://github.com/twentyhq/twenty/pull/27699)) by @thomtrp - Let application workflows run on record events ([#27700](https://github.com/twentyhq/twenty/pull/27700)) by @thomtrp - Replace Pill and NotificationCounter with Badge ([#27702](https://github.com/twentyhq/twenty/pull/27702)) by @bosiraphael - Complete radio and segmented selection ([#27707](https://github.com/twentyhq/twenty/pull/27707)) by @bosiraphael - Preserve native edits across renderer updates ([#27726](https://github.com/twentyhq/twenty/pull/27726)) by @bosiraphael - Align Tabs with Base UI ([#27732](https://github.com/twentyhq/twenty/pull/27732)) by @bosiraphael - Remove the WhatsApp and Calls Soon tabs from Communication settings ([#27733](https://github.com/twentyhq/twenty/pull/27733)) by @Bonapara - 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 - Stop stacking record creation forms on repeated Create clicks ([#27736](https://github.com/twentyhq/twenty/pull/27736)) by @thomtrp - i18n - translations ([#27737](https://github.com/twentyhq/twenty/pull/27737)) by @github-actions - i18n - translations ([#27740](https://github.com/twentyhq/twenty/pull/27740)) by @github-actions - Complete Select public parts ([#27741](https://github.com/twentyhq/twenty/pull/27741)) by @bosiraphael - Normalize saved view filter values for query resolution ([#27742](https://github.com/twentyhq/twenty/pull/27742)) by @FelixMalfait - Batch global admin chat report transactions ([#27746](https://github.com/twentyhq/twenty/pull/27746)) by @FelixMalfait - i18n - translations ([#27747](https://github.com/twentyhq/twenty/pull/27747)) by @github-actions - Stop selecting agent.evaluationInputs once the 2.47 drop has run ([#27748](https://github.com/twentyhq/twenty/pull/27748)) by @charlesBochet - i18n - translations ([#27750](https://github.com/twentyhq/twenty/pull/27750)) by @github-actions - fix(website): bump @opennextjs/cloudflare to 1.20.8 for Next 16.3.8 cache keys ([#27751](https://github.com/twentyhq/twenty/pull/27751)) by @FelixMalfait - Derive persisted record filter types from field metadata like views ([#27754](https://github.com/twentyhq/twenty/pull/27754)) by @FelixMalfait - Last contact 1.9.1: stop restoring trashed people, skip unchanged writes ([#27755](https://github.com/twentyhq/twenty/pull/27755)) by @martmull - ci(website): serve the built Worker in workerd and smoke-test real pages ([#27756](https://github.com/twentyhq/twenty/pull/27756)) by @FelixMalfait - i18n - translations ([#27757](https://github.com/twentyhq/twenty/pull/27757)) by @github-actions - i18n - translations ([#27758](https://github.com/twentyhq/twenty/pull/27758)) by @github-actions - Add missing translation keys ([#27759](https://github.com/twentyhq/twenty/pull/27759)) by @BOHEUS - Rename morph relations ([#27760](https://github.com/twentyhq/twenty/pull/27760)) by @BOHEUS - chore: sync AI model catalog ([#27761](https://github.com/twentyhq/twenty/pull/27761)) by @github-actions - Adopt gpt-6-luna for the cheap tier (dev, staging, self-host) ([#27763](https://github.com/twentyhq/twenty/pull/27763)) by @twenty-pr-author - Fix ordering for view sort replacements ([#27764](https://github.com/twentyhq/twenty/pull/27764)) by @FelixMalfait - chore(security): bump handlebars to 4.7.10 ([#27765](https://github.com/twentyhq/twenty/pull/27765)) by @mabdullahabaid - Wait for popup visibility in disabled item stories ([#27766](https://github.com/twentyhq/twenty/pull/27766)) by @FelixMalfait - Fix cascade-before-update ordering in workspace migrations ([#27767](https://github.com/twentyhq/twenty/pull/27767)) by @FelixMalfait - Fix table skeleton cells overflowing into the next column ([#27768](https://github.com/twentyhq/twenty/pull/27768)) by @ehconitin - chore(security): bump simple-git to 4.0.2 ([#27769](https://github.com/twentyhq/twenty/pull/27769)) by @mabdullahabaid - chore(security): bump source-map-js to 1.2.2 ([#27770](https://github.com/twentyhq/twenty/pull/27770)) by @mabdullahabaid - chore(security): bump oxfmt to 0.72.0 and reformat ([#27772](https://github.com/twentyhq/twenty/pull/27772)) by @mabdullahabaid - chore: sync AI model catalog ([#27773](https://github.com/twentyhq/twenty/pull/27773)) by @github-actions - Remove the 2.45/2.46 chat upgrade fences and fallbacks ([#27779](https://github.com/twentyhq/twenty/pull/27779)) by @FelixMalfait - Drop usage limit meter compatibility in 2.47 ([#27780](https://github.com/twentyhq/twenty/pull/27780)) by @FelixMalfait - Add OSS Scanner build and threat model ([#27781](https://github.com/twentyhq/twenty/pull/27781)) by @FelixMalfait - chore(security): bump nx to 22.7.12 and smol-toml to 1.9.0 ([#27782](https://github.com/twentyhq/twenty/pull/27782)) 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 - i18n - translations ([#27784](https://github.com/twentyhq/twenty/pull/27784)) by @github-actions - Follow shared chats only when taking part in them, and track what members read ([#27786](https://github.com/twentyhq/twenty/pull/27786)) by @FelixMalfait - Spell out the security contact email in SECURITY.md ([#27789](https://github.com/twentyhq/twenty/pull/27789)) by @FelixMalfait - Show workspace members by name or email through one helper ([#27791](https://github.com/twentyhq/twenty/pull/27791)) by @FelixMalfait - i18n - translations ([#27801](https://github.com/twentyhq/twenty/pull/27801)) by @github-actions - chore: sync AI model catalog ([#27802](https://github.com/twentyhq/twenty/pull/27802)) by @github-actions - fix(usage-limit): no workspace record or storage limit when the config variable is unset ([#27803](https://github.com/twentyhq/twenty/pull/27803)) by @etiennejouan - Type RolePermissionConfig by role source ([#27805](https://github.com/twentyhq/twenty/pull/27805)) by @prastoin - Complete Autocomplete parts ([#27806](https://github.com/twentyhq/twenty/pull/27806)) by @bosiraphael - i18n - translations ([#27808](https://github.com/twentyhq/twenty/pull/27808)) by @github-actions - i18n - translations ([#27810](https://github.com/twentyhq/twenty/pull/27810)) by @github-actions - feat(teams): answer Teams assistant requests ([#27811](https://github.com/twentyhq/twenty/pull/27811)) by @abdulrahmancodes - Remove leftover in Admin Panel ([#27812](https://github.com/twentyhq/twenty/pull/27812)) by @BOHEUS - Show the real remaining count on relation card widgets ([#27813](https://github.com/twentyhq/twenty/pull/27813)) by @charlesBochet - fix(workspace-cleaner): never warn members of a soft-deleted workspace ([#27814](https://github.com/twentyhq/twenty/pull/27814)) by @etiennejouan - Remove unused Menu API ([#27815](https://github.com/twentyhq/twenty/pull/27815)) by @bosiraphael - Fix double highlight on view picker rows ([#27816](https://github.com/twentyhq/twenty/pull/27816)) by @Bonapara - Gate validation rules behind the Organization plan ([#27818](https://github.com/twentyhq/twenty/pull/27818)) by @thomtrp - Require the roles permission to pick a role when sending invitations ([#27820](https://github.com/twentyhq/twenty/pull/27820)) by @thomtrp - Group pending invoice items monthly for invoice-paying subscriptions ([#27826](https://github.com/twentyhq/twenty/pull/27826)) by @ijreilly - Let invoice-paying customers end their trial without a card ([#27827](https://github.com/twentyhq/twenty/pull/27827)) by @ijreilly - Add Teams user link object ([#27828](https://github.com/twentyhq/twenty/pull/27828)) by @abdulrahmancodes - [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 - fix(workflow): skip not-taken if/else branch targets also listed in the step's nextStepIds ([#27833](https://github.com/twentyhq/twenty/pull/27833)) by @thomtrp - feat(billing) : store the ?partner= sign-up attribution on the Stripe customer ([#27836](https://github.com/twentyhq/twenty/pull/27836)) by @etiennejouan - Revert the browser-bound application claim state (#26214) ([#27837](https://github.com/twentyhq/twenty/pull/27837)) by @martmull - Keep app update tag visible in installed apps list ([#27838](https://github.com/twentyhq/twenty/pull/27838)) by @martmull - Order application workflow steps by application and label ([#27839](https://github.com/twentyhq/twenty/pull/27839)) by @martmull - Show validation rule messages under their field in the record creation form ([#27840](https://github.com/twentyhq/twenty/pull/27840)) by @thomtrp - Add widgetAvailability to front components ([#27841](https://github.com/twentyhq/twenty/pull/27841)) by @martmull - Keep add-people-to-message-list spec from flooding the workflow queue ([#27842](https://github.com/twentyhq/twenty/pull/27842)) by @FelixMalfait - feat(apps): hide marketplace apps the server version does not satisfy ([#27843](https://github.com/twentyhq/twenty/pull/27843)) 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 - Move workflow execution integration tests to the core workflow API ([#27848](https://github.com/twentyhq/twenty/pull/27848)) by @thomtrp - Move workflow node, core workflow, lifecycle and permission integration tests to the core workflow API ([#27849](https://github.com/twentyhq/twenty/pull/27849)) by @thomtrp - Make the workflow editor hooks core-only ([#27852](https://github.com/twentyhq/twenty/pull/27852)) by @thomtrp - Make workflow commands, navigation and pages core-only ([#27853](https://github.com/twentyhq/twenty/pull/27853)) by @thomtrp - Reject records-API writes on workflow and workflowVersion ([#27855](https://github.com/twentyhq/twenty/pull/27855)) by @thomtrp - Remove the legacy workspace-id workflow GraphQL API ([#27856](https://github.com/twentyhq/twenty/pull/27856)) by @thomtrp - Remove the legacy workflow trigger and version workspace services ([#27857](https://github.com/twentyhq/twenty/pull/27857)) by @thomtrp - Remove the legacy workflow step and edge workspace services ([#27858](https://github.com/twentyhq/twenty/pull/27858)) by @thomtrp - Accept [BREAKING_CHANGE] titles and stop flagging feature flag removals in the API breaking change check ([#27859](https://github.com/twentyhq/twenty/pull/27859)) by @FelixMalfait - Show core workflow and version on the workflow runs index ([#27861](https://github.com/twentyhq/twenty/pull/27861)) by @thomtrp - Deprecate the SDK CLI and create-twenty-app ([#27862](https://github.com/twentyhq/twenty/pull/27862)) by @Weiko - fix(cli): lock the app template with the pins the publish check verified ([#27864](https://github.com/twentyhq/twenty/pull/27864)) by @Weiko - refactor(usage-limit): stock counters hold what is held, keyed by scope ([#27866](https://github.com/twentyhq/twenty/pull/27866)) by @etiennejouan - Remove tabs from marketplace app detail page ([#27868](https://github.com/twentyhq/twenty/pull/27868)) by @martmull - Fix oversized icon in side panel switch rows ([#27869](https://github.com/twentyhq/twenty/pull/27869)) by @FelixMalfait - Sort admin apps by attention and show author and install count ([#27871](https://github.com/twentyhq/twenty/pull/27871)) by @martmull - Navigate the inbox with the arrow keys ([#27875](https://github.com/twentyhq/twenty/pull/27875)) by @FelixMalfait - Show application logo on fields, views, widgets and created-by actor ([#27876](https://github.com/twentyhq/twenty/pull/27876)) by @martmull - Remove the workflow drift check, the workspace statuses job and the workspace-to-core sync listener ([#27879](https://github.com/twentyhq/twenty/pull/27879)) by @thomtrp - Activate and deactivate workflows without writing workspace rows ([#27880](https://github.com/twentyhq/twenty/pull/27880)) by @thomtrp - Write workflow version content and drafts to core only ([#27881](https://github.com/twentyhq/twenty/pull/27881)) by @thomtrp - Create, rename, duplicate and delete workflows in core only ([#27882](https://github.com/twentyhq/twenty/pull/27882)) by @thomtrp - Remove the dead workflow mirror write code ([#27883](https://github.com/twentyhq/twenty/pull/27883)) by @thomtrp - Seed and prefill workflows in core only ([#27884](https://github.com/twentyhq/twenty/pull/27884)) by @thomtrp - Keep AI chat thinking signatures valid across turns ([#27888](https://github.com/twentyhq/twenty/pull/27888)) by @charlesBochet - feat(usage-limit): set quota and stock default values per billing plan ([#27890](https://github.com/twentyhq/twenty/pull/27890)) by @etiennejouan - Speed up switching between record table views ([#27897](https://github.com/twentyhq/twenty/pull/27897)) by @charlesBochet - Use Teams user links when matching the sender ([#27898](https://github.com/twentyhq/twenty/pull/27898)) by @abdulrahmancodes - Put twenty-ui styles in a cascade layer ([#27899](https://github.com/twentyhq/twenty/pull/27899)) by @bosiraphael - fix(admin-panel): look up admin chat threads in the workspace from the route ([#27901](https://github.com/twentyhq/twenty/pull/27901)) by @etiennejouan - docs: list the Microsoft scopes Twenty actually requests ([#27904](https://github.com/twentyhq/twenty/pull/27904)) by @neo773 - Align CLI version with Twenty 2.46.0 ([#27905](https://github.com/twentyhq/twenty/pull/27905)) by @Weiko - Use the existing banner and field error components for validation rule messages ([#27906](https://github.com/twentyhq/twenty/pull/27906)) by @thomtrp - Let Bedrock AI providers authenticate with a Bedrock API key ([#27907](https://github.com/twentyhq/twenty/pull/27907)) by @charlesBochet - Skip cli-test in the merge queue ([#27908](https://github.com/twentyhq/twenty/pull/27908)) by @prastoin - Add a route to remove Teams user links ([#27909](https://github.com/twentyhq/twenty/pull/27909)) by @abdulrahmancodes - Skip cli-package-test in the merge queue ([#27910](https://github.com/twentyhq/twenty/pull/27910)) by @prastoin - Take row-level rules from the roles the permission config intersects ([#27911](https://github.com/twentyhq/twenty/pull/27911)) by @prastoin - fix(server): sample AI SDK v7 agent spans at 100% in Sentry ([#27913](https://github.com/twentyhq/twenty/pull/27913)) by @etiennejouan - Fix application author display when the manifest carries an npm-style author object ([#27918](https://github.com/twentyhq/twenty/pull/27918)) by @martmull - fix(admin-panel): drop the admin panel global AI chats list ([#27920](https://github.com/twentyhq/twenty/pull/27920)) by @etiennejouan - Only measure overflowing lists while their count can show ([#27923](https://github.com/twentyhq/twenty/pull/27923)) by @charlesBochet - Enable initial object views on new workspaces ([#27924](https://github.com/twentyhq/twenty/pull/27924)) by @thomtrp - refactor(usage-limit): import billing directly instead of discovering its providers ([#27926](https://github.com/twentyhq/twenty/pull/27926)) by @etiennejouan - Bump claude-code-action and Claude Code ([#27928](https://github.com/twentyhq/twenty/pull/27928)) by @neo773 - Only add Bedrock cache points for Claude models ([#27929](https://github.com/twentyhq/twenty/pull/27929)) by @charlesBochet - Make Toast timing deterministic ([#27930](https://github.com/twentyhq/twenty/pull/27930)) by @bosiraphael - fix(cli): report the Node requirement when launched with npx ([#27932](https://github.com/twentyhq/twenty/pull/27932)) by @Weiko - Let application workflows start from a webhook ([#27933](https://github.com/twentyhq/twenty/pull/27933)) by @thomtrp - Fix Kanban icon ([#27936](https://github.com/twentyhq/twenty/pull/27936)) by @BOHEUS - chore(cli): bump the twenty package to 2.47.0 ([#27940](https://github.com/twentyhq/twenty/pull/27940)) by @Weiko - Keep the role permission config on the workspace repository ([#27942](https://github.com/twentyhq/twenty/pull/27942)) by @prastoin - Resolve the connected account when an email is clicked, not per cell ([#27947](https://github.com/twentyhq/twenty/pull/27947)) by @charlesBochet - Wait for Select popup transitions ([#27950](https://github.com/twentyhq/twenty/pull/27950)) by @bosiraphael - Read waiting job ids without loading job data in the BullMQ driver ([#27955](https://github.com/twentyhq/twenty/pull/27955)) by @charlesBochet - Make table cell and skeleton styles static and add a block Skeleton layout ([#27957](https://github.com/twentyhq/twenty/pull/27957)) by @charlesBochet - MCP: fix soft-delete generated tools ([#27962](https://github.com/twentyhq/twenty/pull/27962)) by @BOHEUS - Make filter validation errors actionable for AI agents ([#27963](https://github.com/twentyhq/twenty/pull/27963)) by @BOHEUS </details> **Full Changelog**: https://github.com/twentyhq/twenty/compare/twenty/v2.46.0...twenty/v2.47.0
Related Repositories
public-apis/public-apis★ 491,192
A collective list of free APIs
NousResearch/hermes-agent★ 256,049
The agent that grows with you
yt-dlp/yt-dlp★ 200,222
A feature-rich command-line audio/video downloader
microsoft/markitdown★ 191,543
Python tool for converting files and office documents to Markdown.
Significant-Gravitas/AutoGPT★ 187,700
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.