twenty/v2.40.0
tremorlabs/tremortwenty/v2.40.0Sep 15, 2026by twenty-pr[bot]
Upgrading?
AI Summary
This release focuses on improving workflow management through the Core API and enhancing the AI chat experience with a new model picker slider. It also introduces usage quota tracking and improvements to the call recorder.
Key Highlights
- Workflow management is now accessible via the Core API (create, read, delete, bulk select).
- AI model pickers are replaced by a five-tier slider system.
- Usage limits now track quota admits and credits.
- Call recorder gets a toggle to send bots to all meetings.
Breaking Changes
- Track application installs and uninstalls with deterministic queue jobs
- feat(ai): replace model pickers with a five-tier model slider
New Features
- Expose isSearchable on field metadata and make the object search section editable
- Render the record creation form behind a flag
- Let apps report a connection auth failure with a reason
- Select core workflows and delete them in bulk
- Toggle to send the bot to all calendar meetings
- Branch the assistant failure reply on the failure kind
- Add create/complete file upload action tools for MCP
- Quota limits over the credit allowance period
- Count quota admits on failure and the credits they let through
- Point the channel welcome at the DM as the private path
- Add audio playback fallback for call recordings
- Create and delete workflows through the core API
- Read the workflow show page through the core API
- Cap webhook calls per workspace at enqueue time
- Show the thinking status before the assistant context lookups
- Defer rate limited message delivery to a delayed job
- Run server route dispatch jobs ahead of the trigger fan-out
- Answer the assistant request in the execution that records it
- Hint @ and / in composer placeholder, add / skill suggestions
- Split agent-only skills from user skills, rewrite the catalog
Full Release Notes
<!-- generated-release-notes v1 --> ## β οΈ Breaking changes - Track application installs and uninstalls with deterministic queue jobs ([#25502](https://github.com/twentyhq/twenty/pull/25502)) by @martmull - feat(ai): replace model pickers with a five-tier model slider ([#25721](https://github.com/twentyhq/twenty/pull/25721)) by @FelixMalfait ## β¨ New features - feat(search): expose isSearchable on field metadata and make the object search section editable ([#25166](https://github.com/twentyhq/twenty/pull/25166)) by @prastoin - feat(record-form): render the record creation form behind a flag ([#25203](https://github.com/twentyhq/twenty/pull/25203)) by @thomtrp - feat(core): let apps report a connection auth failure with a reason ([#25297](https://github.com/twentyhq/twenty/pull/25297)) by @abdulrahmancodes - feat(workflow): polish the core workflows index and gate workflow run workspace relations ([#25356](https://github.com/twentyhq/twenty/pull/25356)) by @thomtrp - feat(workflow): select core workflows and delete them in bulk ([#25415](https://github.com/twentyhq/twenty/pull/25415)) by @thomtrp - feat(call-recorder): toggle to send the bot to all calendar meetings ([#25431](https://github.com/twentyhq/twenty/pull/25431)) by @ehconitin - feat(slack): branch the assistant failure reply on the failure kind ([#25484](https://github.com/twentyhq/twenty/pull/25484)) by @abdulrahmancodes - feat: add create/complete file upload action tools for MCP ([#25503](https://github.com/twentyhq/twenty/pull/25503)) by @Lakshayyy-m - feat(usage-limit): quota limits over the credit allowance period ([#25526](https://github.com/twentyhq/twenty/pull/25526)) by @etiennejouan - feat(usage-limit): count quota admits on failure and the credits they let through ([#25546](https://github.com/twentyhq/twenty/pull/25546)) by @etiennejouan - feat(slack): point the channel welcome at the DM as the private path ([#25585](https://github.com/twentyhq/twenty/pull/25585)) by @abdulrahmancodes - feat: add audio playback fallback for call recordings ([#25592](https://github.com/twentyhq/twenty/pull/25592)) by @ehconitin - feat(workflow): create and delete workflows through the core API ([#25626](https://github.com/twentyhq/twenty/pull/25626)) by @thomtrp - feat(workflow): read the workflow show page through the core API ([#25669](https://github.com/twentyhq/twenty/pull/25669)) by @thomtrp - feat(usage-limit): cap webhook calls per workspace at enqueue time ([#25673](https://github.com/twentyhq/twenty/pull/25673)) by @etiennejouan - feat(slack): show the thinking status before the assistant context lookups ([#25676](https://github.com/twentyhq/twenty/pull/25676)) by @abdulrahmancodes - feat(workflow): add coreWorkflowId to core workflow versions ([#25679](https://github.com/twentyhq/twenty/pull/25679)) by @thomtrp - feat(slack): defer rate limited message delivery to a delayed job ([#25700](https://github.com/twentyhq/twenty/pull/25700)) by @abdulrahmancodes - feat(server): run server route dispatch jobs ahead of the trigger fan-out ([#25701](https://github.com/twentyhq/twenty/pull/25701)) by @abdulrahmancodes - feat(slack): answer the assistant request in the execution that records it ([#25702](https://github.com/twentyhq/twenty/pull/25702)) by @abdulrahmancodes - feat(ai-chat): hint @ and / in composer placeholder, add / skill suggestions ([#25778](https://github.com/twentyhq/twenty/pull/25778)) by @FelixMalfait - feat(skills): split agent-only skills from user skills, rewrite the catalog ([#25798](https://github.com/twentyhq/twenty/pull/25798)) by @FelixMalfait ## π Improvements & UX - Alias native worker APIs onto window in front components ([#24190](https://github.com/twentyhq/twenty/pull/24190)) by @bosiraphael - Support classList in front components ([#24191](https://github.com/twentyhq/twenty/pull/24191)) by @bosiraphael - Make the Fathom app publishable and rewrite its listing copy ([#25325](https://github.com/twentyhq/twenty/pull/25325)) by @ehconitin - Fix delayed view deletion feedback ([#25344](https://github.com/twentyhq/twenty/pull/25344)) by @Bonapara - Add field description tooltips ([#25408](https://github.com/twentyhq/twenty/pull/25408)) by @Bonapara - Extract email body text without building a DOM ([#25422](https://github.com/twentyhq/twenty/pull/25422)) by @neo773 - Record sharing 2/14: add the recordShare hidden standard object and its service ([#25425](https://github.com/twentyhq/twenty/pull/25425)) by @martmull - Record sharing 3/14: gate reads and writes on private objects with record share rows ([#25426](https://github.com/twentyhq/twenty/pull/25426)) by @martmull - Record sharing 4/14: let a create state who may read the record with shareWith ([#25428](https://github.com/twentyhq/twenty/pull/25428)) by @martmull - Add Fathom media storage foundation ([#25432](https://github.com/twentyhq/twenty/pull/25432)) by @ehconitin - Import Fathom recording media asynchronously ([#25433](https://github.com/twentyhq/twenty/pull/25433)) by @ehconitin - Reconcile stale Fathom media imports ([#25434](https://github.com/twentyhq/twenty/pull/25434)) by @ehconitin - Migrate existing Canvas tabs to vertical lists ([#25511](https://github.com/twentyhq/twenty/pull/25511)) by @Bonapara - Support explicit widget height behavior ([#25512](https://github.com/twentyhq/twenty/pull/25512)) by @Bonapara - Simplify page layout manifest authoring ([#25513](https://github.com/twentyhq/twenty/pull/25513)) by @Bonapara - Use existing component for AI chat warnings ([#25519](https://github.com/twentyhq/twenty/pull/25519)) by @Bonapara - Delete Fathom webhooks on disconnect ([#25520](https://github.com/twentyhq/twenty/pull/25520)) by @ehconitin - Fix app CI fixtures and registry upload limit ([#25531](https://github.com/twentyhq/twenty/pull/25531)) by @Bonapara - Stop pruning published translations when a project has no locales folder ([#25535](https://github.com/twentyhq/twenty/pull/25535)) by @Weiko - Fix sidebar Link items in folders redirecting to a doubled URL ([#25536](https://github.com/twentyhq/twenty/pull/25536)) by @bosiraphael - bump call recorder app version to 1.13.0 ([#25538](https://github.com/twentyhq/twenty/pull/25538)) by @ehconitin - Scaffold a locales folder with an empty source catalog ([#25539](https://github.com/twentyhq/twenty/pull/25539)) by @Weiko - Add Fathom recording import data model ([#25540](https://github.com/twentyhq/twenty/pull/25540)) by @ehconitin - Polish AI chat mode design and actions ([#25542](https://github.com/twentyhq/twenty/pull/25542)) by @Bonapara - Clear a Recording Bot On the call recorder cannot honor ([#25543](https://github.com/twentyhq/twenty/pull/25543)) by @ehconitin - Offer a DMARC record only when the sending domain has none ([#25547](https://github.com/twentyhq/twenty/pull/25547)) by @neo773 - Run twenty-ui unit tests on vitest and add a component conformance helper ([#25548](https://github.com/twentyhq/twenty/pull/25548)) by @bosiraphael - Add a color scheme toolbar to twenty-ui Storybook with dark catalog stories for Field and Text ([#25550](https://github.com/twentyhq/twenty/pull/25550)) by @bosiraphael - Reuse shared status tags and truncate banner messages ([#25554](https://github.com/twentyhq/twenty/pull/25554)) by @Bonapara - Stream nx task output so a killed task still prints its stack ([#25560](https://github.com/twentyhq/twenty/pull/25560)) by @neo773 - Let marketers schedule a campaign for a later send ([#25563](https://github.com/twentyhq/twenty/pull/25563)) by @neo773 - Stop group email deletion from scanning a cartesian product ([#25565](https://github.com/twentyhq/twenty/pull/25565)) by @neo773 - Export an application's published translations in the manifest ([#25566](https://github.com/twentyhq/twenty/pull/25566)) by @Weiko - [Apps 2-way sync] Pull write translations ([#25567](https://github.com/twentyhq/twenty/pull/25567)) by @Weiko - Skip empty built files on upload and report a rejected batch once ([#25568](https://github.com/twentyhq/twenty/pull/25568)) by @Weiko - Remove an unused import from defineObject ([#25569](https://github.com/twentyhq/twenty/pull/25569)) by @Weiko - Granola 1/8: Add the Granola application scaffold ([#25570](https://github.com/twentyhq/twenty/pull/25570)) by @ehconitin - Granola 3/8: Map Granola notes into Call Recordings ([#25572](https://github.com/twentyhq/twenty/pull/25572)) by @ehconitin - Granola 4/8: Connect Granola webhooks and live synchronization ([#25573](https://github.com/twentyhq/twenty/pull/25573)) by @ehconitin - Granola 5/8: Import Granola history and recover missed updates ([#25574](https://github.com/twentyhq/twenty/pull/25574)) by @ehconitin - Granola 6/8: Expose Granola notes to workflows and AI ([#25575](https://github.com/twentyhq/twenty/pull/25575)) by @ehconitin - Add Input, InputGroup and Textarea to twenty-ui ([#25584](https://github.com/twentyhq/twenty/pull/25584)) by @bosiraphael - Resolve the side panel context store object from the panel location ([#25586](https://github.com/twentyhq/twenty/pull/25586)) by @bosiraphael - Bump app version ([#25587](https://github.com/twentyhq/twenty/pull/25587)) by @martmull - Snapshot the exported manifest and guard the compared properties in the export spec ([#25593](https://github.com/twentyhq/twenty/pull/25593)) by @Weiko - Fix empty relation card vertical padding ([#25595](https://github.com/twentyhq/twenty/pull/25595)) by @Bonapara - Add ListItem to twenty-ui ([#25596](https://github.com/twentyhq/twenty/pull/25596)) by @bosiraphael - Keep the workspace navigation section visible when it has no items ([#25597](https://github.com/twentyhq/twenty/pull/25597)) by @Weiko - Always create app connections at workspace level ([#25598](https://github.com/twentyhq/twenty/pull/25598)) by @FelixMalfait - Stop fanning workflowRun.updated events out to webhooks ([#25599](https://github.com/twentyhq/twenty/pull/25599)) by @thomtrp - Export views and their children from an installed application ([#25600](https://github.com/twentyhq/twenty/pull/25600)) by @Weiko - Restore workflowRun.updated webhooks for explicit subscriptions ([#25601](https://github.com/twentyhq/twenty/pull/25601)) by @thomtrp - Write pulled views and standalone view fields as define files ([#25606](https://github.com/twentyhq/twenty/pull/25606)) by @Weiko - Add Popover to twenty-ui ([#25607](https://github.com/twentyhq/twenty/pull/25607)) by @bosiraphael - Update website changelog through 2.38.1 ([#25609](https://github.com/twentyhq/twenty/pull/25609)) by @Bonapara - Add Menu to twenty-ui ([#25610](https://github.com/twentyhq/twenty/pull/25610)) by @bosiraphael - Add Tabs compound to twenty-ui ([#25612](https://github.com/twentyhq/twenty/pull/25612)) by @bosiraphael - Open onboarding AI chat beside the workspace homepage ([#25614](https://github.com/twentyhq/twenty/pull/25614)) by @Bonapara - Move part class-name merging into shared utilities ([#25621](https://github.com/twentyhq/twenty/pull/25621)) by @bosiraphael - Move twenty-ui component behavior tests into stories ([#25623](https://github.com/twentyhq/twenty/pull/25623)) by @bosiraphael - Export page layouts, tabs and widgets from an installed application ([#25624](https://github.com/twentyhq/twenty/pull/25624)) by @Weiko - Add Select compound to twenty-ui ([#25625](https://github.com/twentyhq/twenty/pull/25625)) by @bosiraphael - Fix Menu imports after class-name helper rename ([#25634](https://github.com/twentyhq/twenty/pull/25634)) by @bosiraphael - Make the billing catalog ready for plan and price evolution ([#25635](https://github.com/twentyhq/twenty/pull/25635)) by @FelixMalfait - Add isAuditLogged on field metadata to keep noisy fields off the timeline ([#25641](https://github.com/twentyhq/twenty/pull/25641)) by @FelixMalfait - Allow automation and AI agents in the terms of service ([#25642](https://github.com/twentyhq/twenty/pull/25642)) by @FelixMalfait - Revert "Revert "Record sharing 5/14: evaluate record shares in memory for events"" ([#25650](https://github.com/twentyhq/twenty/pull/25650)) by @martmull - Add a standalone page layout widget slot to the manifest and export widgets placed on existing tabs ([#25651](https://github.com/twentyhq/twenty/pull/25651)) by @Weiko - Write pulled page layouts and standalone page layout tabs as define files ([#25655](https://github.com/twentyhq/twenty/pull/25655)) by @Weiko - Serialize a workspace's entitlement transition ([#25660](https://github.com/twentyhq/twenty/pull/25660)) by @FelixMalfait - Extract frontend snack bar into twenty-ui Toast ([#25663](https://github.com/twentyhq/twenty/pull/25663)) by @bosiraphael - Add AlertDialog compound to twenty-ui ([#25665](https://github.com/twentyhq/twenty/pull/25665)) by @bosiraphael - Fix dropdown anchoring at non-default interface scales ([#25667](https://github.com/twentyhq/twenty/pull/25667)) by @Bonapara - Let a relation field's bookkeeping properties be updated through a sync ([#25668](https://github.com/twentyhq/twenty/pull/25668)) by @Weiko - Run direct consumer CI on twenty-ui changes and record known radio failures ([#25670](https://github.com/twentyhq/twenty/pull/25670)) by @bosiraphael - Add benchmarks, data residency and zero data retention to the AI model catalog ([#25675](https://github.com/twentyhq/twenty/pull/25675)) by @FelixMalfait - Migrate twenty-ui Toggle to Switch ([#25678](https://github.com/twentyhq/twenty/pull/25678)) by @bosiraphael - Skip workflow status update when the workflow no longer exists ([#25680](https://github.com/twentyhq/twenty/pull/25680)) by @thomtrp - Fix column resize dragging the widget in layout edit mode ([#25681](https://github.com/twentyhq/twenty/pull/25681)) by @bosiraphael - Create the inputs-validation fixture fields in one migration instead of twenty-two ([#25684](https://github.com/twentyhq/twenty/pull/25684)) by @Weiko - Let app-driven agents reach dashboard and workflow tools ([#25685](https://github.com/twentyhq/twenty/pull/25685)) by @abdulrahmancodes - Export an application's navigation menu items ([#25687](https://github.com/twentyhq/twenty/pull/25687)) by @Weiko - Fix two matcher defects the first populated benchmark sync exposed ([#25690](https://github.com/twentyhq/twenty/pull/25690)) by @FelixMalfait - Resolve Slack mention tokens before the assistant prompt is built ([#25694](https://github.com/twentyhq/twenty/pull/25694)) by @abdulrahmancodes - Acknowledge Slack file attachments in the assistant ([#25695](https://github.com/twentyhq/twenty/pull/25695)) by @abdulrahmancodes - Deliver the Claude reasoning config and make effort a first-class model parameter ([#25696](https://github.com/twentyhq/twenty/pull/25696)) by @FelixMalfait - Write pulled navigation menu items as define files ([#25705](https://github.com/twentyhq/twenty/pull/25705)) by @Weiko - Show workspace-shared app connections to every member ([#25708](https://github.com/twentyhq/twenty/pull/25708)) by @abdulrahmancodes - Clear logoFileId when the workspace logo is removed ([#25711](https://github.com/twentyhq/twenty/pull/25711)) by @martmull - Refresh self-hosted Google default to Gemini 3.8 Flash ([#25713](https://github.com/twentyhq/twenty/pull/25713)) by @twenty-pr-author - Increase logic function concurrency ([#25714](https://github.com/twentyhq/twenty/pull/25714)) by @martmull - Migrate twenty-ui Radio and RadioGroup ([#25715](https://github.com/twentyhq/twenty/pull/25715)) by @bosiraphael - Migrate twenty-ui Slider to Base UI ([#25716](https://github.com/twentyhq/twenty/pull/25716)) by @bosiraphael - Backfill twenty-ui front component renderer stories ([#25719](https://github.com/twentyhq/twenty/pull/25719)) by @bosiraphael - Fix AWS region validation across partitions ([#25720](https://github.com/twentyhq/twenty/pull/25720)) by @NiklasDah - Add batch delivery to database-event-triggered logic functions ([#25726](https://github.com/twentyhq/twenty/pull/25726)) by @martmull - Import CalDAV events from servers that omit getetag ([#25728](https://github.com/twentyhq/twenty/pull/25728)) by @neo773 - Accept CalDAV calendars that do not publish a component set ([#25729](https://github.com/twentyhq/twenty/pull/25729)) by @neo773 - Score effort variants from the benchmark rows taken at their own effort ([#25730](https://github.com/twentyhq/twenty/pull/25730)) by @FelixMalfait - Compare a record relation to the current member's relation in row-level permissions ([#25732](https://github.com/twentyhq/twenty/pull/25732)) by @Weiko - Stop pull overwriting a source file that defines no entity ([#25739](https://github.com/twentyhq/twenty/pull/25739)) by @Weiko - Write pulled standalone page layout widgets as define files ([#25743](https://github.com/twentyhq/twenty/pull/25743)) by @Weiko - Stop calling a local file unknown to the workspace when the export reported it ([#25746](https://github.com/twentyhq/twenty/pull/25746)) by @Weiko - Tell pull users their project cannot build what pull just wrote ([#25747](https://github.com/twentyhq/twenty/pull/25747)) by @Weiko - Keep a stored file's identifier when its content is uploaded again ([#25748](https://github.com/twentyhq/twenty/pull/25748)) by @Weiko - Refuse to pull an application into a project that already defines another ([#25750](https://github.com/twentyhq/twenty/pull/25750)) by @Weiko - Never infer deletion for rows a manifest cannot express ([#25752](https://github.com/twentyhq/twenty/pull/25752)) by @Weiko - Block private-network SSO issuers and replace the safe-mode toggle with an internal host allowlist ([#25756](https://github.com/twentyhq/twenty/pull/25756)) by @FelixMalfait - Restrict AI and Settings access during layout editing ([#25760](https://github.com/twentyhq/twenty/pull/25760)) by @Bonapara - Let the e2e local registry accept twenty-ui ([#25765](https://github.com/twentyhq/twenty/pull/25765)) by @Weiko - Fill the empty Type column in Skills settings with the owning app ([#25766](https://github.com/twentyhq/twenty/pull/25766)) by @FelixMalfait - Read the deprecated flag from the model config when picking a tier default ([#25769](https://github.com/twentyhq/twenty/pull/25769)) by @Weiko - Keep only compliance badges on the import-contacts onboarding step ([#25774](https://github.com/twentyhq/twenty/pull/25774)) by @FelixMalfait - Propagate SMTP send failures so the email job actually retries ([#25776](https://github.com/twentyhq/twenty/pull/25776)) by @neo773 - fix iCal parsing: bare CR (0x0D) line breaks instead of the CRLF thatβ¦ ([#25782](https://github.com/twentyhq/twenty/pull/25782)) by @mcr-ksh - Fix CLAUDE.md guard import sources ([#25789](https://github.com/twentyhq/twenty/pull/25789)) by @prastoin - Complete call recordings whose Recall transcript is empty ([#25793](https://github.com/twentyhq/twenty/pull/25793)) by @ehconitin - Finish call recordings without a transcript when Recall rejects the transcript request ([#25794](https://github.com/twentyhq/twenty/pull/25794)) by @ehconitin - Stop re-checking already-warned workspaces every hour in CleanSuspendedWorkspacesJob ([#25800](https://github.com/twentyhq/twenty/pull/25800)) by @etiennejouan - Give each Sentry cron monitor its own max runtime ([#25801](https://github.com/twentyhq/twenty/pull/25801)) by @etiennejouan - Point pull users at the apply flag that protects what it could not write ([#25808](https://github.com/twentyhq/twenty/pull/25808)) by @Weiko - List every kind pull does not export yet ([#25811](https://github.com/twentyhq/twenty/pull/25811)) by @Weiko ## π Bug fixes - fix(slack): bound Slack Web API retries to the logic function budget ([#25483](https://github.com/twentyhq/twenty/pull/25483)) by @abdulrahmancodes - fix(enterprise): keep self-hosted licenses valid while Stripe retries a failed payment ([#25515](https://github.com/twentyhq/twenty/pull/25515)) by @ijreilly - fix(docker): resolve release tags from the twenty/v* namespace and fail on bad downloads ([#25524](https://github.com/twentyhq/twenty/pull/25524)) by @ijreilly - fix(front): accept null Actor context.provider (#25532) ([#25537](https://github.com/twentyhq/twenty/pull/25537)) by @grootbro - fix(front): report the records an interrupted incremental delete already removed ([#25549](https://github.com/twentyhq/twenty/pull/25549)) by @thomtrp - fix(workflow): stop mirroring soft-deleted workflows into core ([#25553](https://github.com/twentyhq/twenty/pull/25553)) by @thomtrp - fix(front): persist percentage values that still include a percent sign (#17677) ([#25555](https://github.com/twentyhq/twenty/pull/25555)) by @claxman - fix(server): stop upgrade-pending columns from breaking repository updates ([#25583](https://github.com/twentyhq/twenty/pull/25583)) by @FelixMalfait - fix(billing): stop granted credits expiring when a period transition misfires ([#25603](https://github.com/twentyhq/twenty/pull/25603)) by @FelixMalfait - fix(server): build the install-time SDK layer from the migration's own flat maps ([#25608](https://github.com/twentyhq/twenty/pull/25608)) by @prastoin - fix(ai-chat): answer a refused message with what actually clears it ([#25622](https://github.com/twentyhq/twenty/pull/25622)) by @etiennejouan - fix(mcp): list connected accounts from the core schema ([#25658](https://github.com/twentyhq/twenty/pull/25658)) by @Hermi941 - fix(server): bound TimelineActivityRoutingPlanService workspace cache ([#25659](https://github.com/twentyhq/twenty/pull/25659)) by @etiennejouan - fix(uploads): cap file size for files-field and application file upload mutations ([#25671](https://github.com/twentyhq/twenty/pull/25671)) by @addyCooks - fix(front): reset confirmation modal input when reopened ([#25674](https://github.com/twentyhq/twenty/pull/25674)) by @mydd7 - fix(slack): keep assistant feedback buttons on long answers ([#25693](https://github.com/twentyhq/twenty/pull/25693)) by @abdulrahmancodes - fix(admin-panel): stop calling a metered line item's quantity "seats" ([#25698](https://github.com/twentyhq/twenty/pull/25698)) by @FelixMalfait - fix(billing): stop writing a raw ISO timestamp into a credit grant's reason ([#25699](https://github.com/twentyhq/twenty/pull/25699)) by @FelixMalfait - fix(workflow): stop email steps sending from another member's account ([#25709](https://github.com/twentyhq/twenty/pull/25709)) by @hktitof - fix(apps): preserve vetted status during catalog sync ([#25725](https://github.com/twentyhq/twenty/pull/25725)) by @ehconitin - fix: republish twenty-ui as MIT (1.0.0-alpha.2) to resolve stale AGPL artifacts ([#25738](https://github.com/twentyhq/twenty/pull/25738)) by @MauryaQbit - fix(messaging): don't delete messages still present in another folder's delta sync ([#25751](https://github.com/twentyhq/twenty/pull/25751)) by @breken-ai - fix(ai): keep catalog efforts under an AI_PROVIDERS override and fix tier UI findings ([#25753](https://github.com/twentyhq/twenty/pull/25753)) by @FelixMalfait - fix(storybook): prevent oversized Argos screenshots ([#25779](https://github.com/twentyhq/twenty/pull/25779)) by @bosiraphael - fix(front): create component instance ids once instead of rewriting them per surface ([#25790](https://github.com/twentyhq/twenty/pull/25790)) by @FelixMalfait - fix(front): hide connection provider avatar when there is no logo ([#25797](https://github.com/twentyhq/twenty/pull/25797)) by @martmull - fix(front): open the view picker on the id its dropdown listens to ([#25799](https://github.com/twentyhq/twenty/pull/25799)) by @FelixMalfait ## π§ Developer & API - Granola 2/8: Add Granola API access and credential settings ([#25571](https://github.com/twentyhq/twenty/pull/25571)) by @ehconitin - Stop reporting handled webhook subscription failures to Sentry ([#25591](https://github.com/twentyhq/twenty/pull/25591)) by @neo773 - Debounce calendar webhook syncs instead of throwing when one is running ([#25656](https://github.com/twentyhq/twenty/pull/25656)) by @neo773 - Stop servicing webhook subscriptions for suspended workspaces ([#25657](https://github.com/twentyhq/twenty/pull/25657)) by @neo773 - Upgrade the AI SDK to v7 ([#25704](https://github.com/twentyhq/twenty/pull/25704)) by @FelixMalfait - Migrate twenty-ui Checkbox to the shared form-control API ([#25712](https://github.com/twentyhq/twenty/pull/25712)) by @bosiraphael - Register the GraphQL resolver name map cache provider in the worker ([#25717](https://github.com/twentyhq/twenty/pull/25717)) by @prastoin - Align twenty-ui with SDK package versions ([#25758](https://github.com/twentyhq/twenty/pull/25758)) by @bosiraphael - Migrate Status to the new twenty-ui API ([#25785](https://github.com/twentyhq/twenty/pull/25785)) by @bosiraphael - Migrate Tag to the new twenty-ui API ([#25786](https://github.com/twentyhq/twenty/pull/25786)) by @bosiraphael <details> <summary>ποΈ Internal changes (6)</summary> - docs: add inbound email channel forwarding guides ([#25602](https://github.com/twentyhq/twenty/pull/25602)) by @neo773 - chore(twenty-ui): update Base UI to 1.8.0 ([#25615](https://github.com/twentyhq/twenty/pull/25615)) by @bosiraphael - refactor(server): warm up prebuilt logic functions after the install migration commits ([#25672](https://github.com/twentyhq/twenty/pull/25672)) by @prastoin - refactor(server): extract a single LRU eviction primitive ([#25733](https://github.com/twentyhq/twenty/pull/25733)) by @etiennejouan - refactor: share floating reference scale calculation ([#25762](https://github.com/twentyhq/twenty/pull/25762)) by @Bonapara - refactor(ai): seed the agent and skill settings forms from the loaded record ([#25764](https://github.com/twentyhq/twenty/pull/25764)) by @FelixMalfait </details> ## π New contributors - @grootbro made their first contribution in https://github.com/twentyhq/twenty/pull/25537 - @claxman made their first contribution in https://github.com/twentyhq/twenty/pull/25555 - @Hermi941 made their first contribution in https://github.com/twentyhq/twenty/pull/25658 - @addyCooks made their first contribution in https://github.com/twentyhq/twenty/pull/25671 - @twenty-pr-author[bot] made their first contribution in https://github.com/twentyhq/twenty/pull/25713 - @NiklasDah made their first contribution in https://github.com/twentyhq/twenty/pull/25720 - @breken-ai made their first contribution in https://github.com/twentyhq/twenty/pull/25751 - @MauryaQbit made their first contribution in https://github.com/twentyhq/twenty/pull/25738 - @mydd7 made their first contribution in https://github.com/twentyhq/twenty/pull/25674 - @mcr-ksh made their first contribution in https://github.com/twentyhq/twenty/pull/25782 <details> <summary>Full changelog (201 PRs)</summary> - Alias native worker APIs onto window in front components ([#24190](https://github.com/twentyhq/twenty/pull/24190)) by @bosiraphael - Support classList in front components ([#24191](https://github.com/twentyhq/twenty/pull/24191)) by @bosiraphael - feat(search): expose isSearchable on field metadata and make the object search section editable ([#25166](https://github.com/twentyhq/twenty/pull/25166)) by @prastoin - feat(record-form): render the record creation form behind a flag ([#25203](https://github.com/twentyhq/twenty/pull/25203)) by @thomtrp - feat(core): let apps report a connection auth failure with a reason ([#25297](https://github.com/twentyhq/twenty/pull/25297)) by @abdulrahmancodes - Make the Fathom app publishable and rewrite its listing copy ([#25325](https://github.com/twentyhq/twenty/pull/25325)) by @ehconitin - Fix delayed view deletion feedback ([#25344](https://github.com/twentyhq/twenty/pull/25344)) by @Bonapara - feat(workflow): polish the core workflows index and gate workflow run workspace relations ([#25356](https://github.com/twentyhq/twenty/pull/25356)) by @thomtrp - Add field description tooltips ([#25408](https://github.com/twentyhq/twenty/pull/25408)) by @Bonapara - feat(workflow): select core workflows and delete them in bulk ([#25415](https://github.com/twentyhq/twenty/pull/25415)) by @thomtrp - Extract email body text without building a DOM ([#25422](https://github.com/twentyhq/twenty/pull/25422)) by @neo773 - Record sharing 2/14: add the recordShare hidden standard object and its service ([#25425](https://github.com/twentyhq/twenty/pull/25425)) by @martmull - Record sharing 3/14: gate reads and writes on private objects with record share rows ([#25426](https://github.com/twentyhq/twenty/pull/25426)) by @martmull - Record sharing 4/14: let a create state who may read the record with shareWith ([#25428](https://github.com/twentyhq/twenty/pull/25428)) by @martmull - feat(call-recorder): toggle to send the bot to all calendar meetings ([#25431](https://github.com/twentyhq/twenty/pull/25431)) by @ehconitin - Add Fathom media storage foundation ([#25432](https://github.com/twentyhq/twenty/pull/25432)) by @ehconitin - Import Fathom recording media asynchronously ([#25433](https://github.com/twentyhq/twenty/pull/25433)) by @ehconitin - Reconcile stale Fathom media imports ([#25434](https://github.com/twentyhq/twenty/pull/25434)) by @ehconitin - fix(slack): bound Slack Web API retries to the logic function budget ([#25483](https://github.com/twentyhq/twenty/pull/25483)) by @abdulrahmancodes - feat(slack): branch the assistant failure reply on the failure kind ([#25484](https://github.com/twentyhq/twenty/pull/25484)) by @abdulrahmancodes - Track application installs and uninstalls with deterministic queue jobs ([#25502](https://github.com/twentyhq/twenty/pull/25502)) by @martmull - feat: add create/complete file upload action tools for MCP ([#25503](https://github.com/twentyhq/twenty/pull/25503)) by @Lakshayyy-m - Migrate existing Canvas tabs to vertical lists ([#25511](https://github.com/twentyhq/twenty/pull/25511)) by @Bonapara - Support explicit widget height behavior ([#25512](https://github.com/twentyhq/twenty/pull/25512)) by @Bonapara - Simplify page layout manifest authoring ([#25513](https://github.com/twentyhq/twenty/pull/25513)) by @Bonapara - fix(enterprise): keep self-hosted licenses valid while Stripe retries a failed payment ([#25515](https://github.com/twentyhq/twenty/pull/25515)) by @ijreilly - Use existing component for AI chat warnings ([#25519](https://github.com/twentyhq/twenty/pull/25519)) by @Bonapara - Delete Fathom webhooks on disconnect ([#25520](https://github.com/twentyhq/twenty/pull/25520)) by @ehconitin - fix(docker): resolve release tags from the twenty/v* namespace and fail on bad downloads ([#25524](https://github.com/twentyhq/twenty/pull/25524)) by @ijreilly - feat(usage-limit): quota limits over the credit allowance period ([#25526](https://github.com/twentyhq/twenty/pull/25526)) by @etiennejouan - Fix app CI fixtures and registry upload limit ([#25531](https://github.com/twentyhq/twenty/pull/25531)) by @Bonapara - chore: bump version to 2.40.0 ([#25534](https://github.com/twentyhq/twenty/pull/25534)) by @twenty-pr - Stop pruning published translations when a project has no locales folder ([#25535](https://github.com/twentyhq/twenty/pull/25535)) by @Weiko - Fix sidebar Link items in folders redirecting to a doubled URL ([#25536](https://github.com/twentyhq/twenty/pull/25536)) by @bosiraphael - fix(front): accept null Actor context.provider (#25532) ([#25537](https://github.com/twentyhq/twenty/pull/25537)) by @grootbro - bump call recorder app version to 1.13.0 ([#25538](https://github.com/twentyhq/twenty/pull/25538)) by @ehconitin - Scaffold a locales folder with an empty source catalog ([#25539](https://github.com/twentyhq/twenty/pull/25539)) by @Weiko - Add Fathom recording import data model ([#25540](https://github.com/twentyhq/twenty/pull/25540)) by @ehconitin - Polish AI chat mode design and actions ([#25542](https://github.com/twentyhq/twenty/pull/25542)) by @Bonapara - Clear a Recording Bot On the call recorder cannot honor ([#25543](https://github.com/twentyhq/twenty/pull/25543)) by @ehconitin - feat(usage-limit): count quota admits on failure and the credits they let through ([#25546](https://github.com/twentyhq/twenty/pull/25546)) by @etiennejouan - Offer a DMARC record only when the sending domain has none ([#25547](https://github.com/twentyhq/twenty/pull/25547)) by @neo773 - Run twenty-ui unit tests on vitest and add a component conformance helper ([#25548](https://github.com/twentyhq/twenty/pull/25548)) by @bosiraphael - fix(front): report the records an interrupted incremental delete already removed ([#25549](https://github.com/twentyhq/twenty/pull/25549)) by @thomtrp - Add a color scheme toolbar to twenty-ui Storybook with dark catalog stories for Field and Text ([#25550](https://github.com/twentyhq/twenty/pull/25550)) by @bosiraphael - fix(workflow): stop mirroring soft-deleted workflows into core ([#25553](https://github.com/twentyhq/twenty/pull/25553)) by @thomtrp - Reuse shared status tags and truncate banner messages ([#25554](https://github.com/twentyhq/twenty/pull/25554)) by @Bonapara - fix(front): persist percentage values that still include a percent sign (#17677) ([#25555](https://github.com/twentyhq/twenty/pull/25555)) by @claxman - i18n - translations ([#25556](https://github.com/twentyhq/twenty/pull/25556)) by @github-actions - i18n - translations ([#25557](https://github.com/twentyhq/twenty/pull/25557)) by @github-actions - i18n - translations ([#25558](https://github.com/twentyhq/twenty/pull/25558)) by @github-actions - Stream nx task output so a killed task still prints its stack ([#25560](https://github.com/twentyhq/twenty/pull/25560)) by @neo773 - Let marketers schedule a campaign for a later send ([#25563](https://github.com/twentyhq/twenty/pull/25563)) by @neo773 - Stop group email deletion from scanning a cartesian product ([#25565](https://github.com/twentyhq/twenty/pull/25565)) by @neo773 - Export an application's published translations in the manifest ([#25566](https://github.com/twentyhq/twenty/pull/25566)) by @Weiko - [Apps 2-way sync] Pull write translations ([#25567](https://github.com/twentyhq/twenty/pull/25567)) by @Weiko - Skip empty built files on upload and report a rejected batch once ([#25568](https://github.com/twentyhq/twenty/pull/25568)) by @Weiko - Remove an unused import from defineObject ([#25569](https://github.com/twentyhq/twenty/pull/25569)) by @Weiko - Granola 1/8: Add the Granola application scaffold ([#25570](https://github.com/twentyhq/twenty/pull/25570)) by @ehconitin - Granola 2/8: Add Granola API access and credential settings ([#25571](https://github.com/twentyhq/twenty/pull/25571)) by @ehconitin - Granola 3/8: Map Granola notes into Call Recordings ([#25572](https://github.com/twentyhq/twenty/pull/25572)) by @ehconitin - Granola 4/8: Connect Granola webhooks and live synchronization ([#25573](https://github.com/twentyhq/twenty/pull/25573)) by @ehconitin - Granola 5/8: Import Granola history and recover missed updates ([#25574](https://github.com/twentyhq/twenty/pull/25574)) by @ehconitin - Granola 6/8: Expose Granola notes to workflows and AI ([#25575](https://github.com/twentyhq/twenty/pull/25575)) by @ehconitin - fix(server): stop upgrade-pending columns from breaking repository updates ([#25583](https://github.com/twentyhq/twenty/pull/25583)) by @FelixMalfait - Add Input, InputGroup and Textarea to twenty-ui ([#25584](https://github.com/twentyhq/twenty/pull/25584)) by @bosiraphael - feat(slack): point the channel welcome at the DM as the private path ([#25585](https://github.com/twentyhq/twenty/pull/25585)) by @abdulrahmancodes - Resolve the side panel context store object from the panel location ([#25586](https://github.com/twentyhq/twenty/pull/25586)) by @bosiraphael - Bump app version ([#25587](https://github.com/twentyhq/twenty/pull/25587)) by @martmull - Stop reporting handled webhook subscription failures to Sentry ([#25591](https://github.com/twentyhq/twenty/pull/25591)) by @neo773 - feat: add audio playback fallback for call recordings ([#25592](https://github.com/twentyhq/twenty/pull/25592)) by @ehconitin - Snapshot the exported manifest and guard the compared properties in the export spec ([#25593](https://github.com/twentyhq/twenty/pull/25593)) by @Weiko - Fix empty relation card vertical padding ([#25595](https://github.com/twentyhq/twenty/pull/25595)) by @Bonapara - Add ListItem to twenty-ui ([#25596](https://github.com/twentyhq/twenty/pull/25596)) by @bosiraphael - Keep the workspace navigation section visible when it has no items ([#25597](https://github.com/twentyhq/twenty/pull/25597)) by @Weiko - Always create app connections at workspace level ([#25598](https://github.com/twentyhq/twenty/pull/25598)) by @FelixMalfait - Stop fanning workflowRun.updated events out to webhooks ([#25599](https://github.com/twentyhq/twenty/pull/25599)) by @thomtrp - Export views and their children from an installed application ([#25600](https://github.com/twentyhq/twenty/pull/25600)) by @Weiko - Restore workflowRun.updated webhooks for explicit subscriptions ([#25601](https://github.com/twentyhq/twenty/pull/25601)) by @thomtrp - docs: add inbound email channel forwarding guides ([#25602](https://github.com/twentyhq/twenty/pull/25602)) by @neo773 - fix(billing): stop granted credits expiring when a period transition misfires ([#25603](https://github.com/twentyhq/twenty/pull/25603)) by @FelixMalfait - Write pulled views and standalone view fields as define files ([#25606](https://github.com/twentyhq/twenty/pull/25606)) by @Weiko - Add Popover to twenty-ui ([#25607](https://github.com/twentyhq/twenty/pull/25607)) by @bosiraphael - fix(server): build the install-time SDK layer from the migration's own flat maps ([#25608](https://github.com/twentyhq/twenty/pull/25608)) by @prastoin - Update website changelog through 2.38.1 ([#25609](https://github.com/twentyhq/twenty/pull/25609)) by @Bonapara - Add Menu to twenty-ui ([#25610](https://github.com/twentyhq/twenty/pull/25610)) by @bosiraphael - Add Tabs compound to twenty-ui ([#25612](https://github.com/twentyhq/twenty/pull/25612)) by @bosiraphael - Open onboarding AI chat beside the workspace homepage ([#25614](https://github.com/twentyhq/twenty/pull/25614)) by @Bonapara - chore(twenty-ui): update Base UI to 1.8.0 ([#25615](https://github.com/twentyhq/twenty/pull/25615)) by @bosiraphael - i18n - website translations ([#25619](https://github.com/twentyhq/twenty/pull/25619)) by @github-actions - Move part class-name merging into shared utilities ([#25621](https://github.com/twentyhq/twenty/pull/25621)) by @bosiraphael - fix(ai-chat): answer a refused message with what actually clears it ([#25622](https://github.com/twentyhq/twenty/pull/25622)) by @etiennejouan - Move twenty-ui component behavior tests into stories ([#25623](https://github.com/twentyhq/twenty/pull/25623)) by @bosiraphael - Export page layouts, tabs and widgets from an installed application ([#25624](https://github.com/twentyhq/twenty/pull/25624)) by @Weiko - Add Select compound to twenty-ui ([#25625](https://github.com/twentyhq/twenty/pull/25625)) by @bosiraphael - feat(workflow): create and delete workflows through the core API ([#25626](https://github.com/twentyhq/twenty/pull/25626)) by @thomtrp - i18n - website translations ([#25627](https://github.com/twentyhq/twenty/pull/25627)) by @github-actions - Fix Menu imports after class-name helper rename ([#25634](https://github.com/twentyhq/twenty/pull/25634)) by @bosiraphael - Make the billing catalog ready for plan and price evolution ([#25635](https://github.com/twentyhq/twenty/pull/25635)) by @FelixMalfait - Add isAuditLogged on field metadata to keep noisy fields off the timeline ([#25641](https://github.com/twentyhq/twenty/pull/25641)) by @FelixMalfait - Allow automation and AI agents in the terms of service ([#25642](https://github.com/twentyhq/twenty/pull/25642)) by @FelixMalfait - Revert "Revert "Record sharing 5/14: evaluate record shares in memory for events"" ([#25650](https://github.com/twentyhq/twenty/pull/25650)) by @martmull - Add a standalone page layout widget slot to the manifest and export widgets placed on existing tabs ([#25651](https://github.com/twentyhq/twenty/pull/25651)) by @Weiko - Write pulled page layouts and standalone page layout tabs as define files ([#25655](https://github.com/twentyhq/twenty/pull/25655)) by @Weiko - Debounce calendar webhook syncs instead of throwing when one is running ([#25656](https://github.com/twentyhq/twenty/pull/25656)) by @neo773 - Stop servicing webhook subscriptions for suspended workspaces ([#25657](https://github.com/twentyhq/twenty/pull/25657)) by @neo773 - fix(mcp): list connected accounts from the core schema ([#25658](https://github.com/twentyhq/twenty/pull/25658)) by @Hermi941 - fix(server): bound TimelineActivityRoutingPlanService workspace cache ([#25659](https://github.com/twentyhq/twenty/pull/25659)) by @etiennejouan - Serialize a workspace's entitlement transition ([#25660](https://github.com/twentyhq/twenty/pull/25660)) by @FelixMalfait - Extract frontend snack bar into twenty-ui Toast ([#25663](https://github.com/twentyhq/twenty/pull/25663)) by @bosiraphael - Add AlertDialog compound to twenty-ui ([#25665](https://github.com/twentyhq/twenty/pull/25665)) by @bosiraphael - Fix dropdown anchoring at non-default interface scales ([#25667](https://github.com/twentyhq/twenty/pull/25667)) by @Bonapara - Let a relation field's bookkeeping properties be updated through a sync ([#25668](https://github.com/twentyhq/twenty/pull/25668)) by @Weiko - feat(workflow): read the workflow show page through the core API ([#25669](https://github.com/twentyhq/twenty/pull/25669)) by @thomtrp - Run direct consumer CI on twenty-ui changes and record known radio failures ([#25670](https://github.com/twentyhq/twenty/pull/25670)) by @bosiraphael - fix(uploads): cap file size for files-field and application file upload mutations ([#25671](https://github.com/twentyhq/twenty/pull/25671)) by @addyCooks - refactor(server): warm up prebuilt logic functions after the install migration commits ([#25672](https://github.com/twentyhq/twenty/pull/25672)) by @prastoin - feat(usage-limit): cap webhook calls per workspace at enqueue time ([#25673](https://github.com/twentyhq/twenty/pull/25673)) by @etiennejouan - fix(front): reset confirmation modal input when reopened ([#25674](https://github.com/twentyhq/twenty/pull/25674)) by @mydd7 - Add benchmarks, data residency and zero data retention to the AI model catalog ([#25675](https://github.com/twentyhq/twenty/pull/25675)) by @FelixMalfait - feat(slack): show the thinking status before the assistant context lookups ([#25676](https://github.com/twentyhq/twenty/pull/25676)) by @abdulrahmancodes - Migrate twenty-ui Toggle to Switch ([#25678](https://github.com/twentyhq/twenty/pull/25678)) by @bosiraphael - feat(workflow): add coreWorkflowId to core workflow versions ([#25679](https://github.com/twentyhq/twenty/pull/25679)) by @thomtrp - Skip workflow status update when the workflow no longer exists ([#25680](https://github.com/twentyhq/twenty/pull/25680)) by @thomtrp - Fix column resize dragging the widget in layout edit mode ([#25681](https://github.com/twentyhq/twenty/pull/25681)) by @bosiraphael - Create the inputs-validation fixture fields in one migration instead of twenty-two ([#25684](https://github.com/twentyhq/twenty/pull/25684)) by @Weiko - Let app-driven agents reach dashboard and workflow tools ([#25685](https://github.com/twentyhq/twenty/pull/25685)) by @abdulrahmancodes - Export an application's navigation menu items ([#25687](https://github.com/twentyhq/twenty/pull/25687)) by @Weiko - chore: sync AI model catalog ([#25689](https://github.com/twentyhq/twenty/pull/25689)) by @github-actions - Fix two matcher defects the first populated benchmark sync exposed ([#25690](https://github.com/twentyhq/twenty/pull/25690)) by @FelixMalfait - chore: sync AI model catalog ([#25691](https://github.com/twentyhq/twenty/pull/25691)) by @github-actions - fix(slack): keep assistant feedback buttons on long answers ([#25693](https://github.com/twentyhq/twenty/pull/25693)) by @abdulrahmancodes - Resolve Slack mention tokens before the assistant prompt is built ([#25694](https://github.com/twentyhq/twenty/pull/25694)) by @abdulrahmancodes - Acknowledge Slack file attachments in the assistant ([#25695](https://github.com/twentyhq/twenty/pull/25695)) by @abdulrahmancodes - Deliver the Claude reasoning config and make effort a first-class model parameter ([#25696](https://github.com/twentyhq/twenty/pull/25696)) by @FelixMalfait - fix(admin-panel): stop calling a metered line item's quantity "seats" ([#25698](https://github.com/twentyhq/twenty/pull/25698)) by @FelixMalfait - fix(billing): stop writing a raw ISO timestamp into a credit grant's reason ([#25699](https://github.com/twentyhq/twenty/pull/25699)) by @FelixMalfait - feat(slack): defer rate limited message delivery to a delayed job ([#25700](https://github.com/twentyhq/twenty/pull/25700)) by @abdulrahmancodes - feat(server): run server route dispatch jobs ahead of the trigger fan-out ([#25701](https://github.com/twentyhq/twenty/pull/25701)) by @abdulrahmancodes - feat(slack): answer the assistant request in the execution that records it ([#25702](https://github.com/twentyhq/twenty/pull/25702)) by @abdulrahmancodes - Upgrade the AI SDK to v7 ([#25704](https://github.com/twentyhq/twenty/pull/25704)) by @FelixMalfait - Write pulled navigation menu items as define files ([#25705](https://github.com/twentyhq/twenty/pull/25705)) by @Weiko - Show workspace-shared app connections to every member ([#25708](https://github.com/twentyhq/twenty/pull/25708)) by @abdulrahmancodes - fix(workflow): stop email steps sending from another member's account ([#25709](https://github.com/twentyhq/twenty/pull/25709)) by @hktitof - chore: sync AI model catalog ([#25710](https://github.com/twentyhq/twenty/pull/25710)) by @github-actions - Clear logoFileId when the workspace logo is removed ([#25711](https://github.com/twentyhq/twenty/pull/25711)) by @martmull - Migrate twenty-ui Checkbox to the shared form-control API ([#25712](https://github.com/twentyhq/twenty/pull/25712)) by @bosiraphael - Refresh self-hosted Google default to Gemini 3.8 Flash ([#25713](https://github.com/twentyhq/twenty/pull/25713)) by @twenty-pr-author - Increase logic function concurrency ([#25714](https://github.com/twentyhq/twenty/pull/25714)) by @martmull - Migrate twenty-ui Radio and RadioGroup ([#25715](https://github.com/twentyhq/twenty/pull/25715)) by @bosiraphael - Migrate twenty-ui Slider to Base UI ([#25716](https://github.com/twentyhq/twenty/pull/25716)) by @bosiraphael - Register the GraphQL resolver name map cache provider in the worker ([#25717](https://github.com/twentyhq/twenty/pull/25717)) by @prastoin - Backfill twenty-ui front component renderer stories ([#25719](https://github.com/twentyhq/twenty/pull/25719)) by @bosiraphael - Fix AWS region validation across partitions ([#25720](https://github.com/twentyhq/twenty/pull/25720)) by @NiklasDah - feat(ai): replace model pickers with a five-tier model slider ([#25721](https://github.com/twentyhq/twenty/pull/25721)) by @FelixMalfait - fix(apps): preserve vetted status during catalog sync ([#25725](https://github.com/twentyhq/twenty/pull/25725)) by @ehconitin - Add batch delivery to database-event-triggered logic functions ([#25726](https://github.com/twentyhq/twenty/pull/25726)) by @martmull - Import CalDAV events from servers that omit getetag ([#25728](https://github.com/twentyhq/twenty/pull/25728)) by @neo773 - Accept CalDAV calendars that do not publish a component set ([#25729](https://github.com/twentyhq/twenty/pull/25729)) by @neo773 - Score effort variants from the benchmark rows taken at their own effort ([#25730](https://github.com/twentyhq/twenty/pull/25730)) by @FelixMalfait - chore: sync AI model catalog ([#25731](https://github.com/twentyhq/twenty/pull/25731)) by @github-actions - Compare a record relation to the current member's relation in row-level permissions ([#25732](https://github.com/twentyhq/twenty/pull/25732)) by @Weiko - refactor(server): extract a single LRU eviction primitive ([#25733](https://github.com/twentyhq/twenty/pull/25733)) by @etiennejouan - fix: republish twenty-ui as MIT (1.0.0-alpha.2) to resolve stale AGPL artifacts ([#25738](https://github.com/twentyhq/twenty/pull/25738)) by @MauryaQbit - Stop pull overwriting a source file that defines no entity ([#25739](https://github.com/twentyhq/twenty/pull/25739)) by @Weiko - Write pulled standalone page layout widgets as define files ([#25743](https://github.com/twentyhq/twenty/pull/25743)) by @Weiko - chore: sync AI model catalog ([#25745](https://github.com/twentyhq/twenty/pull/25745)) by @github-actions - Stop calling a local file unknown to the workspace when the export reported it ([#25746](https://github.com/twentyhq/twenty/pull/25746)) by @Weiko - Tell pull users their project cannot build what pull just wrote ([#25747](https://github.com/twentyhq/twenty/pull/25747)) by @Weiko - Keep a stored file's identifier when its content is uploaded again ([#25748](https://github.com/twentyhq/twenty/pull/25748)) by @Weiko - Refuse to pull an application into a project that already defines another ([#25750](https://github.com/twentyhq/twenty/pull/25750)) by @Weiko - fix(messaging): don't delete messages still present in another folder's delta sync ([#25751](https://github.com/twentyhq/twenty/pull/25751)) by @breken-ai - Never infer deletion for rows a manifest cannot express ([#25752](https://github.com/twentyhq/twenty/pull/25752)) by @Weiko - fix(ai): keep catalog efforts under an AI_PROVIDERS override and fix tier UI findings ([#25753](https://github.com/twentyhq/twenty/pull/25753)) by @FelixMalfait - Block private-network SSO issuers and replace the safe-mode toggle with an internal host allowlist ([#25756](https://github.com/twentyhq/twenty/pull/25756)) by @FelixMalfait - Align twenty-ui with SDK package versions ([#25758](https://github.com/twentyhq/twenty/pull/25758)) by @bosiraphael - Restrict AI and Settings access during layout editing ([#25760](https://github.com/twentyhq/twenty/pull/25760)) by @Bonapara - refactor: share floating reference scale calculation ([#25762](https://github.com/twentyhq/twenty/pull/25762)) by @Bonapara - refactor(ai): seed the agent and skill settings forms from the loaded record ([#25764](https://github.com/twentyhq/twenty/pull/25764)) by @FelixMalfait - Let the e2e local registry accept twenty-ui ([#25765](https://github.com/twentyhq/twenty/pull/25765)) by @Weiko - Fill the empty Type column in Skills settings with the owning app ([#25766](https://github.com/twentyhq/twenty/pull/25766)) by @FelixMalfait - Read the deprecated flag from the model config when picking a tier default ([#25769](https://github.com/twentyhq/twenty/pull/25769)) by @Weiko - Keep only compliance badges on the import-contacts onboarding step ([#25774](https://github.com/twentyhq/twenty/pull/25774)) by @FelixMalfait - chore: sync AI model catalog ([#25775](https://github.com/twentyhq/twenty/pull/25775)) by @github-actions - Propagate SMTP send failures so the email job actually retries ([#25776](https://github.com/twentyhq/twenty/pull/25776)) by @neo773 - feat(ai-chat): hint @ and / in composer placeholder, add / skill suggestions ([#25778](https://github.com/twentyhq/twenty/pull/25778)) by @FelixMalfait - fix(storybook): prevent oversized Argos screenshots ([#25779](https://github.com/twentyhq/twenty/pull/25779)) by @bosiraphael - fix iCal parsing: bare CR (0x0D) line breaks instead of the CRLF thatβ¦ ([#25782](https://github.com/twentyhq/twenty/pull/25782)) by @mcr-ksh - Migrate Status to the new twenty-ui API ([#25785](https://github.com/twentyhq/twenty/pull/25785)) by @bosiraphael - Migrate Tag to the new twenty-ui API ([#25786](https://github.com/twentyhq/twenty/pull/25786)) by @bosiraphael - Fix CLAUDE.md guard import sources ([#25789](https://github.com/twentyhq/twenty/pull/25789)) by @prastoin - fix(front): create component instance ids once instead of rewriting them per surface ([#25790](https://github.com/twentyhq/twenty/pull/25790)) by @FelixMalfait - Complete call recordings whose Recall transcript is empty ([#25793](https://github.com/twentyhq/twenty/pull/25793)) by @ehconitin - Finish call recordings without a transcript when Recall rejects the transcript request ([#25794](https://github.com/twentyhq/twenty/pull/25794)) by @ehconitin - fix(front): hide connection provider avatar when there is no logo ([#25797](https://github.com/twentyhq/twenty/pull/25797)) by @martmull - feat(skills): split agent-only skills from user skills, rewrite the catalog ([#25798](https://github.com/twentyhq/twenty/pull/25798)) by @FelixMalfait - fix(front): open the view picker on the id its dropdown listens to ([#25799](https://github.com/twentyhq/twenty/pull/25799)) by @FelixMalfait - Stop re-checking already-warned workspaces every hour in CleanSuspendedWorkspacesJob ([#25800](https://github.com/twentyhq/twenty/pull/25800)) by @etiennejouan - Give each Sentry cron monitor its own max runtime ([#25801](https://github.com/twentyhq/twenty/pull/25801)) by @etiennejouan - Point pull users at the apply flag that protects what it could not write ([#25808](https://github.com/twentyhq/twenty/pull/25808)) by @Weiko - List every kind pull does not export yet ([#25811](https://github.com/twentyhq/twenty/pull/25811)) by @Weiko </details> **Full Changelog**: https://github.com/twentyhq/twenty/compare/twenty/v2.39.0...twenty/v2.40.0
Related Repositories
openclaw/openclawβ
392,722
The AI that really does things. Any OS. Any Platform. The lobster way. π¦
nilbuild/developer-roadmapβ
370,094
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
morluto/reaβ
360,569
Reverse engineer anything with agents, from app behavior down to native binaries.
anomalyco/opencodeβ
219,877
The open source coding agent.
n8n-io/n8nβ
208,283
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.