twenty/v2.44.0
microsoft/graphragtwenty/v2.44.0Oct 1, 2026by twenty-pr[bot]
Upgrading?
AI Summary
This release focuses on enhancing workflow capabilities, specifically recording agent steps and pausing execution, alongside changes to application registration and record management.
Key Highlights
- Agent step execution is now recorded as a conversation
- Workflows can pause on questions until answered
- Application registration variables are declared via manifest only
- Direct tool mode is added for MCP
Breaking Changes
- Record each agent step execution as a conversation
- Let an agent step pause on a question until someone answers
- Declare application registration variables through the manifest only
- Start a record's conversation from the record
- Move product URLs out of twenty-ui
New Features
- Knip dependency tool
- Slack broken connection reporting
- Ask object for work waiting on a person
- Configurable OTLP metrics temporality
- Programmatic application client generation
- Direct tool mode for MCP
- Chat conversations managed via record API
Full Release Notes
<!-- generated-release-notes v1 --> ## ⚠️ Breaking changes - feat(workflow): record each agent step execution as a conversation ([#26765](https://github.com/twentyhq/twenty/pull/26765)) by @FelixMalfait - feat(workflow): let an agent step pause on a question until someone answers ([#26766](https://github.com/twentyhq/twenty/pull/26766)) by @FelixMalfait - [BREAKING_CHANGE] Declare application registration variables through the manifest only ([#26856](https://github.com/twentyhq/twenty/pull/26856)) by @prastoin - Start a record's conversation from the record, and show a conversation's records in its header ([#26873](https://github.com/twentyhq/twenty/pull/26873)) by @FelixMalfait - Move product URLs out of twenty-ui ([#26908](https://github.com/twentyhq/twenty/pull/26908)) by @bosiraphael ## ✨ New features - feat: knip ([#26351](https://github.com/twentyhq/twenty/pull/26351)) by @BOHEUS - feat(slack): report a broken connection through the app health check ([#26414](https://github.com/twentyhq/twenty/pull/26414)) by @abdulrahmancodes - feat(ui): no unchecked indexed access twenty UI ([#26493](https://github.com/twentyhq/twenty/pull/26493)) by @BOHEUS - feat(shared): no unchecked indexed access twenty-shared ([#26495](https://github.com/twentyhq/twenty/pull/26495)) by @BOHEUS - feat(ai): add the Ask object for work waiting on a person ([#26767](https://github.com/twentyhq/twenty/pull/26767)) by @FelixMalfait - feat(workflow): a form step opens an Ask that its submission answers ([#26768](https://github.com/twentyhq/twenty/pull/26768)) by @FelixMalfait - feat(server): make the OTLP metrics temporality configurable ([#26857](https://github.com/twentyhq/twenty/pull/26857)) by @etiennejouan - feat(sdk): expose programmatic application client generation ([#26889](https://github.com/twentyhq/twenty/pull/26889)) by @Weiko - feat(mcp): add opt-in direct tool mode (?mode=direct) ([#26892](https://github.com/twentyhq/twenty/pull/26892)) by @UditSinghChauhan - feat(ai): let chat conversations be managed through the record API ([#26894](https://github.com/twentyhq/twenty/pull/26894)) by @FelixMalfait - feat(ai): answer every Ask through answerAsk, let agents propose emails and wait on several Asks at once ([#26930](https://github.com/twentyhq/twenty/pull/26930)) by @FelixMalfait ## 💅 Improvements & UX - Support matchMedia in front components ([#24160](https://github.com/twentyhq/twenty/pull/24160)) by @bosiraphael - Add List My Teams Transcripts action backed by a Microsoft Graph client ([#26315](https://github.com/twentyhq/twenty/pull/26315)) by @ehconitin - Migrate existing recording tab defaults to Transcript ([#26319](https://github.com/twentyhq/twenty/pull/26319)) by @ehconitin - [4/5] Show a record's AI conversations in a Conversations tab behind IS_CONVERSATIONS_TAB_ENABLED ([#26332](https://github.com/twentyhq/twenty/pull/26332)) by @FelixMalfait - Standardize twenty-shared page-layout type filenames ([#26370](https://github.com/twentyhq/twenty/pull/26370)) by @BOHEUS - Require the application role to cover every agent role ([#26413](https://github.com/twentyhq/twenty/pull/26413)) by @abdulrahmancodes - [rich-text] Keep formatting in rich text written by workflows ([#26445](https://github.com/twentyhq/twenty/pull/26445)) by @Bonapara - Polyfill matches, closest and querySelector in the front component worker ([#26516](https://github.com/twentyhq/twenty/pull/26516)) by @bosiraphael - Reflect remote element properties in getAttribute ([#26517](https://github.com/twentyhq/twenty/pull/26517)) by @bosiraphael - Polyfill Node.contains, compareDocumentPosition and getRootNode in the front component worker ([#26518](https://github.com/twentyhq/twenty/pull/26518)) by @bosiraphael - Support form state and focus in front components ([#26519](https://github.com/twentyhq/twenty/pull/26519)) by @bosiraphael - Respect account sync permissions in onboarding ([#26594](https://github.com/twentyhq/twenty/pull/26594)) by @bosiraphael - Run the call recorder calendar event reconcile in batch mode ([#26609](https://github.com/twentyhq/twenty/pull/26609)) by @ehconitin - Reconcile call recorder meetings from batched reads ([#26621](https://github.com/twentyhq/twenty/pull/26621)) by @ehconitin - Add email campaign guides ([#26629](https://github.com/twentyhq/twenty/pull/26629)) by @neo773 - Add the schema for campaign click tracking ([#26636](https://github.com/twentyhq/twenty/pull/26636)) by @neo773 - Rewrite campaign links through Twenty and serve the redirect ([#26637](https://github.com/twentyhq/twenty/pull/26637)) by @neo773 - Record campaign clicks ([#26638](https://github.com/twentyhq/twenty/pull/26638)) by @neo773 - Let recipients opt out of click tracking ([#26639](https://github.com/twentyhq/twenty/pull/26639)) by @neo773 - Delete indexes on deleted fields and clean up field-less index metadata ([#26714](https://github.com/twentyhq/twenty/pull/26714)) by @FelixMalfait - Fix e2e tests hidden behind the revoked shared session ([#26719](https://github.com/twentyhq/twenty/pull/26719)) by @FelixMalfait - Type the e2e window env and assert on workflow creation errors ([#26730](https://github.com/twentyhq/twenty/pull/26730)) by @FelixMalfait - Skip workspaces deleted during long-running upgrades ([#26741](https://github.com/twentyhq/twenty/pull/26741)) by @FelixMalfait - Remove legacy record sharing rollout policy ([#26756](https://github.com/twentyhq/twenty/pull/26756)) by @FelixMalfait - Use native workspace records throughout chat history ([#26760](https://github.com/twentyhq/twenty/pull/26760)) by @FelixMalfait - Use workspace members for live chat ownership ([#26763](https://github.com/twentyhq/twenty/pull/26763)) by @FelixMalfait - [Onboarding 1/10] Track credit rewards ([#26778](https://github.com/twentyhq/twenty/pull/26778)) by @Bonapara - [Onboarding 2/10] Raise trial credits ([#26779](https://github.com/twentyhq/twenty/pull/26779)) by @Bonapara - [Onboarding 3/10] Add credits pill ([#26780](https://github.com/twentyhq/twenty/pull/26780)) by @Bonapara - [Onboarding 6/10] Add skip dialogs ([#26781](https://github.com/twentyhq/twenty/pull/26781)) by @Bonapara - [Onboarding 7/10] Count credits live ([#26782](https://github.com/twentyhq/twenty/pull/26782)) by @Bonapara - [Onboarding 8/10] Redesign plan step ([#26783](https://github.com/twentyhq/twenty/pull/26783)) by @Bonapara - [Onboarding 8/8] Stabilize avatar colors ([#26785](https://github.com/twentyhq/twenty/pull/26785)) by @Bonapara - Serve the core workflow show page at /workflow/:id ([#26788](https://github.com/twentyhq/twenty/pull/26788)) by @thomtrp - Let workflows update custom fields on email and calendar records ([#26789](https://github.com/twentyhq/twenty/pull/26789)) by @Bonapara - Complete UI documentation and presentational previews ([#26791](https://github.com/twentyhq/twenty/pull/26791)) by @bosiraphael - Size auto-width Select dropdowns to the trigger ([#26792](https://github.com/twentyhq/twenty/pull/26792)) by @bosiraphael - Docs update ([#26793](https://github.com/twentyhq/twenty/pull/26793)) by @BOHEUS - Migrate settings filters, menus and pickers ([#26794](https://github.com/twentyhq/twenty/pull/26794)) by @bosiraphael - Add files, records and skills from the AI chat + menu ([#26797](https://github.com/twentyhq/twenty/pull/26797)) by @Bonapara - Anonymize workspace names and IDs in upgrade:status output by default ([#26799](https://github.com/twentyhq/twenty/pull/26799)) by @prastoin - Make UI utilities safe without browser globals ([#26802](https://github.com/twentyhq/twenty/pull/26802)) by @bosiraphael - Make retained UI strings overridable ([#26804](https://github.com/twentyhq/twenty/pull/26804)) by @bosiraphael - Complete RTL behavior in retained UI components ([#26805](https://github.com/twentyhq/twenty/pull/26805)) by @bosiraphael - Migrate anchored command and widget menus ([#26806](https://github.com/twentyhq/twenty/pull/26806)) by @bosiraphael - Fix CI Knip on main: delete unused agent history storage state re-exports ([#26807](https://github.com/twentyhq/twenty/pull/26807)) by @FelixMalfait - Add status check to ci-knip ([#26810](https://github.com/twentyhq/twenty/pull/26810)) by @prastoin - Drag and drop blocks in the campaign editor ([#26812](https://github.com/twentyhq/twenty/pull/26812)) by @neo773 - Call recorder: cancel the bot of a meeting whose calendar event was destroyed ([#26815](https://github.com/twentyhq/twenty/pull/26815)) by @vladbisceanu - Call recorder: reschedule a re-requested bot at once after a confirmed cancel ([#26818](https://github.com/twentyhq/twenty/pull/26818)) by @vladbisceanu - Fix core workflow QA feedback on actions, versions, runs and index ([#26820](https://github.com/twentyhq/twenty/pull/26820)) by @thomtrp - Allow duplicating application-owned core workflows ([#26828](https://github.com/twentyhq/twenty/pull/26828)) by @thomtrp - Fetch the latest S3 frontend HTML for each document request ([#26835](https://github.com/twentyhq/twenty/pull/26835)) by @FelixMalfait - Show Untitled, plain visibility and a page skeleton on core workflow pages ([#26836](https://github.com/twentyhq/twenty/pull/26836)) by @thomtrp - merge queue ci knip ([#26837](https://github.com/twentyhq/twenty/pull/26837)) by @prastoin - [rich-text] Compact record creation rich-text input, keeping BlockNote ([#26842](https://github.com/twentyhq/twenty/pull/26842)) by @thomtrp - Stop enabling IMAP4rev2 on IMAP connections ([#26843](https://github.com/twentyhq/twenty/pull/26843)) by @neo773 - Fix call recorder integration test token after generateApplicationToken removal ([#26855](https://github.com/twentyhq/twenty/pull/26855)) by @ehconitin - Align on-demand logic function runs with the workflow action rule ([#26860](https://github.com/twentyhq/twenty/pull/26860)) by @prastoin - [5/5] Let the AI chat attach its conversation to the records it is about ([#26862](https://github.com/twentyhq/twenty/pull/26862)) by @FelixMalfait - [Onboarding 4/10] Add credits popover ([#26871](https://github.com/twentyhq/twenty/pull/26871)) by @Bonapara - [Onboarding 5/10] Fit credits pill on phones ([#26872](https://github.com/twentyhq/twenty/pull/26872)) by @Bonapara - Animate the first AI chat message out of the composer ([#26890](https://github.com/twentyhq/twenty/pull/26890)) by @Bonapara - Restrict forwarded request headers on logic function route triggers ([#26891](https://github.com/twentyhq/twenty/pull/26891)) by @prastoin - Refresh twenty-ui README ([#26896](https://github.com/twentyhq/twenty/pull/26896)) by @bosiraphael - Migrate date pickers and field overlays ([#26897](https://github.com/twentyhq/twenty/pull/26897)) by @bosiraphael - Serve unsubscribe links from the server host when Cloudflare is not configured ([#26898](https://github.com/twentyhq/twenty/pull/26898)) by @neo773 - Rename AI Chat and AI Workflow usage to Chats and Agents ([#26899](https://github.com/twentyhq/twenty/pull/26899)) by @Bonapara - Keep UI implementation exports private ([#26900](https://github.com/twentyhq/twenty/pull/26900)) by @bosiraphael - Validation rules (1/2): define and store rules ([#26902](https://github.com/twentyhq/twenty/pull/26902)) by @thomtrp - Validation rules (2/2): enforce rules on record writes ([#26903](https://github.com/twentyhq/twenty/pull/26903)) by @thomtrp - Animate the sidebar when switching between Home, AI and Settings ([#26905](https://github.com/twentyhq/twenty/pull/26905)) by @Bonapara - Rename expandable container to Collapsible ([#26906](https://github.com/twentyhq/twenty/pull/26906)) by @bosiraphael - Call recorder: stop recovery from creating twin Recall bots ([#26909](https://github.com/twentyhq/twenty/pull/26909)) by @ehconitin - Deny settings access to applications without a default role instead of throwing a 500 ([#26910](https://github.com/twentyhq/twenty/pull/26910)) by @thomtrp - Keep notification countdowns in Toast ([#26912](https://github.com/twentyhq/twenty/pull/26912)) by @bosiraphael - Replace CircularProgressBar with Loader ([#26916](https://github.com/twentyhq/twenty/pull/26916)) by @bosiraphael - Keep where objects built in another realm, and refuse a where condition the builder cannot read ([#26919](https://github.com/twentyhq/twenty/pull/26919)) by @FelixMalfait - Replace ClickToActionLink with link-style Button ([#26921](https://github.com/twentyhq/twenty/pull/26921)) by @bosiraphael - Require registration ownership when exporting applications ([#26928](https://github.com/twentyhq/twenty/pull/26928)) by @Weiko - Clean up the conversations, Ask and 2.44 chat-thread code ([#26931](https://github.com/twentyhq/twenty/pull/26931)) by @FelixMalfait - Replace the principal-type auth guards with AuthPrincipalGuard ([#26936](https://github.com/twentyhq/twenty/pull/26936)) by @prastoin - Move coming-soon labels out of Button ([#26951](https://github.com/twentyhq/twenty/pull/26951)) by @bosiraphael - Move the chat page onto the record model ([#26956](https://github.com/twentyhq/twenty/pull/26956)) by @FelixMalfait - Stop the core workflow index from swapping its empty state for a bare table ([#26959](https://github.com/twentyhq/twenty/pull/26959)) by @thomtrp - Render the chat page as the chat record page ([#26960](https://github.com/twentyhq/twenty/pull/26960)) by @FelixMalfait - Consolidate card choices in Radio ([#26966](https://github.com/twentyhq/twenty/pull/26966)) by @bosiraphael - Replace Info with InlineBanner ([#26967](https://github.com/twentyhq/twenty/pull/26967)) by @bosiraphael - Enforce intentional Twenty UI exports ([#26971](https://github.com/twentyhq/twenty/pull/26971)) by @bosiraphael - Stop global shortcuts firing while typing a campaign subject ([#26975](https://github.com/twentyhq/twenty/pull/26975)) by @neo773 - Page running workflow runs in the 2.44 open-asks-for-pending-input command ([#26984](https://github.com/twentyhq/twenty/pull/26984)) by @FelixMalfait - Compose SearchInput with input primitives ([#26986](https://github.com/twentyhq/twenty/pull/26986)) by @bosiraphael - Move appearance choices into profile settings ([#26987](https://github.com/twentyhq/twenty/pull/26987)) by @bosiraphael - Replace inputAsk with pending tool calls on the conversation ([#26988](https://github.com/twentyhq/twenty/pull/26988)) by @FelixMalfait - Remap step variable references when duplicating a workflow ([#26990](https://github.com/twentyhq/twenty/pull/26990)) by @thomtrp - Move RoundedLink to the frontend ([#26991](https://github.com/twentyhq/twenty/pull/26991)) by @bosiraphael - Remove twenty-ui changelog ([#26993](https://github.com/twentyhq/twenty/pull/26993)) by @bosiraphael - Open record sharing in the side panel ([#26995](https://github.com/twentyhq/twenty/pull/26995)) by @FelixMalfait - Use native buttons for JSON and avatar actions ([#26997](https://github.com/twentyhq/twenty/pull/26997)) by @bosiraphael - Keep notes and tasks attached to nothing readable by every member ([#27002](https://github.com/twentyhq/twenty/pull/27002)) by @FelixMalfait ## 🐛 Bug fixes - fix(front): record page pagination on views sorted by a boolean field ([#26500](https://github.com/twentyhq/twenty/pull/26500)) by @BOHEUS - fix(twenty-orm): capture all deleted records in batch delete event payload ([#26502](https://github.com/twentyhq/twenty/pull/26502)) by @Mateidslx - fix(billing): identify subscription items by product key, not by quantity ([#26635](https://github.com/twentyhq/twenty/pull/26635)) by @etiennejouan - fix: limit record export concurrency across workers ([#26665](https://github.com/twentyhq/twenty/pull/26665)) by @Weiko - fix(ai-chat): show workspace-scoped AI limits and warn before the composer ([#26674](https://github.com/twentyhq/twenty/pull/26674)) by @etiennejouan - fix(upgrade): stop dry runs from executing instance commands ([#26693](https://github.com/twentyhq/twenty/pull/26693)) by @Weiko - fix(twenty-ui): keep IconButton tooltips on hover after loading or disabled changes ([#26710](https://github.com/twentyhq/twenty/pull/26710)) by @martmull - fix(ci): gate the secure integration suite with nx affected ([#26717](https://github.com/twentyhq/twenty/pull/26717)) by @FelixMalfait - fix(workflow): ignore empty-name normalization in drift checks ([#26724](https://github.com/twentyhq/twenty/pull/26724)) by @FelixMalfait - fix(workflow): make a private workflow's runs private too ([#26761](https://github.com/twentyhq/twenty/pull/26761)) by @FelixMalfait - fix(mcp): support per-option grouping for multi-select fields ([#26787](https://github.com/twentyhq/twenty/pull/26787)) by @waelantar - fix: fall back to unconditional copy when S3 backend rejects CopySourceIfMatch ([#26830](https://github.com/twentyhq/twenty/pull/26830)) by @FelixMalfait - fix(ai): price multi-step turns step by step ([#26882](https://github.com/twentyhq/twenty/pull/26882)) by @etiennejouan - fix(billing): hide all operations option when a usage has a single operation ([#26888](https://github.com/twentyhq/twenty/pull/26888)) by @etiennejouan - fix(billing): skip the Stripe update when prices and seats are unchanged ([#26907](https://github.com/twentyhq/twenty/pull/26907)) by @etiennejouan - fix(workspace-cleaner): serialize workspace destruction on a dedicated queue ([#26911](https://github.com/twentyhq/twenty/pull/26911)) by @etiennejouan - fix(search): restrict ILIKE fallback to CJK input ([#26926](https://github.com/twentyhq/twenty/pull/26926)) by @Weiko - fix(ai): pass the thread record event service in the pending-question spec ([#26927](https://github.com/twentyhq/twenty/pull/26927)) by @FelixMalfait - fix(upgrade): reapply the usageLimit period reshape skipped by 2.38.x instances ([#26958](https://github.com/twentyhq/twenty/pull/26958)) by @etiennejouan - fix(ai-chat): stop failing replies on recovered tool errors and group AI SDK errors in Sentry ([#26989](https://github.com/twentyhq/twenty/pull/26989)) by @etiennejouan - fix(usage-limit): key quota counters on their limit value ([#26996](https://github.com/twentyhq/twenty/pull/26996)) by @etiennejouan - fix: keep chats and forms usable during workspace upgrades ([#27005](https://github.com/twentyhq/twenty/pull/27005)) by @FelixMalfait - fix(front): keep the timeline group bar behind the icons in RTL ([#27007](https://github.com/twentyhq/twenty/pull/27007)) by @almoghazaz-cell ## 🔧 Developer & API - Expose programmatic SDK build and typecheck APIs ([#26824](https://github.com/twentyhq/twenty/pull/26824)) by @Weiko - Load the chat list through the record API ([#26957](https://github.com/twentyhq/twenty/pull/26957)) by @FelixMalfait <details> <summary>🏗️ Internal changes (6)</summary> - refactor(ai): isolate agent history migration state from runtime ([#26752](https://github.com/twentyhq/twenty/pull/26752)) by @FelixMalfait - refactor(ai): remove transitional sender insert preparation ([#26753](https://github.com/twentyhq/twenty/pull/26753)) by @FelixMalfait - refactor(ai): retire runtime history routing and lifecycle state ([#26754](https://github.com/twentyhq/twenty/pull/26754)) by @FelixMalfait - test(ai): replay the archivedAt writability upgrade after the agent history spec rebuilds the chat objects ([#26934](https://github.com/twentyhq/twenty/pull/26934)) by @FelixMalfait - chore(front): remove Effect component tests ([#26963](https://github.com/twentyhq/twenty/pull/26963)) by @charlesBochet - test(apps): remove the unsupported icon from the function-execute fixture ([#27008](https://github.com/twentyhq/twenty/pull/27008)) by @Weiko </details> ## 🎉 New contributors - @vladbisceanu made their first contribution in https://github.com/twentyhq/twenty/pull/26818 - @waelantar made their first contribution in https://github.com/twentyhq/twenty/pull/26787 - @UditSinghChauhan made their first contribution in https://github.com/twentyhq/twenty/pull/26892 - @almoghazaz-cell made their first contribution in https://github.com/twentyhq/twenty/pull/27007 <details> <summary>Full changelog (165 PRs)</summary> - Support matchMedia in front components ([#24160](https://github.com/twentyhq/twenty/pull/24160)) by @bosiraphael - Add List My Teams Transcripts action backed by a Microsoft Graph client ([#26315](https://github.com/twentyhq/twenty/pull/26315)) by @ehconitin - Migrate existing recording tab defaults to Transcript ([#26319](https://github.com/twentyhq/twenty/pull/26319)) by @ehconitin - [4/5] Show a record's AI conversations in a Conversations tab behind IS_CONVERSATIONS_TAB_ENABLED ([#26332](https://github.com/twentyhq/twenty/pull/26332)) by @FelixMalfait - feat: knip ([#26351](https://github.com/twentyhq/twenty/pull/26351)) by @BOHEUS - Standardize twenty-shared page-layout type filenames ([#26370](https://github.com/twentyhq/twenty/pull/26370)) by @BOHEUS - Require the application role to cover every agent role ([#26413](https://github.com/twentyhq/twenty/pull/26413)) by @abdulrahmancodes - feat(slack): report a broken connection through the app health check ([#26414](https://github.com/twentyhq/twenty/pull/26414)) by @abdulrahmancodes - [rich-text] Keep formatting in rich text written by workflows ([#26445](https://github.com/twentyhq/twenty/pull/26445)) by @Bonapara - feat(ui): no unchecked indexed access twenty UI ([#26493](https://github.com/twentyhq/twenty/pull/26493)) by @BOHEUS - feat(shared): no unchecked indexed access twenty-shared ([#26495](https://github.com/twentyhq/twenty/pull/26495)) by @BOHEUS - fix(front): record page pagination on views sorted by a boolean field ([#26500](https://github.com/twentyhq/twenty/pull/26500)) by @BOHEUS - fix(twenty-orm): capture all deleted records in batch delete event payload ([#26502](https://github.com/twentyhq/twenty/pull/26502)) by @Mateidslx - Polyfill matches, closest and querySelector in the front component worker ([#26516](https://github.com/twentyhq/twenty/pull/26516)) by @bosiraphael - Reflect remote element properties in getAttribute ([#26517](https://github.com/twentyhq/twenty/pull/26517)) by @bosiraphael - Polyfill Node.contains, compareDocumentPosition and getRootNode in the front component worker ([#26518](https://github.com/twentyhq/twenty/pull/26518)) by @bosiraphael - Support form state and focus in front components ([#26519](https://github.com/twentyhq/twenty/pull/26519)) by @bosiraphael - Respect account sync permissions in onboarding ([#26594](https://github.com/twentyhq/twenty/pull/26594)) by @bosiraphael - Run the call recorder calendar event reconcile in batch mode ([#26609](https://github.com/twentyhq/twenty/pull/26609)) by @ehconitin - Reconcile call recorder meetings from batched reads ([#26621](https://github.com/twentyhq/twenty/pull/26621)) by @ehconitin - Add email campaign guides ([#26629](https://github.com/twentyhq/twenty/pull/26629)) by @neo773 - fix(billing): identify subscription items by product key, not by quantity ([#26635](https://github.com/twentyhq/twenty/pull/26635)) by @etiennejouan - Add the schema for campaign click tracking ([#26636](https://github.com/twentyhq/twenty/pull/26636)) by @neo773 - Rewrite campaign links through Twenty and serve the redirect ([#26637](https://github.com/twentyhq/twenty/pull/26637)) by @neo773 - Record campaign clicks ([#26638](https://github.com/twentyhq/twenty/pull/26638)) by @neo773 - Let recipients opt out of click tracking ([#26639](https://github.com/twentyhq/twenty/pull/26639)) by @neo773 - fix: limit record export concurrency across workers ([#26665](https://github.com/twentyhq/twenty/pull/26665)) by @Weiko - fix(ai-chat): show workspace-scoped AI limits and warn before the composer ([#26674](https://github.com/twentyhq/twenty/pull/26674)) by @etiennejouan - fix(upgrade): stop dry runs from executing instance commands ([#26693](https://github.com/twentyhq/twenty/pull/26693)) by @Weiko - fix(twenty-ui): keep IconButton tooltips on hover after loading or disabled changes ([#26710](https://github.com/twentyhq/twenty/pull/26710)) by @martmull - i18n - translations ([#26713](https://github.com/twentyhq/twenty/pull/26713)) by @github-actions - Delete indexes on deleted fields and clean up field-less index metadata ([#26714](https://github.com/twentyhq/twenty/pull/26714)) by @FelixMalfait - fix(ci): gate the secure integration suite with nx affected ([#26717](https://github.com/twentyhq/twenty/pull/26717)) by @FelixMalfait - Fix e2e tests hidden behind the revoked shared session ([#26719](https://github.com/twentyhq/twenty/pull/26719)) by @FelixMalfait - chore: bump version to 2.44.0 ([#26720](https://github.com/twentyhq/twenty/pull/26720)) by @twenty-pr - fix(workflow): ignore empty-name normalization in drift checks ([#26724](https://github.com/twentyhq/twenty/pull/26724)) by @FelixMalfait - Type the e2e window env and assert on workflow creation errors ([#26730](https://github.com/twentyhq/twenty/pull/26730)) by @FelixMalfait - chore: sync AI model catalog ([#26739](https://github.com/twentyhq/twenty/pull/26739)) by @github-actions - Skip workspaces deleted during long-running upgrades ([#26741](https://github.com/twentyhq/twenty/pull/26741)) by @FelixMalfait - i18n - docs translations ([#26747](https://github.com/twentyhq/twenty/pull/26747)) by @github-actions - refactor(ai): isolate agent history migration state from runtime ([#26752](https://github.com/twentyhq/twenty/pull/26752)) by @FelixMalfait - refactor(ai): remove transitional sender insert preparation ([#26753](https://github.com/twentyhq/twenty/pull/26753)) by @FelixMalfait - refactor(ai): retire runtime history routing and lifecycle state ([#26754](https://github.com/twentyhq/twenty/pull/26754)) by @FelixMalfait - Remove legacy record sharing rollout policy ([#26756](https://github.com/twentyhq/twenty/pull/26756)) by @FelixMalfait - Use native workspace records throughout chat history ([#26760](https://github.com/twentyhq/twenty/pull/26760)) by @FelixMalfait - fix(workflow): make a private workflow's runs private too ([#26761](https://github.com/twentyhq/twenty/pull/26761)) by @FelixMalfait - Use workspace members for live chat ownership ([#26763](https://github.com/twentyhq/twenty/pull/26763)) by @FelixMalfait - feat(workflow): record each agent step execution as a conversation ([#26765](https://github.com/twentyhq/twenty/pull/26765)) by @FelixMalfait - feat(workflow): let an agent step pause on a question until someone answers ([#26766](https://github.com/twentyhq/twenty/pull/26766)) by @FelixMalfait - feat(ai): add the Ask object for work waiting on a person ([#26767](https://github.com/twentyhq/twenty/pull/26767)) by @FelixMalfait - feat(workflow): a form step opens an Ask that its submission answers ([#26768](https://github.com/twentyhq/twenty/pull/26768)) by @FelixMalfait - chore: sync AI model catalog ([#26771](https://github.com/twentyhq/twenty/pull/26771)) by @github-actions - [Onboarding 1/10] Track credit rewards ([#26778](https://github.com/twentyhq/twenty/pull/26778)) by @Bonapara - [Onboarding 2/10] Raise trial credits ([#26779](https://github.com/twentyhq/twenty/pull/26779)) by @Bonapara - [Onboarding 3/10] Add credits pill ([#26780](https://github.com/twentyhq/twenty/pull/26780)) by @Bonapara - [Onboarding 6/10] Add skip dialogs ([#26781](https://github.com/twentyhq/twenty/pull/26781)) by @Bonapara - [Onboarding 7/10] Count credits live ([#26782](https://github.com/twentyhq/twenty/pull/26782)) by @Bonapara - [Onboarding 8/10] Redesign plan step ([#26783](https://github.com/twentyhq/twenty/pull/26783)) by @Bonapara - [Onboarding 8/8] Stabilize avatar colors ([#26785](https://github.com/twentyhq/twenty/pull/26785)) by @Bonapara - fix(mcp): support per-option grouping for multi-select fields ([#26787](https://github.com/twentyhq/twenty/pull/26787)) by @waelantar - Serve the core workflow show page at /workflow/:id ([#26788](https://github.com/twentyhq/twenty/pull/26788)) by @thomtrp - Let workflows update custom fields on email and calendar records ([#26789](https://github.com/twentyhq/twenty/pull/26789)) by @Bonapara - i18n - translations ([#26790](https://github.com/twentyhq/twenty/pull/26790)) by @github-actions - Complete UI documentation and presentational previews ([#26791](https://github.com/twentyhq/twenty/pull/26791)) by @bosiraphael - Size auto-width Select dropdowns to the trigger ([#26792](https://github.com/twentyhq/twenty/pull/26792)) by @bosiraphael - Docs update ([#26793](https://github.com/twentyhq/twenty/pull/26793)) by @BOHEUS - Migrate settings filters, menus and pickers ([#26794](https://github.com/twentyhq/twenty/pull/26794)) by @bosiraphael - Add files, records and skills from the AI chat + menu ([#26797](https://github.com/twentyhq/twenty/pull/26797)) by @Bonapara - Anonymize workspace names and IDs in upgrade:status output by default ([#26799](https://github.com/twentyhq/twenty/pull/26799)) by @prastoin - i18n - translations ([#26801](https://github.com/twentyhq/twenty/pull/26801)) by @github-actions - Make UI utilities safe without browser globals ([#26802](https://github.com/twentyhq/twenty/pull/26802)) by @bosiraphael - Make retained UI strings overridable ([#26804](https://github.com/twentyhq/twenty/pull/26804)) by @bosiraphael - Complete RTL behavior in retained UI components ([#26805](https://github.com/twentyhq/twenty/pull/26805)) by @bosiraphael - Migrate anchored command and widget menus ([#26806](https://github.com/twentyhq/twenty/pull/26806)) by @bosiraphael - Fix CI Knip on main: delete unused agent history storage state re-exports ([#26807](https://github.com/twentyhq/twenty/pull/26807)) by @FelixMalfait - Add status check to ci-knip ([#26810](https://github.com/twentyhq/twenty/pull/26810)) by @prastoin - Drag and drop blocks in the campaign editor ([#26812](https://github.com/twentyhq/twenty/pull/26812)) by @neo773 - Call recorder: cancel the bot of a meeting whose calendar event was destroyed ([#26815](https://github.com/twentyhq/twenty/pull/26815)) by @vladbisceanu - Call recorder: reschedule a re-requested bot at once after a confirmed cancel ([#26818](https://github.com/twentyhq/twenty/pull/26818)) by @vladbisceanu - Fix core workflow QA feedback on actions, versions, runs and index ([#26820](https://github.com/twentyhq/twenty/pull/26820)) by @thomtrp - Expose programmatic SDK build and typecheck APIs ([#26824](https://github.com/twentyhq/twenty/pull/26824)) by @Weiko - i18n - translations ([#26825](https://github.com/twentyhq/twenty/pull/26825)) by @github-actions - i18n - translations ([#26826](https://github.com/twentyhq/twenty/pull/26826)) by @github-actions - Allow duplicating application-owned core workflows ([#26828](https://github.com/twentyhq/twenty/pull/26828)) by @thomtrp - fix: fall back to unconditional copy when S3 backend rejects CopySourceIfMatch ([#26830](https://github.com/twentyhq/twenty/pull/26830)) by @FelixMalfait - i18n - translations ([#26833](https://github.com/twentyhq/twenty/pull/26833)) by @github-actions - Fetch the latest S3 frontend HTML for each document request ([#26835](https://github.com/twentyhq/twenty/pull/26835)) by @FelixMalfait - Show Untitled, plain visibility and a page skeleton on core workflow pages ([#26836](https://github.com/twentyhq/twenty/pull/26836)) by @thomtrp - merge queue ci knip ([#26837](https://github.com/twentyhq/twenty/pull/26837)) by @prastoin - i18n - translations ([#26839](https://github.com/twentyhq/twenty/pull/26839)) by @github-actions - i18n - translations ([#26840](https://github.com/twentyhq/twenty/pull/26840)) by @github-actions - i18n - translations ([#26841](https://github.com/twentyhq/twenty/pull/26841)) by @github-actions - [rich-text] Compact record creation rich-text input, keeping BlockNote ([#26842](https://github.com/twentyhq/twenty/pull/26842)) by @thomtrp - Stop enabling IMAP4rev2 on IMAP connections ([#26843](https://github.com/twentyhq/twenty/pull/26843)) by @neo773 - Fix call recorder integration test token after generateApplicationToken removal ([#26855](https://github.com/twentyhq/twenty/pull/26855)) by @ehconitin - [BREAKING_CHANGE] Declare application registration variables through the manifest only ([#26856](https://github.com/twentyhq/twenty/pull/26856)) by @prastoin - feat(server): make the OTLP metrics temporality configurable ([#26857](https://github.com/twentyhq/twenty/pull/26857)) by @etiennejouan - i18n - translations ([#26858](https://github.com/twentyhq/twenty/pull/26858)) by @github-actions - Align on-demand logic function runs with the workflow action rule ([#26860](https://github.com/twentyhq/twenty/pull/26860)) by @prastoin - i18n - translations ([#26861](https://github.com/twentyhq/twenty/pull/26861)) by @github-actions - [5/5] Let the AI chat attach its conversation to the records it is about ([#26862](https://github.com/twentyhq/twenty/pull/26862)) by @FelixMalfait - i18n - translations ([#26863](https://github.com/twentyhq/twenty/pull/26863)) by @github-actions - [Onboarding 4/10] Add credits popover ([#26871](https://github.com/twentyhq/twenty/pull/26871)) by @Bonapara - [Onboarding 5/10] Fit credits pill on phones ([#26872](https://github.com/twentyhq/twenty/pull/26872)) by @Bonapara - Start a record's conversation from the record, and show a conversation's records in its header ([#26873](https://github.com/twentyhq/twenty/pull/26873)) by @FelixMalfait - chore: sync AI model catalog ([#26878](https://github.com/twentyhq/twenty/pull/26878)) by @github-actions - fix(ai): price multi-step turns step by step ([#26882](https://github.com/twentyhq/twenty/pull/26882)) by @etiennejouan - fix(billing): hide all operations option when a usage has a single operation ([#26888](https://github.com/twentyhq/twenty/pull/26888)) by @etiennejouan - feat(sdk): expose programmatic application client generation ([#26889](https://github.com/twentyhq/twenty/pull/26889)) by @Weiko - Animate the first AI chat message out of the composer ([#26890](https://github.com/twentyhq/twenty/pull/26890)) by @Bonapara - Restrict forwarded request headers on logic function route triggers ([#26891](https://github.com/twentyhq/twenty/pull/26891)) by @prastoin - feat(mcp): add opt-in direct tool mode (?mode=direct) ([#26892](https://github.com/twentyhq/twenty/pull/26892)) by @UditSinghChauhan - feat(ai): let chat conversations be managed through the record API ([#26894](https://github.com/twentyhq/twenty/pull/26894)) by @FelixMalfait - Refresh twenty-ui README ([#26896](https://github.com/twentyhq/twenty/pull/26896)) by @bosiraphael - Migrate date pickers and field overlays ([#26897](https://github.com/twentyhq/twenty/pull/26897)) by @bosiraphael - Serve unsubscribe links from the server host when Cloudflare is not configured ([#26898](https://github.com/twentyhq/twenty/pull/26898)) by @neo773 - Rename AI Chat and AI Workflow usage to Chats and Agents ([#26899](https://github.com/twentyhq/twenty/pull/26899)) by @Bonapara - Keep UI implementation exports private ([#26900](https://github.com/twentyhq/twenty/pull/26900)) by @bosiraphael - Validation rules (1/2): define and store rules ([#26902](https://github.com/twentyhq/twenty/pull/26902)) by @thomtrp - Validation rules (2/2): enforce rules on record writes ([#26903](https://github.com/twentyhq/twenty/pull/26903)) by @thomtrp - Animate the sidebar when switching between Home, AI and Settings ([#26905](https://github.com/twentyhq/twenty/pull/26905)) by @Bonapara - Rename expandable container to Collapsible ([#26906](https://github.com/twentyhq/twenty/pull/26906)) by @bosiraphael - fix(billing): skip the Stripe update when prices and seats are unchanged ([#26907](https://github.com/twentyhq/twenty/pull/26907)) by @etiennejouan - Move product URLs out of twenty-ui ([#26908](https://github.com/twentyhq/twenty/pull/26908)) by @bosiraphael - Call recorder: stop recovery from creating twin Recall bots ([#26909](https://github.com/twentyhq/twenty/pull/26909)) by @ehconitin - Deny settings access to applications without a default role instead of throwing a 500 ([#26910](https://github.com/twentyhq/twenty/pull/26910)) by @thomtrp - fix(workspace-cleaner): serialize workspace destruction on a dedicated queue ([#26911](https://github.com/twentyhq/twenty/pull/26911)) by @etiennejouan - Keep notification countdowns in Toast ([#26912](https://github.com/twentyhq/twenty/pull/26912)) by @bosiraphael - Replace CircularProgressBar with Loader ([#26916](https://github.com/twentyhq/twenty/pull/26916)) by @bosiraphael - Keep where objects built in another realm, and refuse a where condition the builder cannot read ([#26919](https://github.com/twentyhq/twenty/pull/26919)) by @FelixMalfait - Replace ClickToActionLink with link-style Button ([#26921](https://github.com/twentyhq/twenty/pull/26921)) by @bosiraphael - fix(search): restrict ILIKE fallback to CJK input ([#26926](https://github.com/twentyhq/twenty/pull/26926)) by @Weiko - fix(ai): pass the thread record event service in the pending-question spec ([#26927](https://github.com/twentyhq/twenty/pull/26927)) by @FelixMalfait - Require registration ownership when exporting applications ([#26928](https://github.com/twentyhq/twenty/pull/26928)) by @Weiko - feat(ai): answer every Ask through answerAsk, let agents propose emails and wait on several Asks at once ([#26930](https://github.com/twentyhq/twenty/pull/26930)) by @FelixMalfait - Clean up the conversations, Ask and 2.44 chat-thread code ([#26931](https://github.com/twentyhq/twenty/pull/26931)) by @FelixMalfait - test(ai): replay the archivedAt writability upgrade after the agent history spec rebuilds the chat objects ([#26934](https://github.com/twentyhq/twenty/pull/26934)) by @FelixMalfait - Replace the principal-type auth guards with AuthPrincipalGuard ([#26936](https://github.com/twentyhq/twenty/pull/26936)) by @prastoin - chore: sync AI model catalog ([#26950](https://github.com/twentyhq/twenty/pull/26950)) by @github-actions - Move coming-soon labels out of Button ([#26951](https://github.com/twentyhq/twenty/pull/26951)) by @bosiraphael - Move the chat page onto the record model ([#26956](https://github.com/twentyhq/twenty/pull/26956)) by @FelixMalfait - Load the chat list through the record API ([#26957](https://github.com/twentyhq/twenty/pull/26957)) by @FelixMalfait - fix(upgrade): reapply the usageLimit period reshape skipped by 2.38.x instances ([#26958](https://github.com/twentyhq/twenty/pull/26958)) by @etiennejouan - Stop the core workflow index from swapping its empty state for a bare table ([#26959](https://github.com/twentyhq/twenty/pull/26959)) by @thomtrp - Render the chat page as the chat record page ([#26960](https://github.com/twentyhq/twenty/pull/26960)) by @FelixMalfait - chore(front): remove Effect component tests ([#26963](https://github.com/twentyhq/twenty/pull/26963)) by @charlesBochet - Consolidate card choices in Radio ([#26966](https://github.com/twentyhq/twenty/pull/26966)) by @bosiraphael - Replace Info with InlineBanner ([#26967](https://github.com/twentyhq/twenty/pull/26967)) by @bosiraphael - Enforce intentional Twenty UI exports ([#26971](https://github.com/twentyhq/twenty/pull/26971)) by @bosiraphael - Stop global shortcuts firing while typing a campaign subject ([#26975](https://github.com/twentyhq/twenty/pull/26975)) by @neo773 - Page running workflow runs in the 2.44 open-asks-for-pending-input command ([#26984](https://github.com/twentyhq/twenty/pull/26984)) by @FelixMalfait - Compose SearchInput with input primitives ([#26986](https://github.com/twentyhq/twenty/pull/26986)) by @bosiraphael - Move appearance choices into profile settings ([#26987](https://github.com/twentyhq/twenty/pull/26987)) by @bosiraphael - Replace inputAsk with pending tool calls on the conversation ([#26988](https://github.com/twentyhq/twenty/pull/26988)) by @FelixMalfait - fix(ai-chat): stop failing replies on recovered tool errors and group AI SDK errors in Sentry ([#26989](https://github.com/twentyhq/twenty/pull/26989)) by @etiennejouan - Remap step variable references when duplicating a workflow ([#26990](https://github.com/twentyhq/twenty/pull/26990)) by @thomtrp - Move RoundedLink to the frontend ([#26991](https://github.com/twentyhq/twenty/pull/26991)) by @bosiraphael - Remove twenty-ui changelog ([#26993](https://github.com/twentyhq/twenty/pull/26993)) by @bosiraphael - Open record sharing in the side panel ([#26995](https://github.com/twentyhq/twenty/pull/26995)) by @FelixMalfait - fix(usage-limit): key quota counters on their limit value ([#26996](https://github.com/twentyhq/twenty/pull/26996)) by @etiennejouan - Use native buttons for JSON and avatar actions ([#26997](https://github.com/twentyhq/twenty/pull/26997)) by @bosiraphael - Keep notes and tasks attached to nothing readable by every member ([#27002](https://github.com/twentyhq/twenty/pull/27002)) by @FelixMalfait - fix: keep chats and forms usable during workspace upgrades ([#27005](https://github.com/twentyhq/twenty/pull/27005)) by @FelixMalfait - fix(front): keep the timeline group bar behind the icons in RTL ([#27007](https://github.com/twentyhq/twenty/pull/27007)) by @almoghazaz-cell - test(apps): remove the unsupported icon from the function-execute fixture ([#27008](https://github.com/twentyhq/twenty/pull/27008)) by @Weiko </details> **Full Changelog**: https://github.com/twentyhq/twenty/compare/twenty/v2.43.0...twenty/v2.44.0
Related Repositories
public-apis/public-apis★ 491,124
A collective list of free APIs
NousResearch/hermes-agent★ 255,889
The agent that grows with you
yt-dlp/yt-dlp★ 199,987
A feature-rich command-line audio/video downloader
microsoft/markitdown★ 191,478
Python tool for converting files and office documents to Markdown.
Significant-Gravitas/AutoGPT★ 187,699
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.