twenty/v2.43.0
diffusionstudio/coretwenty/v2.43.0Sep 28, 2026by twenty-pr[bot]
Upgrading?
AI Summary
Enhances usage management with storage and email quotas, expands Microsoft Teams integration, and improves core workflow execution and background processing.
Key Highlights
- Usage limits for workspace file storage and records
- Microsoft Teams app package scaffolding and Bot Connector
- Core workflow execution and background processing
- Usage metering for common API calls
Breaking Changes
- Record creation form becomes the default path
- Application file upload changes and CLI multipart fallback
- Server-side computation of application-scoped core schema
- Match workflow show page header to workspace
- Group Card parts under one component
New Features
- Usage limits for storage and records
- Microsoft Teams app package and Bot Connector
- Core workflow and version syncability
- Auth refusal for suspended workspaces
- Teams transcript OAuth consolidation
- Object metadata API updates
- Usage metering in complexity points
- Record restores and permanent delete logging
Full Release Notes
<!-- generated-release-notes v1 --> ## ⚠️ Breaking changes - feat(record-form): make the record creation form the default path ([#25907](https://github.com/twentyhq/twenty/pull/25907)) by @thomtrp - [2/5 workflows] Improve workflow classifier configuration ([#26291](https://github.com/twentyhq/twenty/pull/26291)) by @Bonapara - feat(application): deprecate uploadApplicationFile and drop the CLI multipart fallback ([#26379](https://github.com/twentyhq/twenty/pull/26379)) by @martmull - feat(files): upload workspace logos and profile pictures with direct upload ([#26382](https://github.com/twentyhq/twenty/pull/26382)) by @martmull - [BREAKING_CHANGE] refactor(server): compute the application-scoped core schema server-side ([#26439](https://github.com/twentyhq/twenty/pull/26439)) by @prastoin - chore(workflow): match the core workflow show page header to the workspace one ([#26552](https://github.com/twentyhq/twenty/pull/26552)) by @thomtrp - Group Card parts under one component ([#26654](https://github.com/twentyhq/twenty/pull/26654)) by @bosiraphael ## ✨ New features - feat(twenty-front): show secondary links in workflow action ([#24486](https://github.com/twentyhq/twenty/pull/24486)) by @Amit91848 - feat(view): land on the initial object view and hide the index view behind the flag ([#25682](https://github.com/twentyhq/twenty/pull/25682)) by @thomtrp - feat(slack): per-channel rules for the assistant ([#26016](https://github.com/twentyhq/twenty/pull/26016)) by @abdulrahmancodes - feat(usage-limit): cap workspace file storage with a stock limit kind ([#26042](https://github.com/twentyhq/twenty/pull/26042)) by @etiennejouan - feat(workflow): core-id native workflow API — reads and writes ([#26068](https://github.com/twentyhq/twenty/pull/26068)) by @thomtrp - feat: add serviceAccount support to Helm chart ([#26097](https://github.com/twentyhq/twenty/pull/26097)) by @mdminhazulhaque - feat(workflow): core-only workflow execution and background processing ([#26098](https://github.com/twentyhq/twenty/pull/26098)) by @thomtrp - feat: migrate workflow editor and actions to core IDs ([#26116](https://github.com/twentyhq/twenty/pull/26116)) by @thomtrp - feat(auth): refuse API access for suspended workspaces ([#26127](https://github.com/twentyhq/twenty/pull/26127)) by @etiennejouan - feat(ai): click the chat title in the page header to rename the thread ([#26146](https://github.com/twentyhq/twenty/pull/26146)) by @FelixMalfait - feat(usage-limit): cap workspace records with a stock limit ([#26147](https://github.com/twentyhq/twenty/pull/26147)) by @etiennejouan - feat(server): give the message object a standard record page layout ([#26153](https://github.com/twentyhq/twenty/pull/26153)) by @FelixMalfait - feat: expose queue job progress ([#26157](https://github.com/twentyhq/twenty/pull/26157)) by @Weiko - feat(workflow): make core workflow and workflow version syncable so definition changes broadcast ([#26158](https://github.com/twentyhq/twenty/pull/26158)) by @thomtrp - feat(workflow): consume core workflow events on the core workflow surfaces ([#26159](https://github.com/twentyhq/twenty/pull/26159)) by @thomtrp - feat(apps): run application lifecycle hooks on a dedicated queue ([#26166](https://github.com/twentyhq/twenty/pull/26166)) by @martmull - feat(teams): scaffold the Microsoft Teams app package ([#26185](https://github.com/twentyhq/twenty/pull/26185)) by @abdulrahmancodes - feat(teams): add the Bot Connector client and inbound activity verification ([#26186](https://github.com/twentyhq/twenty/pull/26186)) by @abdulrahmancodes - feat(workflow): migrate MCP tools and bundled app consumers to core workflow IDs ([#26189](https://github.com/twentyhq/twenty/pull/26189)) by @thomtrp - feat(ai): add evaluation models and a Classify workflow node ([#26225](https://github.com/twentyhq/twenty/pull/26225)) by @FelixMalfait - feat: private workflows on the core schema ([#26243](https://github.com/twentyhq/twenty/pull/26243)) by @FelixMalfait - feat(usage-limit): gate workflow node runs and logic function executions ([#26283](https://github.com/twentyhq/twenty/pull/26283)) by @etiennejouan - feat(client-sdk): upload files straight to storage from uploadFile ([#26305](https://github.com/twentyhq/twenty/pull/26305)) by @martmull - feat(application): deploy app tarballs straight to file storage ([#26314](https://github.com/twentyhq/twenty/pull/26314)) by @martmull - feat(teams): add feature settings foundation ([#26345](https://github.com/twentyhq/twenty/pull/26345)) by @ehconitin - feat(sharing): unify record access and enable multiplayer chats ([#26348](https://github.com/twentyhq/twenty/pull/26348)) by @FelixMalfait - feat(view): land on the kanban for opportunities and a list for campaigns ([#26360](https://github.com/twentyhq/twenty/pull/26360)) by @thomtrp - feat(teams): consolidate transcript OAuth into Teams ([#26362](https://github.com/twentyhq/twenty/pull/26362)) by @ehconitin - feat(ai): execute chat turns as their persisted sender ([#26369](https://github.com/twentyhq/twenty/pull/26369)) by @FelixMalfait - feat(usage-limit): cap email sends with a quota limit ([#26378](https://github.com/twentyhq/twenty/pull/26378)) by @etiennejouan - feat(object-metadata): allow updating readability through the metadata API ([#26427](https://github.com/twentyhq/twenty/pull/26427)) by @martmull - feat(server): require a user session on the calendar timeline ([#26440](https://github.com/twentyhq/twenty/pull/26440)) by @prastoin - feat(server): require a user session on account-level operations ([#26441](https://github.com/twentyhq/twenty/pull/26441)) by @prastoin - feat(teams): require a Teams endorsement on the activity signing key ([#26444](https://github.com/twentyhq/twenty/pull/26444)) by @abdulrahmancodes - feat(workflow): require a core parent on every workflow version (2.43) ([#26451](https://github.com/twentyhq/twenty/pull/26451)) by @thomtrp - feat(usage-limit): consume quota on app charges ([#26461](https://github.com/twentyhq/twenty/pull/26461)) by @etiennejouan - feat(usage-limit): let only an operator replace an instance default ([#26476](https://github.com/twentyhq/twenty/pull/26476)) by @etiennejouan - feat(front-components): share one application token pair per application ([#26525](https://github.com/twentyhq/twenty/pull/26525)) by @prastoin - feat(last-contact): add a health check and run the backfill synchronously (1.6.0) ([#26526](https://github.com/twentyhq/twenty/pull/26526)) by @martmull - feat(usage-limit): ship a default daily email quota per workspace ([#26535](https://github.com/twentyhq/twenty/pull/26535)) by @etiennejouan - feat(event-logs): log record restores and permanent deletes ([#26538](https://github.com/twentyhq/twenty/pull/26538)) by @martmull - feat(ai): link chat threads to workspace members (expand step) ([#26564](https://github.com/twentyhq/twenty/pull/26564)) by @FelixMalfait - feat(ai): make chat threads an attachment target ([#26565](https://github.com/twentyhq/twenty/pull/26565)) by @FelixMalfait - feat(ai): separate chat sharing UI from backend rollout ([#26581](https://github.com/twentyhq/twenty/pull/26581)) by @FelixMalfait - feat(docker): add ClickHouse to twenty-app-dev image ([#26598](https://github.com/twentyhq/twenty/pull/26598)) by @martmull - feat(workflow): toggle core workflow visibility from the command menu ([#26651](https://github.com/twentyhq/twenty/pull/26651)) by @thomtrp - feat(usage): meter common API calls in complexity points ([#26671](https://github.com/twentyhq/twenty/pull/26671)) by @etiennejouan ## 💅 Improvements & UX - Allow configuring the SMTP EHLO hostname ([#24932](https://github.com/twentyhq/twenty/pull/24932)) by @rollecode - Fix horizontal bar chart left axis labels always truncated to 10 characters ([#25544](https://github.com/twentyhq/twenty/pull/25544)) by @Thomas4390 - Granola 8/8: Add Granola listing copy and setup documentation ([#25577](https://github.com/twentyhq/twenty/pull/25577)) by @ehconitin - Settle call recordings whose Recall media expired ([#25795](https://github.com/twentyhq/twenty/pull/25795)) by @ehconitin - Slide the side panel with transform instead of animating its width ([#25844](https://github.com/twentyhq/twenty/pull/25844)) by @LouisDelbosc - Enable async CSV export progress behind a workspace flag ([#25968](https://github.com/twentyhq/twenty/pull/25968)) by @Weiko - Add async CSV export server behind a workspace flag ([#25987](https://github.com/twentyhq/twenty/pull/25987)) by @Weiko - feat localized legal links ([#25991](https://github.com/twentyhq/twenty/pull/25991)) by @minnibaevB - Hard-delete row-level permission predicates instead of soft-deleting them ([#25992](https://github.com/twentyhq/twenty/pull/25992)) by @Weiko - Hard-delete views and their children instead of soft-deleting them ([#26002](https://github.com/twentyhq/twenty/pull/26002)) by @Weiko - [forms 2/3] Improve record form field presentation ([#26031](https://github.com/twentyhq/twenty/pull/26031)) by @Bonapara - [2/2 Sidebar] New customization experience ([#26037](https://github.com/twentyhq/twenty/pull/26037)) by @Bonapara - Bind CSV export downloads to their requesting session ([#26052](https://github.com/twentyhq/twenty/pull/26052)) by @Weiko - [forms 3/4] Submit record creation forms with Command or Control Enter ([#26064](https://github.com/twentyhq/twenty/pull/26064)) by @Bonapara - Split installed app detail page into settings tabs ([#26065](https://github.com/twentyhq/twenty/pull/26065)) by @martmull - Unify Twenty UI icon buttons ([#26071](https://github.com/twentyhq/twenty/pull/26071)) by @bosiraphael - Unpin creation commands while records are selected ([#26075](https://github.com/twentyhq/twenty/pull/26075)) by @Bonapara - Make call recorder imports resumable with deterministic jobs ([#26080](https://github.com/twentyhq/twenty/pull/26080)) by @ehconitin - Migrate Twenty UI headings ([#26085](https://github.com/twentyhq/twenty/pull/26085)) by @bosiraphael - Replace Twenty UI Modal with Dialog ([#26087](https://github.com/twentyhq/twenty/pull/26087)) by @bosiraphael - Migrate tooltips to Base UI ([#26088](https://github.com/twentyhq/twenty/pull/26088)) by @bosiraphael - [forms 4/4] Name the record creation callback arguments ([#26101](https://github.com/twentyhq/twenty/pull/26101)) by @Bonapara - [3/3 Sidebar] Bulk object metadata updates ([#26105](https://github.com/twentyhq/twenty/pull/26105)) by @Bonapara - Send Slack files to the assistant agent as attachments ([#26106](https://github.com/twentyhq/twenty/pull/26106)) by @abdulrahmancodes - Skip missing Microsoft messages instead of resetting the mailbox sync ([#26107](https://github.com/twentyhq/twenty/pull/26107)) by @neo773 - Tidy navigation typing and remove dead drag state ([#26109](https://github.com/twentyhq/twenty/pull/26109)) by @Bonapara - Follow Graph pagination when discovering Microsoft mail folders ([#26118](https://github.com/twentyhq/twenty/pull/26118)) by @Maharsh17 - Match the floating text editor width to its field on record pages ([#26124](https://github.com/twentyhq/twenty/pull/26124)) by @charlesBochet - Fail a record export when a page fetch fails instead of truncating it ([#26125](https://github.com/twentyhq/twenty/pull/26125)) by @charlesBochet - Hide native spinner on number inputs ([#26126](https://github.com/twentyhq/twenty/pull/26126)) by @etiennejouan - fix(billing) - update billing plan CTAs from the plan and interval grid ([#26129](https://github.com/twentyhq/twenty/pull/26129)) by @etiennejouan - Group the command menu into sections ([#26130](https://github.com/twentyhq/twenty/pull/26130)) by @Bonapara - Move the unpin creation commands upgrade command to 2.42 and use the legacy path ([#26132](https://github.com/twentyhq/twenty/pull/26132)) by @prastoin - Import missing dependency in create-twenty-app ([#26133](https://github.com/twentyhq/twenty/pull/26133)) by @martmull - Fix UI builds without Monaco ([#26134](https://github.com/twentyhq/twenty/pull/26134)) by @bosiraphael - Restore banner button colors ([#26135](https://github.com/twentyhq/twenty/pull/26135)) by @bosiraphael - Treat the current upgrade version directory as previous once its tag exists ([#26137](https://github.com/twentyhq/twenty/pull/26137)) by @prastoin - Differentiate impromptu Fathom recording titles ([#26138](https://github.com/twentyhq/twenty/pull/26138)) by @ehconitin - Declare navigation menu items as children of object, view and page layout so their cache follows deletions ([#26141](https://github.com/twentyhq/twenty/pull/26141)) by @prastoin - Migrate Twenty UI tab navigation ([#26142](https://github.com/twentyhq/twenty/pull/26142)) by @bosiraphael - v1.8.4 — Partners app: keep the company name out of marketplace brief names ([#26143](https://github.com/twentyhq/twenty/pull/26143)) by @ijreilly - Migrate light icon buttons and groups ([#26144](https://github.com/twentyhq/twenty/pull/26144)) by @bosiraphael - Backfill when switching from 1.4.0 to =1.4.0 ([#26149](https://github.com/twentyhq/twenty/pull/26149)) by @martmull - Call recorder: Pause recording when the workspace has no credits ([#26151](https://github.com/twentyhq/twenty/pull/26151)) by @ehconitin - Show email thread messages when participants are missing ([#26155](https://github.com/twentyhq/twenty/pull/26155)) by @neo773 - Move twenty-partners app to twentyhq/twenty-eng ([#26161](https://github.com/twentyhq/twenty/pull/26161)) by @ijreilly - Report PDL enrichment failures and stop batches on rejected keys ([#26168](https://github.com/twentyhq/twenty/pull/26168)) by @bosiraphael - Align the Granola settings with Twenty's native settings design ([#26172](https://github.com/twentyhq/twenty/pull/26172)) by @ehconitin - Declare call recorder billing: usage label and marketplace pricing ([#26173](https://github.com/twentyhq/twenty/pull/26173)) by @ehconitin - Backfill the missing index of app-owned system relation legs ([#26175](https://github.com/twentyhq/twenty/pull/26175)) by @charlesBochet - Add Base Adresse Nationale as an address autocomplete driver ([#26176](https://github.com/twentyhq/twenty/pull/26176)) by @fcporto-nature - AI chat: tool calls render as widgets named by the tool ([#26179](https://github.com/twentyhq/twenty/pull/26179)) by @FelixMalfait - Sync message channels from webhooks without the cron hand-off ([#26180](https://github.com/twentyhq/twenty/pull/26180)) by @neo773 - Load sync cron channels with one query per tick ([#26181](https://github.com/twentyhq/twenty/pull/26181)) by @neo773 - Only write audit log events for workspaces entitled to audit logs ([#26182](https://github.com/twentyhq/twenty/pull/26182)) by @neo773 - Keep ClickHouse stalls from freezing the timeline queue ([#26183](https://github.com/twentyhq/twenty/pull/26183)) by @neo773 - Reduce subscription quantity sync delay from 24h to 6h ([#26190](https://github.com/twentyhq/twenty/pull/26190)) by @etiennejouan - Restrict front component token pair and renewal to sessions ([#26191](https://github.com/twentyhq/twenty/pull/26191)) by @prastoin - Scope application variable reads and updates to the calling application and workspace ([#26192](https://github.com/twentyhq/twenty/pull/26192)) by @prastoin - Add default likelihood settings for PDL enrichment ([#26195](https://github.com/twentyhq/twenty/pull/26195)) by @bosiraphael - Add last contact backfill button ([#26197](https://github.com/twentyhq/twenty/pull/26197)) by @martmull - Only fetch visible junction relations on record index queries ([#26198](https://github.com/twentyhq/twenty/pull/26198)) by @charlesBochet - Add SettingsRow and migrate legacy rows ([#26200](https://github.com/twentyhq/twenty/pull/26200)) by @bosiraphael - Update doc ([#26204](https://github.com/twentyhq/twenty/pull/26204)) by @martmull - Separate Twenty UI primitives and components ([#26207](https://github.com/twentyhq/twenty/pull/26207)) by @bosiraphael - Point Fathom website to fathom.ai and bump to 1.1.0 ([#26209](https://github.com/twentyhq/twenty/pull/26209)) by @ehconitin - Migrate picker rows to ListItem ([#26211](https://github.com/twentyhq/twenty/pull/26211)) by @bosiraphael - Unify icon buttons with elevated styling ([#26213](https://github.com/twentyhq/twenty/pull/26213)) by @bosiraphael - Bind the application claim OAuth state to the browser that started it ([#26214](https://github.com/twentyhq/twenty/pull/26214)) by @martmull - Defer slow workspace migration actions to a worker job ([#26222](https://github.com/twentyhq/twenty/pull/26222)) by @charlesBochet - Upgrade react-router to 7.18.4 ([#26232](https://github.com/twentyhq/twenty/pull/26232)) by @charlesBochet - [1/5] Enforce SYSTEM record visibility for event delivery ([#26244](https://github.com/twentyhq/twenty/pull/26244)) by @FelixMalfait - [2/5] Register five protected agent history workspace objects ([#26245](https://github.com/twentyhq/twenty/pull/26245)) by @FelixMalfait - [3/5] Route agent history through workspace-aware persistence ([#26246](https://github.com/twentyhq/twenty/pull/26246)) by @FelixMalfait - [4/5] Add verified, resumable agent-history migration ([#26247](https://github.com/twentyhq/twenty/pull/26247)) by @FelixMalfait - [5/5] Activate agent-history workspace storage through versioned upgrades ([#26248](https://github.com/twentyhq/twenty/pull/26248)) by @FelixMalfait - Fix blank record panels caused by tab stylesheet order ([#26254](https://github.com/twentyhq/twenty/pull/26254)) by @FelixMalfait - Fix workspace AI history reads and stream coordination ([#26259](https://github.com/twentyhq/twenty/pull/26259)) by @FelixMalfait - Stop the default domain from bouncing users back to their last workspace ([#26260](https://github.com/twentyhq/twenty/pull/26260)) by @Bonapara - Scaffold Teams Transcripts app ([#26264](https://github.com/twentyhq/twenty/pull/26264)) by @ehconitin - Show app url setting only in advanced mode ([#26265](https://github.com/twentyhq/twenty/pull/26265)) by @martmull - Add Microsoft Teams OAuth connection ([#26266](https://github.com/twentyhq/twenty/pull/26266)) by @ehconitin - Flag missing required application variables on the app settings page ([#26270](https://github.com/twentyhq/twenty/pull/26270)) by @martmull - Call recorder: resume bot-less recordings when the event payload carries an empty bot id ([#26272](https://github.com/twentyhq/twenty/pull/26272)) by @ehconitin - Always show the add step button on the last workflow node ([#26273](https://github.com/twentyhq/twenty/pull/26273)) by @Bonapara - Add Granola app gallery covers ([#26274](https://github.com/twentyhq/twenty/pull/26274)) by @ehconitin - Consolidate animated buttons ([#26276](https://github.com/twentyhq/twenty/pull/26276)) by @bosiraphael - Let apps report their own configuration state with defineHealthCheck ([#26277](https://github.com/twentyhq/twenty/pull/26277)) by @martmull - Set Granola to 1.0.0 for its first release ([#26278](https://github.com/twentyhq/twenty/pull/26278)) by @ehconitin - Fix Kanban queries with many fields ([#26279](https://github.com/twentyhq/twenty/pull/26279)) by @bosiraphael - Build a strict schema for agent structured output ([#26281](https://github.com/twentyhq/twenty/pull/26281)) by @ehconitin - Print export reasons in the pull report ([#26288](https://github.com/twentyhq/twenty/pull/26288)) by @Weiko - Export vertical-list widgets without the deprecated position form ([#26290](https://github.com/twentyhq/twenty/pull/26290)) by @Weiko - Remove unused Twenty UI buttons ([#26293](https://github.com/twentyhq/twenty/pull/26293)) by @bosiraphael - Migrate dropdown menu rows to ListItem ([#26297](https://github.com/twentyhq/twenty/pull/26297)) by @bosiraphael - Fix Kanban group-by queries with a record field or long column names ([#26300](https://github.com/twentyhq/twenty/pull/26300)) by @bosiraphael - Let apps declare several settings menu items with defineSettingsMenuItem ([#26302](https://github.com/twentyhq/twenty/pull/26302)) by @martmull - Secure front component media capture ([#26303](https://github.com/twentyhq/twenty/pull/26303)) by @bosiraphael - Keep preferences-page unsubscribes scoped to the unticked topics ([#26308](https://github.com/twentyhq/twenty/pull/26308)) by @neo773 - Keep table rows still on focus ([#26309](https://github.com/twentyhq/twenty/pull/26309)) by @bosiraphael - Update website app mockup to the current product design ([#26313](https://github.com/twentyhq/twenty/pull/26313)) by @Bonapara - Mention apps in the credit limit banner ([#26316](https://github.com/twentyhq/twenty/pull/26316)) by @ehconitin - Rename recording tabs to Transcript ([#26318](https://github.com/twentyhq/twenty/pull/26318)) by @ehconitin - Fix live-query date filters throwing on DATE_TIME record values ([#26321](https://github.com/twentyhq/twenty/pull/26321)) by @thomtrp - Hide workflows from side panel search and favorites when the core index flag is on ([#26323](https://github.com/twentyhq/twenty/pull/26323)) by @thomtrp - [1/4] Register agentChatThreadTarget as a standard workspace object ([#26328](https://github.com/twentyhq/twenty/pull/26328)) by @FelixMalfait - [2/4] Provision agentChatThreadTarget into existing workspaces ([#26329](https://github.com/twentyhq/twenty/pull/26329)) by @FelixMalfait - [3/4] Attach and detach conversations on a record ([#26330](https://github.com/twentyhq/twenty/pull/26330)) by @FelixMalfait - Give message campaigns their own send rate limit counters ([#26331](https://github.com/twentyhq/twenty/pull/26331)) by @neo773 - Price campaign emails at $0.90 per 1,000 ([#26333](https://github.com/twentyhq/twenty/pull/26333)) by @neo773 - Add actor field to any filter ([#26334](https://github.com/twentyhq/twenty/pull/26334)) by @BOHEUS - Fix permissions issue with search any field ([#26339](https://github.com/twentyhq/twenty/pull/26339)) by @BOHEUS - Run application upgrades as per-workspace jobs on a dedicated queue ([#26341](https://github.com/twentyhq/twenty/pull/26341)) by @martmull - Fix dark mode dropdown scrollbars ([#26344](https://github.com/twentyhq/twenty/pull/26344)) by @bosiraphael - Load limits on view groups ([#26349](https://github.com/twentyhq/twenty/pull/26349)) by @Bonapara - fix(workspace cleaning) - Enqueue suspended workspace destruction instead of running it inside the cron ([#26354](https://github.com/twentyhq/twenty/pull/26354)) by @etiennejouan - Add REDIS_QUEUE_PREFIX so BullMQ works on clustered Redis (hash-tagged keys) ([#26357](https://github.com/twentyhq/twenty/pull/26357)) by @thisispr - Rename workflow AI Agent to Agent and align node presentation ([#26363](https://github.com/twentyhq/twenty/pull/26363)) by @thomtrp - Recover and retry deferred workspace migration actions ([#26371](https://github.com/twentyhq/twenty/pull/26371)) by @charlesBochet - perf(clickhouse) - partition objectEvent by month in ClickHouse ([#26372](https://github.com/twentyhq/twenty/pull/26372)) by @etiennejouan - Standardize `twenty-front` module filename ([#26373](https://github.com/twentyhq/twenty/pull/26373)) by @BOHEUS - Fix the language switcher on docs.twenty.com ([#26374](https://github.com/twentyhq/twenty/pull/26374)) by @Bonapara - Standardize `twenty-server` module filename ([#26375](https://github.com/twentyhq/twenty/pull/26375)) by @BOHEUS - Add standardized rule ([#26376](https://github.com/twentyhq/twenty/pull/26376)) by @BOHEUS - Add the shared Dropdown foundation ([#26383](https://github.com/twentyhq/twenty/pull/26383)) by @bosiraphael - Add AI-assisted DNS setup for email group domains ([#26392](https://github.com/twentyhq/twenty/pull/26392)) by @neo773 - Pace call recorder recovery jobs to stay under Recall's rate limit ([#26418](https://github.com/twentyhq/twenty/pull/26418)) by @ehconitin - [Forms 1/5] Rename record creation from New to Create and keep it pinned ([#26419](https://github.com/twentyhq/twenty/pull/26419)) by @Bonapara - [Forms 2/5] Keep the record creation form open when creation fails ([#26422](https://github.com/twentyhq/twenty/pull/26422)) by @Bonapara - [Forms 3/5] Take currency amounts in units in record forms ([#26423](https://github.com/twentyhq/twenty/pull/26423)) by @Bonapara - [Forms 4/5] Let Tab move through form text inputs ([#26425](https://github.com/twentyhq/twenty/pull/26425)) by @Bonapara - Migrate independent Dropdown action menus ([#26432](https://github.com/twentyhq/twenty/pull/26432)) by @bosiraphael - Mark the Marketplace tab as beta in Applications settings ([#26433](https://github.com/twentyhq/twenty/pull/26433)) by @Bonapara - Trigger backfill when publishing 1.5.0 ([#26434](https://github.com/twentyhq/twenty/pull/26434)) by @martmull - Fix app-scoped schema generation for relations targeting another application's object ([#26436](https://github.com/twentyhq/twenty/pull/26436)) by @prastoin - Refuse schema migrations while deferred index builds are in flight ([#26446](https://github.com/twentyhq/twenty/pull/26446)) by @charlesBochet - Reload the enterprise validity token in the server process ([#26449](https://github.com/twentyhq/twenty/pull/26449)) by @ijreilly - Skip AI catalog entries the server cannot read instead of serving none ([#26452](https://github.com/twentyhq/twenty/pull/26452)) by @FelixMalfait - Make email group sends free for paying customers, with rate limits ([#26455](https://github.com/twentyhq/twenty/pull/26455)) by @neo773 - Bump version to 1.1.0 ([#26456](https://github.com/twentyhq/twenty/pull/26456)) by @martmull - Serve backend HTML with startup config and workspace iframe settings ([#26459](https://github.com/twentyhq/twenty/pull/26459)) by @FelixMalfait - Fix the useToast import in RecordCreationFormProvider ([#26460](https://github.com/twentyhq/twenty/pull/26460)) by @thomtrp - Consolidate resize handle interactions ([#26463](https://github.com/twentyhq/twenty/pull/26463)) by @bosiraphael - Use radio groups for segmented settings ([#26465](https://github.com/twentyhq/twenty/pull/26465)) by @bosiraphael - Stop provisioning navigation commands for SYSTEM-readable objects ([#26469](https://github.com/twentyhq/twenty/pull/26469)) by @martmull - Put the record creation form back behind a feature flag ([#26472](https://github.com/twentyhq/twenty/pull/26472)) by @thomtrp - Remove react-router dependency from twenty-ui ([#26477](https://github.com/twentyhq/twenty/pull/26477)) by @bosiraphael - Move ObjectMetadata and FieldMetadata onto the workspace-scoped repository ([#26479](https://github.com/twentyhq/twenty/pull/26479)) by @prastoin - Migrate Select, pickers and filter menus to the shared Dropdown ([#26483](https://github.com/twentyhq/twenty/pull/26483)) by @bosiraphael - Only let paying customers send or schedule campaigns ([#26486](https://github.com/twentyhq/twenty/pull/26486)) by @neo773 - Command menu sections ([#26488](https://github.com/twentyhq/twenty/pull/26488)) by @Bonapara - Move campaign deliveries and suppressions into the workspace schema ([#26491](https://github.com/twentyhq/twenty/pull/26491)) by @neo773 - Stop a Slack content-type mismatch claiming a missing files:read scope ([#26509](https://github.com/twentyhq/twenty/pull/26509)) by @abdulrahmancodes - Make People Data Labs likelihood settings user configurable ([#26512](https://github.com/twentyhq/twenty/pull/26512)) by @bosiraphael - Add a static cache version query param to the client-config request ([#26513](https://github.com/twentyhq/twenty/pull/26513)) by @prastoin - Surface the deferred action conflict as a conflict error ([#26521](https://github.com/twentyhq/twenty/pull/26521)) by @charlesBochet - Allow raw HTML blocks in workflow email bodies ([#26528](https://github.com/twentyhq/twenty/pull/26528)) by @neo773 - Replace responsive hooks with native media queries ([#26532](https://github.com/twentyhq/twenty/pull/26532)) by @bosiraphael - Defer foreign key validation for join columns ([#26534](https://github.com/twentyhq/twenty/pull/26534)) by @charlesBochet - Preserve record access before chat metadata is provisioned ([#26536](https://github.com/twentyhq/twenty/pull/26536)) by @FelixMalfait - Let Escape close the side panel from form fields ([#26540](https://github.com/twentyhq/twenty/pull/26540)) by @thomtrp - Rename attachment target column to "Attached to" and add an attachment record page with inline preview ([#26549](https://github.com/twentyhq/twenty/pull/26549)) by @FelixMalfait - Center icon buttons on Kanban and calendar cards ([#26550](https://github.com/twentyhq/twenty/pull/26550)) by @Bonapara - Retire EmailingDomain and MessageFolder from the workspace-scoped exemption list ([#26563](https://github.com/twentyhq/twenty/pull/26563)) by @prastoin - Subscribe to created Outlook mail notifications only ([#26569](https://github.com/twentyhq/twenty/pull/26569)) by @neo773 - Remove the deferred workspace migration actions design doc ([#26591](https://github.com/twentyhq/twenty/pull/26591)) by @charlesBochet - Revert "Slide the side panel with transform instead of animating its width" ([#26592](https://github.com/twentyhq/twenty/pull/26592)) by @charlesBochet - Move ApplicationEntity onto the workspace-scoped repository ([#26595](https://github.com/twentyhq/twenty/pull/26595)) by @prastoin - Expose selected object metadata and keep unchanged context values stable ([#26596](https://github.com/twentyhq/twenty/pull/26596)) by @bosiraphael - Migrate sort and editor toolbar dropdowns ([#26599](https://github.com/twentyhq/twenty/pull/26599)) by @bosiraphael - Move translations to a settings page with one row per language ([#26605](https://github.com/twentyhq/twenty/pull/26605)) by @Bonapara - Fix activity targets after initial company assignment ([#26613](https://github.com/twentyhq/twenty/pull/26613)) by @FelixMalfait - Remove message and calendar target read rollout flag ([#26625](https://github.com/twentyhq/twenty/pull/26625)) by @FelixMalfait - Repair missing company activity history during the 2.43 upgrade ([#26631](https://github.com/twentyhq/twenty/pull/26631)) by @FelixMalfait - Fix view permission integration test helper references ([#26633](https://github.com/twentyhq/twenty/pull/26633)) by @FelixMalfait - Stop hidden advanced settings from adding space between sections ([#26647](https://github.com/twentyhq/twenty/pull/26647)) by @Bonapara - Document remaining Twenty UI primitives ([#26649](https://github.com/twentyhq/twenty/pull/26649)) by @bosiraphael - Restore columns when resetting view grouping ([#26656](https://github.com/twentyhq/twenty/pull/26656)) by @bosiraphael - Use default domain for marketplace app share link ([#26666](https://github.com/twentyhq/twenty/pull/26666)) by @martmull - Restore tab and menu icon stroke weight ([#26670](https://github.com/twentyhq/twenty/pull/26670)) by @Bonapara - Keep upgrade command code in its version folder ([#26672](https://github.com/twentyhq/twenty/pull/26672)) by @FelixMalfait - Remove the per-campaign recipient cap ([#26675](https://github.com/twentyhq/twenty/pull/26675)) by @neo773 - Remove the unused sendEmailViaEmailingDomain mutation ([#26676](https://github.com/twentyhq/twenty/pull/26676)) by @neo773 - Serve agent history from workspace storage only ([#26678](https://github.com/twentyhq/twenty/pull/26678)) by @FelixMalfait - Scope application tokens to their own application ([#26681](https://github.com/twentyhq/twenty/pull/26681)) by @prastoin - Require a user session to change application registration ownership ([#26684](https://github.com/twentyhq/twenty/pull/26684)) by @prastoin - Truncate ClickHouse tables on database reset ([#26687](https://github.com/twentyhq/twenty/pull/26687)) by @martmull - Fix frontend routing for dotted navigation paths ([#26711](https://github.com/twentyhq/twenty/pull/26711)) by @FelixMalfait - Fix invitation E2E revoking the shared login session ([#26712](https://github.com/twentyhq/twenty/pull/26712)) by @FelixMalfait ## 🐛 Bug fixes - fix(server): normalize deprecated IANA timezone aliases before they reach SQL ([#23787](https://github.com/twentyhq/twenty/pull/23787)) by @M3BIONIX - fix(twenty-server): honor the identity provider's advertised id_token signing algorithm ([#24165](https://github.com/twentyhq/twenty/pull/24165)) by @suparikoli - fix: respect RLS predicate groups for select options ([#24327](https://github.com/twentyhq/twenty/pull/24327)) by @alamin284 - fix(view-permissions): recognize application principal in view access checks ([#24349](https://github.com/twentyhq/twenty/pull/24349)) by @longshaww - fix: ignore inherited Object keys when validating locales and normalize the x-locale header ([#24919](https://github.com/twentyhq/twenty/pull/24919)) by @guillaume-flambard - fix(front): keep legacy null phone subfields from being dropped ([#25420](https://github.com/twentyhq/twenty/pull/25420)) by @abhinavapasok - fix(view): keep view sorts in creation order in the flat view cache ([#25448](https://github.com/twentyhq/twenty/pull/25448)) by @sagarithm - fix(twenty-shared): honor underscore wildcard in string like and ilike filters ([#25489](https://github.com/twentyhq/twenty/pull/25489)) by @hktitof - fix(twenty-shared): honor wildcard parity in rich text ilike filter ([#25505](https://github.com/twentyhq/twenty/pull/25505)) by @hktitof - fix(twenty-shared): honor SQL percent wildcards in array containsIlike (#25247) ([#25551](https://github.com/twentyhq/twenty/pull/25551)) by @claxman - fix(security): enforce object-level role permissions on system object writes (#24309) ([#25809](https://github.com/twentyhq/twenty/pull/25809)) by @mini0n-ai - fix(workflow): match select filter options by exact value, not substring ([#25828](https://github.com/twentyhq/twenty/pull/25828)) by @breken-ai - fix(tool): make help center search resilient and its failures readable ([#25989](https://github.com/twentyhq/twenty/pull/25989)) by @Atharva0222 - fix(workflow): never freeze a null core workflow link on version mirror ([#26076](https://github.com/twentyhq/twenty/pull/26076)) by @thomtrp - fix(last-contact): batch API writes so a mailbox sync stays inside the rate limit ([#26110](https://github.com/twentyhq/twenty/pull/26110)) by @martmull - fix(front): reorder view fields from the rendered list instead of shifted indices ([#26112](https://github.com/twentyhq/twenty/pull/26112)) by @charlesBochet - fix(billing): wrap modal action buttons in flex slots instead of a child selector ([#26136](https://github.com/twentyhq/twenty/pull/26136)) by @etiennejouan - fix(call-recording): show terminal empty transcript states ([#26140](https://github.com/twentyhq/twenty/pull/26140)) by @ehconitin - fix(rich-text): normalize tiptap rich text written by workflow record steps ([#26156](https://github.com/twentyhq/twenty/pull/26156)) by @thomtrp - fix(ai): degrade unsupported runAgent attachments instead of failing the run ([#26177](https://github.com/twentyhq/twenty/pull/26177)) by @abdulrahmancodes - fix(server): correct misclassified structural exemptions in prefer-workspace-scoped-repository ([#26202](https://github.com/twentyhq/twenty/pull/26202)) by @prastoin - fix(docker): copy twenty-oxlint-rules manifest into server-deps stage ([#26231](https://github.com/twentyhq/twenty/pull/26231)) by @charlesBochet - fix(client-sdk): externalize all Node builtins in Vite lib build ([#26234](https://github.com/twentyhq/twenty/pull/26234)) by @AyeshaWaseemAhmad - fix(workflow): keep runs alive for if/else and skip edges across the continuation boundary ([#26271](https://github.com/twentyhq/twenty/pull/26271)) by @thomtrp - fix(usage-limit): key stock counters by their limit value ([#26275](https://github.com/twentyhq/twenty/pull/26275)) by @etiennejouan - fix(workflow): evict the cron trigger cache when a workflow version is deleted ([#26280](https://github.com/twentyhq/twenty/pull/26280)) by @thomtrp - fix(workflow): dispatch an iterator loop body listed in the iterator nextStepIds ([#26301](https://github.com/twentyhq/twenty/pull/26301)) by @thomtrp - fix: filter Firefox iOS YouTube script errors from Sentry ([#26324](https://github.com/twentyhq/twenty/pull/26324)) by @charlesBochet - fix: wait for workflow version before refreshing content ([#26340](https://github.com/twentyhq/twenty/pull/26340)) by @charlesBochet - fix(server): stop workspace commands retaining every visited workspace in memory ([#26342](https://github.com/twentyhq/twenty/pull/26342)) by @martmull - fix: separate connected account disconnect from deletion ([#26347](https://github.com/twentyhq/twenty/pull/26347)) by @neo773 - fix(ai-chat): stop Bedrock cache points from stacking across AI SDK steps ([#26355](https://github.com/twentyhq/twenty/pull/26355)) by @etiennejouan - fix: classify logic function rate limits as expected errors ([#26365](https://github.com/twentyhq/twenty/pull/26365)) by @charlesBochet - fix(oauth): provision the Twenty CLI OAuth client on non-seeded servers ([#26389](https://github.com/twentyhq/twenty/pull/26389)) by @martmull - fix(server): clarify email domain ownership conflict ([#26393](https://github.com/twentyhq/twenty/pull/26393)) by @neo773 - fix(server): allow transactional email without unsubscribe hostname ([#26395](https://github.com/twentyhq/twenty/pull/26395)) by @neo773 - fix(shared): reject scheme-relative backslash urls in isSafeUrl ([#26397](https://github.com/twentyhq/twenty/pull/26397)) by @Belkouche - fix(shared): escape regex metacharacters in raw json like filters ([#26398](https://github.com/twentyhq/twenty/pull/26398)) by @Belkouche - fix(front): keep additional phones and country code when importing a phone without calling code ([#26399](https://github.com/twentyhq/twenty/pull/26399)) by @Belkouche - fix(front): import a single multi-select value that parses as a JSON scalar ([#26400](https://github.com/twentyhq/twenty/pull/26400)) by @Belkouche - fix(front): strip float noise from percentage draft values ([#26401](https://github.com/twentyhq/twenty/pull/26401)) by @Belkouche - fix(server): compare gmail sync cursors numerically ([#26402](https://github.com/twentyhq/twenty/pull/26402)) by @Belkouche - fix(server): match blocklist entries case-insensitively ([#26403](https://github.com/twentyhq/twenty/pull/26403)) by @Belkouche - fix(server): evaluate workflow number and array filters on empty and JSON-like values ([#26404](https://github.com/twentyhq/twenty/pull/26404)) by @Belkouche - fix(server): keep a workflow run alive when resuming a leaf step while another branch is pending ([#26405](https://github.com/twentyhq/twenty/pull/26405)) by @Belkouche - fix(server): merge every readable field regardless of the mutation selection ([#26406](https://github.com/twentyhq/twenty/pull/26406)) by @Belkouche - fix(front): keep the record currency when a currency cell edit starts by typing ([#26407](https://github.com/twentyhq/twenty/pull/26407)) by @Belkouche - fix(server): lowercase calendar participant handles on import ([#26408](https://github.com/twentyhq/twenty/pull/26408)) by @Belkouche - fix(server): mint auto-login tokens with the caller's auth provider ([#26409](https://github.com/twentyhq/twenty/pull/26409)) by @Belkouche - fix(front): keep the calendar day when importing a date without time ([#26410](https://github.com/twentyhq/twenty/pull/26410)) by @Belkouche - fix(slack): honour silent channel rules outside the assistant path ([#26417](https://github.com/twentyhq/twenty/pull/26417)) by @abdulrahmancodes - fix(billing): serialize stripe subscription webhook per customer ([#26431](https://github.com/twentyhq/twenty/pull/26431)) by @etiennejouan - fix(workflow): unblock 2.42 workflow execution backfill on legacy workspaces ([#26435](https://github.com/twentyhq/twenty/pull/26435)) by @thomtrp - fix(workflow): delete orphan core workflows left by deleted workflows ([#26437](https://github.com/twentyhq/twenty/pull/26437)) by @thomtrp - fix(server): resolve server routes by primary key, fall back to the legacy identifier ([#26438](https://github.com/twentyhq/twenty/pull/26438)) by @prastoin - fix(server): intersect the calling application role in every settings permission check ([#26442](https://github.com/twentyhq/twenty/pull/26442)) by @prastoin - fix(upgrade): tolerate missing fields when creating message record pages ([#26447](https://github.com/twentyhq/twenty/pull/26447)) by @FelixMalfait - fix: display app permission flags and reset saved role changes ([#26450](https://github.com/twentyhq/twenty/pull/26450)) by @Weiko - fix(workflow): skip orphan core workflows in the 2.42 published pointer check ([#26458](https://github.com/twentyhq/twenty/pull/26458)) by @thomtrp - fix: fill scaffolded app page viewport ([#26464](https://github.com/twentyhq/twenty/pull/26464)) by @Weiko - fix(workflow): show remote edits on the open workflow canvas ([#26471](https://github.com/twentyhq/twenty/pull/26471)) by @thomtrp - fix(workflow): fall back to the last published version before the newest one ([#26474](https://github.com/twentyhq/twenty/pull/26474)) by @thomtrp - fix(usage-limit): register the quota filter on the logic function resolver ([#26478](https://github.com/twentyhq/twenty/pull/26478)) by @etiennejouan - fix(ai): keep message writes compatible during workspace upgrades ([#26487](https://github.com/twentyhq/twenty/pull/26487)) by @FelixMalfait - fix(metadata): guard view field group mutations with VIEWS and LAYOUTS permissions ([#26490](https://github.com/twentyhq/twenty/pull/26490)) by @Mateidslx - fix(workflow): create missing core workflows in the 2.42 execution backfill ([#26511](https://github.com/twentyhq/twenty/pull/26511)) by @thomtrp - fix(workflow): resolve the workspace version when a core version has no alias yet ([#26515](https://github.com/twentyhq/twenty/pull/26515)) by @thomtrp - fix(sharing): enforce upgraded metadata before sharing rollout ([#26520](https://github.com/twentyhq/twenty/pull/26520)) by @FelixMalfait - fix(command-menu-item): require LAYOUTS permission for command menu item mutations ([#26523](https://github.com/twentyhq/twenty/pull/26523)) by @addyCooks - fix(event-logs): don't skip rows that share a millisecond when paginating ([#26537](https://github.com/twentyhq/twenty/pull/26537)) by @martmull - fix(application): throttle failed application token renewals by session ([#26544](https://github.com/twentyhq/twenty/pull/26544)) by @prastoin - fix(ai): stop creating per-workspace foreign keys to core tables for agent history ([#26547](https://github.com/twentyhq/twenty/pull/26547)) by @FelixMalfait - fix(sdk): write the CLI config file with owner-only permissions ([#26548](https://github.com/twentyhq/twenty/pull/26548)) by @Weiko - fix(logic-function): backfill missing file rows of logic function files ([#26554](https://github.com/twentyhq/twenty/pull/26554)) by @martmull - fix(email): keep line breaks when opening a synced draft in the composer ([#26556](https://github.com/twentyhq/twenty/pull/26556)) by @ijreilly - fix(mcp): make the discovery guidance consistent across every surface ([#26558](https://github.com/twentyhq/twenty/pull/26558)) by @etiennejouan - fix: download CSV exports on the authenticated API origin ([#26567](https://github.com/twentyhq/twenty/pull/26567)) by @Weiko - fix: preserve API path prefixes in CSV export downloads ([#26568](https://github.com/twentyhq/twenty/pull/26568)) by @Weiko - fix(sharing): correct activation upgrade ordering ([#26579](https://github.com/twentyhq/twenty/pull/26579)) by @FelixMalfait - fix(file-storage): create the missing file row when copying a file by path ([#26582](https://github.com/twentyhq/twenty/pull/26582)) by @martmull - fix: drain metadata notifications before command shutdown ([#26585](https://github.com/twentyhq/twenty/pull/26585)) by @FelixMalfait - fix(apps): do not fan out auto upgrades to workspaces behind the app's required server version ([#26608](https://github.com/twentyhq/twenty/pull/26608)) by @charlesBochet - fix(docker): add AUTH_GOOGLE_ENABLED to docker-compose example ([#26610](https://github.com/twentyhq/twenty/pull/26610)) by @Taldres - fix(docker): force libexpat 2.8.5-r0 to clear CVE-2026-93990 ([#26615](https://github.com/twentyhq/twenty/pull/26615)) by @charlesBochet - fix(server): call makeMetadataApiRequest in the application view access test ([#26618](https://github.com/twentyhq/twenty/pull/26618)) by @martmull - fix(sso): insert SAML identity providers instead of saving on a client-supplied id ([#26623](https://github.com/twentyhq/twenty/pull/26623)) by @prastoin - fix(server): call makeMetadataApiRequest in the command menu item update test ([#26634](https://github.com/twentyhq/twenty/pull/26634)) by @charlesBochet - fix(workflow): stop reconciling workflows to core on the created event ([#26648](https://github.com/twentyhq/twenty/pull/26648)) by @thomtrp - fix(metrics): count directly executed GraphQL operations ([#26653](https://github.com/twentyhq/twenty/pull/26653)) by @charlesBochet - fix(workflow): repair core version parents and skip runs of deleted versions in the 2.42 execution backfill ([#26661](https://github.com/twentyhq/twenty/pull/26661)) by @thomtrp ## ⚡ Performance - perf(server): read the OTLP metrics export interval from OTEL_METRIC_EXPORT_INTERVAL, default 30s ([#26443](https://github.com/twentyhq/twenty/pull/26443)) by @etiennejouan - perf(server): resolve workspace default role from flat entity cache ([#26484](https://github.com/twentyhq/twenty/pull/26484)) by @charlesBochet - perf(slack): cache the installed Slack team id ([#26494](https://github.com/twentyhq/twenty/pull/26494)) by @abdulrahmancodes - perf(server): mark per-pod metrics with a pod attribute ([#26542](https://github.com/twentyhq/twenty/pull/26542)) by @etiennejouan - perf(search): read search results from the replica database ([#26551](https://github.com/twentyhq/twenty/pull/26551)) by @ijreilly - perf(server): index core foreign keys that cascade from workspace and application deletes ([#26655](https://github.com/twentyhq/twenty/pull/26655)) by @charlesBochet ## 🔧 Developer & API - Skip webhook and trigger fan-out jobs when nothing listens to the event ([#26184](https://github.com/twentyhq/twenty/pull/26184)) by @neo773 - Report workspace command failures through the CLI exit status ([#26263](https://github.com/twentyhq/twenty/pull/26263)) by @FelixMalfait - chore(log) - log one line per API request with actor, endpoint and trace ids ([#26269](https://github.com/twentyhq/twenty/pull/26269)) by @etiennejouan - Fix API ALLCAPS case to Pascal case in server tests ([#26411](https://github.com/twentyhq/twenty/pull/26411)) by @BOHEUS - Consolidate the public theme API ([#26482](https://github.com/twentyhq/twenty/pull/26482)) by @bosiraphael - Stop webhook subscriptions when transferring connected account ownership ([#26571](https://github.com/twentyhq/twenty/pull/26571)) by @neo773 - Let disconnect succeed when stopping webhook subscriptions fails ([#26572](https://github.com/twentyhq/twenty/pull/26572)) by @neo773 - Only create missing webhook subscriptions for syncing channels ([#26573](https://github.com/twentyhq/twenty/pull/26573)) by @neo773 - Prefer claude-opus-5-5 for the self-host Extra Smart rung ([#26590](https://github.com/twentyhq/twenty/pull/26590)) by @twenty-pr-author <details> <summary>🏗️ Internal changes (13)</summary> - docs(apps): declare both sides of a relation to a standard object ([#26113](https://github.com/twentyhq/twenty/pull/26113)) by @charlesBochet - chore(usage-limit): remove the API rate limit v2 feature flag ([#26169](https://github.com/twentyhq/twenty/pull/26169)) by @etiennejouan - chore(usage-limit): remove the quota engine credit bound feature flag ([#26174](https://github.com/twentyhq/twenty/pull/26174)) by @etiennejouan - chore: remove IS_APP_CLAIMING_ENABLED feature flag ([#26205](https://github.com/twentyhq/twenty/pull/26205)) by @martmull - test(apps): cover owner-workspace scope on application registration variables ([#26208](https://github.com/twentyhq/twenty/pull/26208)) by @prastoin - chore(people-data-labs): remove the workflow seeding that never ran ([#26262](https://github.com/twentyhq/twenty/pull/26262)) by @thomtrp - docs: correct the AI FAQ on using your own models when self-hosting ([#26306](https://github.com/twentyhq/twenty/pull/26306)) by @ijreilly - docs(billing): document usage limits ([#26457](https://github.com/twentyhq/twenty/pull/26457)) by @etiennejouan - docs: correct Delay workflow credit cost ([#26467](https://github.com/twentyhq/twenty/pull/26467)) by @FelixMalfait - chore: prepare twenty CLI package placeholder ([#26473](https://github.com/twentyhq/twenty/pull/26473)) by @Weiko - chore(billing): clean up the leftovers of the credit allowance migration ([#26475](https://github.com/twentyhq/twenty/pull/26475)) by @etiennejouan - refactor(file-storage): make copy private and drop dead copy/folder code ([#26593](https://github.com/twentyhq/twenty/pull/26593)) by @etiennejouan - refactor: return API-relative paths for CSV export downloads ([#26603](https://github.com/twentyhq/twenty/pull/26603)) by @Weiko </details> ## 🎉 New contributors - @Maharsh17 made their first contribution in https://github.com/twentyhq/twenty/pull/26118 - @mdminhazulhaque made their first contribution in https://github.com/twentyhq/twenty/pull/26097 - @Atharva0222 made their first contribution in https://github.com/twentyhq/twenty/pull/25989 - @minnibaevB made their first contribution in https://github.com/twentyhq/twenty/pull/25991 - @alamin284 made their first contribution in https://github.com/twentyhq/twenty/pull/24327 - @longshaww made their first contribution in https://github.com/twentyhq/twenty/pull/24349 - @mini0n-ai made their first contribution in https://github.com/twentyhq/twenty/pull/25809 - @Belkouche made their first contribution in https://github.com/twentyhq/twenty/pull/26397 - @thisispr made their first contribution in https://github.com/twentyhq/twenty/pull/26357 - @rollecode made their first contribution in https://github.com/twentyhq/twenty/pull/24932 - @M3BIONIX made their first contribution in https://github.com/twentyhq/twenty/pull/23787 - @suparikoli made their first contribution in https://github.com/twentyhq/twenty/pull/24165 - @Thomas4390 made their first contribution in https://github.com/twentyhq/twenty/pull/25544 - @sagarithm made their first contribution in https://github.com/twentyhq/twenty/pull/25448 - @LouisDelbosc made their first contribution in https://github.com/twentyhq/twenty/pull/25844 - @fcporto-nature made their first contribution in https://github.com/twentyhq/twenty/pull/26176 - @Mateidslx made their first contribution in https://github.com/twentyhq/twenty/pull/26490 - @Taldres made their first contribution in https://github.com/twentyhq/twenty/pull/26610 <details> <summary>Full changelog (392 PRs)</summary> - fix(server): normalize deprecated IANA timezone aliases before they reach SQL ([#23787](https://github.com/twentyhq/twenty/pull/23787)) by @M3BIONIX - fix(twenty-server): honor the identity provider's advertised id_token signing algorithm ([#24165](https://github.com/twentyhq/twenty/pull/24165)) by @suparikoli - fix: respect RLS predicate groups for select options ([#24327](https://github.com/twentyhq/twenty/pull/24327)) by @alamin284 - fix(view-permissions): recognize application principal in view access checks ([#24349](https://github.com/twentyhq/twenty/pull/24349)) by @longshaww - feat(twenty-front): show secondary links in workflow action ([#24486](https://github.com/twentyhq/twenty/pull/24486)) by @Amit91848 - fix: ignore inherited Object keys when validating locales and normalize the x-locale header ([#24919](https://github.com/twentyhq/twenty/pull/24919)) by @guillaume-flambard - Allow configuring the SMTP EHLO hostname ([#24932](https://github.com/twentyhq/twenty/pull/24932)) by @rollecode - fix(front): keep legacy null phone subfields from being dropped ([#25420](https://github.com/twentyhq/twenty/pull/25420)) by @abhinavapasok - fix(view): keep view sorts in creation order in the flat view cache ([#25448](https://github.com/twentyhq/twenty/pull/25448)) by @sagarithm - fix(twenty-shared): honor underscore wildcard in string like and ilike filters ([#25489](https://github.com/twentyhq/twenty/pull/25489)) by @hktitof - fix(twenty-shared): honor wildcard parity in rich text ilike filter ([#25505](https://github.com/twentyhq/twenty/pull/25505)) by @hktitof - Fix horizontal bar chart left axis labels always truncated to 10 characters ([#25544](https://github.com/twentyhq/twenty/pull/25544)) by @Thomas4390 - fix(twenty-shared): honor SQL percent wildcards in array containsIlike (#25247) ([#25551](https://github.com/twentyhq/twenty/pull/25551)) by @claxman - Granola 8/8: Add Granola listing copy and setup documentation ([#25577](https://github.com/twentyhq/twenty/pull/25577)) by @ehconitin - feat(view): land on the initial object view and hide the index view behind the flag ([#25682](https://github.com/twentyhq/twenty/pull/25682)) by @thomtrp - Settle call recordings whose Recall media expired ([#25795](https://github.com/twentyhq/twenty/pull/25795)) by @ehconitin - fix(security): enforce object-level role permissions on system object writes (#24309) ([#25809](https://github.com/twentyhq/twenty/pull/25809)) by @mini0n-ai - fix(workflow): match select filter options by exact value, not substring ([#25828](https://github.com/twentyhq/twenty/pull/25828)) by @breken-ai - Slide the side panel with transform instead of animating its width ([#25844](https://github.com/twentyhq/twenty/pull/25844)) by @LouisDelbosc - feat(record-form): make the record creation form the default path ([#25907](https://github.com/twentyhq/twenty/pull/25907)) by @thomtrp - Enable async CSV export progress behind a workspace flag ([#25968](https://github.com/twentyhq/twenty/pull/25968)) by @Weiko - Add async CSV export server behind a workspace flag ([#25987](https://github.com/twentyhq/twenty/pull/25987)) by @Weiko - fix(tool): make help center search resilient and its failures readable ([#25989](https://github.com/twentyhq/twenty/pull/25989)) by @Atharva0222 - feat localized legal links ([#25991](https://github.com/twentyhq/twenty/pull/25991)) by @minnibaevB - Hard-delete row-level permission predicates instead of soft-deleting them ([#25992](https://github.com/twentyhq/twenty/pull/25992)) by @Weiko - Hard-delete views and their children instead of soft-deleting them ([#26002](https://github.com/twentyhq/twenty/pull/26002)) by @Weiko - feat(slack): per-channel rules for the assistant ([#26016](https://github.com/twentyhq/twenty/pull/26016)) by @abdulrahmancodes - [forms 2/3] Improve record form field presentation ([#26031](https://github.com/twentyhq/twenty/pull/26031)) by @Bonapara - [2/2 Sidebar] New customization experience ([#26037](https://github.com/twentyhq/twenty/pull/26037)) by @Bonapara - feat(usage-limit): cap workspace file storage with a stock limit kind ([#26042](https://github.com/twentyhq/twenty/pull/26042)) by @etiennejouan - Bind CSV export downloads to their requesting session ([#26052](https://github.com/twentyhq/twenty/pull/26052)) by @Weiko - [forms 3/4] Submit record creation forms with Command or Control Enter ([#26064](https://github.com/twentyhq/twenty/pull/26064)) by @Bonapara - Split installed app detail page into settings tabs ([#26065](https://github.com/twentyhq/twenty/pull/26065)) by @martmull - feat(workflow): core-id native workflow API — reads and writes ([#26068](https://github.com/twentyhq/twenty/pull/26068)) by @thomtrp - Unify Twenty UI icon buttons ([#26071](https://github.com/twentyhq/twenty/pull/26071)) by @bosiraphael - Unpin creation commands while records are selected ([#26075](https://github.com/twentyhq/twenty/pull/26075)) by @Bonapara - fix(workflow): never freeze a null core workflow link on version mirror ([#26076](https://github.com/twentyhq/twenty/pull/26076)) by @thomtrp - Make call recorder imports resumable with deterministic jobs ([#26080](https://github.com/twentyhq/twenty/pull/26080)) by @ehconitin - Migrate Twenty UI headings ([#26085](https://github.com/twentyhq/twenty/pull/26085)) by @bosiraphael - Replace Twenty UI Modal with Dialog ([#26087](https://github.com/twentyhq/twenty/pull/26087)) by @bosiraphael - Migrate tooltips to Base UI ([#26088](https://github.com/twentyhq/twenty/pull/26088)) by @bosiraphael - feat: add serviceAccount support to Helm chart ([#26097](https://github.com/twentyhq/twenty/pull/26097)) by @mdminhazulhaque - feat(workflow): core-only workflow execution and background processing ([#26098](https://github.com/twentyhq/twenty/pull/26098)) by @thomtrp - chore: bump version to 2.42.0 ([#26100](https://github.com/twentyhq/twenty/pull/26100)) by @twenty-pr - [forms 4/4] Name the record creation callback arguments ([#26101](https://github.com/twentyhq/twenty/pull/26101)) by @Bonapara - [3/3 Sidebar] Bulk object metadata updates ([#26105](https://github.com/twentyhq/twenty/pull/26105)) by @Bonapara - Send Slack files to the assistant agent as attachments ([#26106](https://github.com/twentyhq/twenty/pull/26106)) by @abdulrahmancodes - Skip missing Microsoft messages instead of resetting the mailbox sync ([#26107](https://github.com/twentyhq/twenty/pull/26107)) by @neo773 - Tidy navigation typing and remove dead drag state ([#26109](https://github.com/twentyhq/twenty/pull/26109)) by @Bonapara - fix(last-contact): batch API writes so a mailbox sync stays inside the rate limit ([#26110](https://github.com/twentyhq/twenty/pull/26110)) by @martmull - fix(front): reorder view fields from the rendered list instead of shifted indices ([#26112](https://github.com/twentyhq/twenty/pull/26112)) by @charlesBochet - docs(apps): declare both sides of a relation to a standard object ([#26113](https://github.com/twentyhq/twenty/pull/26113)) by @charlesBochet - feat: migrate workflow editor and actions to core IDs ([#26116](https://github.com/twentyhq/twenty/pull/26116)) by @thomtrp - Follow Graph pagination when discovering Microsoft mail folders ([#26118](https://github.com/twentyhq/twenty/pull/26118)) by @Maharsh17 - chore: sync AI model catalog ([#26121](https://github.com/twentyhq/twenty/pull/26121)) by @github-actions - Match the floating text editor width to its field on record pages ([#26124](https://github.com/twentyhq/twenty/pull/26124)) by @charlesBochet - Fail a record export when a page fetch fails instead of truncating it ([#26125](https://github.com/twentyhq/twenty/pull/26125)) by @charlesBochet - Hide native spinner on number inputs ([#26126](https://github.com/twentyhq/twenty/pull/26126)) by @etiennejouan - feat(auth): refuse API access for suspended workspaces ([#26127](https://github.com/twentyhq/twenty/pull/26127)) by @etiennejouan - fix(billing) - update billing plan CTAs from the plan and interval grid ([#26129](https://github.com/twentyhq/twenty/pull/26129)) by @etiennejouan - Group the command menu into sections ([#26130](https://github.com/twentyhq/twenty/pull/26130)) by @Bonapara - Move the unpin creation commands upgrade command to 2.42 and use the legacy path ([#26132](https://github.com/twentyhq/twenty/pull/26132)) by @prastoin - Import missing dependency in create-twenty-app ([#26133](https://github.com/twentyhq/twenty/pull/26133)) by @martmull - Fix UI builds without Monaco ([#26134](https://github.com/twentyhq/twenty/pull/26134)) by @bosiraphael - Restore banner button colors ([#26135](https://github.com/twentyhq/twenty/pull/26135)) by @bosiraphael - fix(billing): wrap modal action buttons in flex slots instead of a child selector ([#26136](https://github.com/twentyhq/twenty/pull/26136)) by @etiennejouan - Treat the current upgrade version directory as previous once its tag exists ([#26137](https://github.com/twentyhq/twenty/pull/26137)) by @prastoin - Differentiate impromptu Fathom recording titles ([#26138](https://github.com/twentyhq/twenty/pull/26138)) by @ehconitin - fix(call-recording): show terminal empty transcript states ([#26140](https://github.com/twentyhq/twenty/pull/26140)) by @ehconitin - Declare navigation menu items as children of object, view and page layout so their cache follows deletions ([#26141](https://github.com/twentyhq/twenty/pull/26141)) by @prastoin - Migrate Twenty UI tab navigation ([#26142](https://github.com/twentyhq/twenty/pull/26142)) by @bosiraphael - v1.8.4 — Partners app: keep the company name out of marketplace brief names ([#26143](https://github.com/twentyhq/twenty/pull/26143)) by @ijreilly - Migrate light icon buttons and groups ([#26144](https://github.com/twentyhq/twenty/pull/26144)) by @bosiraphael - feat(ai): click the chat title in the page header to rename the thread ([#26146](https://github.com/twentyhq/twenty/pull/26146)) by @FelixMalfait - feat(usage-limit): cap workspace records with a stock limit ([#26147](https://github.com/twentyhq/twenty/pull/26147)) by @etiennejouan - Backfill when switching from 1.4.0 to =1.4.0 ([#26149](https://github.com/twentyhq/twenty/pull/26149)) by @martmull - Call recorder: Pause recording when the workspace has no credits ([#26151](https://github.com/twentyhq/twenty/pull/26151)) by @ehconitin - feat(server): give the message object a standard record page layout ([#26153](https://github.com/twentyhq/twenty/pull/26153)) by @FelixMalfait - Show email thread messages when participants are missing ([#26155](https://github.com/twentyhq/twenty/pull/26155)) by @neo773 - fix(rich-text): normalize tiptap rich text written by workflow record steps ([#26156](https://github.com/twentyhq/twenty/pull/26156)) by @thomtrp - feat: expose queue job progress ([#26157](https://github.com/twentyhq/twenty/pull/26157)) by @Weiko - feat(workflow): make core workflow and workflow version syncable so definition changes broadcast ([#26158](https://github.com/twentyhq/twenty/pull/26158)) by @thomtrp - feat(workflow): consume core workflow events on the core workflow surfaces ([#26159](https://github.com/twentyhq/twenty/pull/26159)) by @thomtrp - Move twenty-partners app to twentyhq/twenty-eng ([#26161](https://github.com/twentyhq/twenty/pull/26161)) by @ijreilly - feat(apps): run application lifecycle hooks on a dedicated queue ([#26166](https://github.com/twentyhq/twenty/pull/26166)) by @martmull - Report PDL enrichment failures and stop batches on rejected keys ([#26168](https://github.com/twentyhq/twenty/pull/26168)) by @bosiraphael - chore(usage-limit): remove the API rate limit v2 feature flag ([#26169](https://github.com/twentyhq/twenty/pull/26169)) by @etiennejouan - Align the Granola settings with Twenty's native settings design ([#26172](https://github.com/twentyhq/twenty/pull/26172)) by @ehconitin - Declare call recorder billing: usage label and marketplace pricing ([#26173](https://github.com/twentyhq/twenty/pull/26173)) by @ehconitin - chore(usage-limit): remove the quota engine credit bound feature flag ([#26174](https://github.com/twentyhq/twenty/pull/26174)) by @etiennejouan - Backfill the missing index of app-owned system relation legs ([#26175](https://github.com/twentyhq/twenty/pull/26175)) by @charlesBochet - Add Base Adresse Nationale as an address autocomplete driver ([#26176](https://github.com/twentyhq/twenty/pull/26176)) by @fcporto-nature - fix(ai): degrade unsupported runAgent attachments instead of failing the run ([#26177](https://github.com/twentyhq/twenty/pull/26177)) by @abdulrahmancodes - AI chat: tool calls render as widgets named by the tool ([#26179](https://github.com/twentyhq/twenty/pull/26179)) by @FelixMalfait - Sync message channels from webhooks without the cron hand-off ([#26180](https://github.com/twentyhq/twenty/pull/26180)) by @neo773 - Load sync cron channels with one query per tick ([#26181](https://github.com/twentyhq/twenty/pull/26181)) by @neo773 - Only write audit log events for workspaces entitled to audit logs ([#26182](https://github.com/twentyhq/twenty/pull/26182)) by @neo773 - Keep ClickHouse stalls from freezing the timeline queue ([#26183](https://github.com/twentyhq/twenty/pull/26183)) by @neo773 - Skip webhook and trigger fan-out jobs when nothing listens to the event ([#26184](https://github.com/twentyhq/twenty/pull/26184)) by @neo773 - feat(teams): scaffold the Microsoft Teams app package ([#26185](https://github.com/twentyhq/twenty/pull/26185)) by @abdulrahmancodes - feat(teams): add the Bot Connector client and inbound activity verification ([#26186](https://github.com/twentyhq/twenty/pull/26186)) by @abdulrahmancodes - chore: sync AI model catalog ([#26187](https://github.com/twentyhq/twenty/pull/26187)) by @github-actions - feat(workflow): migrate MCP tools and bundled app consumers to core workflow IDs ([#26189](https://github.com/twentyhq/twenty/pull/26189)) by @thomtrp - Reduce subscription quantity sync delay from 24h to 6h ([#26190](https://github.com/twentyhq/twenty/pull/26190)) by @etiennejouan - Restrict front component token pair and renewal to sessions ([#26191](https://github.com/twentyhq/twenty/pull/26191)) by @prastoin - Scope application variable reads and updates to the calling application and workspace ([#26192](https://github.com/twentyhq/twenty/pull/26192)) by @prastoin - Add default likelihood settings for PDL enrichment ([#26195](https://github.com/twentyhq/twenty/pull/26195)) by @bosiraphael - Add last contact backfill button ([#26197](https://github.com/twentyhq/twenty/pull/26197)) by @martmull - Only fetch visible junction relations on record index queries ([#26198](https://github.com/twentyhq/twenty/pull/26198)) by @charlesBochet - Add SettingsRow and migrate legacy rows ([#26200](https://github.com/twentyhq/twenty/pull/26200)) by @bosiraphael - fix(server): correct misclassified structural exemptions in prefer-workspace-scoped-repository ([#26202](https://github.com/twentyhq/twenty/pull/26202)) by @prastoin - Update doc ([#26204](https://github.com/twentyhq/twenty/pull/26204)) by @martmull - chore: remove IS_APP_CLAIMING_ENABLED feature flag ([#26205](https://github.com/twentyhq/twenty/pull/26205)) by @martmull - Separate Twenty UI primitives and components ([#26207](https://github.com/twentyhq/twenty/pull/26207)) by @bosiraphael - test(apps): cover owner-workspace scope on application registration variables ([#26208](https://github.com/twentyhq/twenty/pull/26208)) by @prastoin - Point Fathom website to fathom.ai and bump to 1.1.0 ([#26209](https://github.com/twentyhq/twenty/pull/26209)) by @ehconitin - Migrate picker rows to ListItem ([#26211](https://github.com/twentyhq/twenty/pull/26211)) by @bosiraphael - Unify icon buttons with elevated styling ([#26213](https://github.com/twentyhq/twenty/pull/26213)) by @bosiraphael - Bind the application claim OAuth state to the browser that started it ([#26214](https://github.com/twentyhq/twenty/pull/26214)) by @martmull - chore: sync AI model catalog ([#26221](https://github.com/twentyhq/twenty/pull/26221)) by @github-actions - Defer slow workspace migration actions to a worker job ([#26222](https://github.com/twentyhq/twenty/pull/26222)) by @charlesBochet - feat(ai): add evaluation models and a Classify workflow node ([#26225](https://github.com/twentyhq/twenty/pull/26225)) by @FelixMalfait - fix(docker): copy twenty-oxlint-rules manifest into server-deps stage ([#26231](https://github.com/twentyhq/twenty/pull/26231)) by @charlesBochet - Upgrade react-router to 7.18.4 ([#26232](https://github.com/twentyhq/twenty/pull/26232)) by @charlesBochet - fix(client-sdk): externalize all Node builtins in Vite lib build ([#26234](https://github.com/twentyhq/twenty/pull/26234)) by @AyeshaWaseemAhmad - chore: sync AI model catalog ([#26237](https://github.com/twentyhq/twenty/pull/26237)) by @github-actions - feat: private workflows on the core schema ([#26243](https://github.com/twentyhq/twenty/pull/26243)) by @FelixMalfait - [1/5] Enforce SYSTEM record visibility for event delivery ([#26244](https://github.com/twentyhq/twenty/pull/26244)) by @FelixMalfait - [2/5] Register five protected agent history workspace objects ([#26245](https://github.com/twentyhq/twenty/pull/26245)) by @FelixMalfait - [3/5] Route agent history through workspace-aware persistence ([#26246](https://github.com/twentyhq/twenty/pull/26246)) by @FelixMalfait - [4/5] Add verified, resumable agent-history migration ([#26247](https://github.com/twentyhq/twenty/pull/26247)) by @FelixMalfait - [5/5] Activate agent-history workspace storage through versioned upgrades ([#26248](https://github.com/twentyhq/twenty/pull/26248)) by @FelixMalfait - Fix blank record panels caused by tab stylesheet order ([#26254](https://github.com/twentyhq/twenty/pull/26254)) by @FelixMalfait - chore: sync AI model catalog ([#26256](https://github.com/twentyhq/twenty/pull/26256)) by @github-actions - Fix workspace AI history reads and stream coordination ([#26259](https://github.com/twentyhq/twenty/pull/26259)) by @FelixMalfait - Stop the default domain from bouncing users back to their last workspace ([#26260](https://github.com/twentyhq/twenty/pull/26260)) by @Bonapara - chore(people-data-labs): remove the workflow seeding that never ran ([#26262](https://github.com/twentyhq/twenty/pull/26262)) by @thomtrp - Report workspace command failures through the CLI exit status ([#26263](https://github.com/twentyhq/twenty/pull/26263)) by @FelixMalfait - Scaffold Teams Transcripts app ([#26264](https://github.com/twentyhq/twenty/pull/26264)) by @ehconitin - Show app url setting only in advanced mode ([#26265](https://github.com/twentyhq/twenty/pull/26265)) by @martmull - Add Microsoft Teams OAuth connection ([#26266](https://github.com/twentyhq/twenty/pull/26266)) by @ehconitin - chore(log) - log one line per API request with actor, endpoint and trace ids ([#26269](https://github.com/twentyhq/twenty/pull/26269)) by @etiennejouan - Flag missing required application variables on the app settings page ([#26270](https://github.com/twentyhq/twenty/pull/26270)) by @martmull - fix(workflow): keep runs alive for if/else and skip edges across the continuation boundary ([#26271](https://github.com/twentyhq/twenty/pull/26271)) by @thomtrp - Call recorder: resume bot-less recordings when the event payload carries an empty bot id ([#26272](https://github.com/twentyhq/twenty/pull/26272)) by @ehconitin - Always show the add step button on the last workflow node ([#26273](https://github.com/twentyhq/twenty/pull/26273)) by @Bonapara - Add Granola app gallery covers ([#26274](https://github.com/twentyhq/twenty/pull/26274)) by @ehconitin - fix(usage-limit): key stock counters by their limit value ([#26275](https://github.com/twentyhq/twenty/pull/26275)) by @etiennejouan - Consolidate animated buttons ([#26276](https://github.com/twentyhq/twenty/pull/26276)) by @bosiraphael - Let apps report their own configuration state with defineHealthCheck ([#26277](https://github.com/twentyhq/twenty/pull/26277)) by @martmull - Set Granola to 1.0.0 for its first release ([#26278](https://github.com/twentyhq/twenty/pull/26278)) by @ehconitin - Fix Kanban queries with many fields ([#26279](https://github.com/twentyhq/twenty/pull/26279)) by @bosiraphael - fix(workflow): evict the cron trigger cache when a workflow version is deleted ([#26280](https://github.com/twentyhq/twenty/pull/26280)) by @thomtrp - Build a strict schema for agent structured output ([#26281](https://github.com/twentyhq/twenty/pull/26281)) by @ehconitin - feat(usage-limit): gate workflow node runs and logic function executions ([#26283](https://github.com/twentyhq/twenty/pull/26283)) by @etiennejouan - Print export reasons in the pull report ([#26288](https://github.com/twentyhq/twenty/pull/26288)) by @Weiko - Export vertical-list widgets without the deprecated position form ([#26290](https://github.com/twentyhq/twenty/pull/26290)) by @Weiko - [2/5 workflows] Improve workflow classifier configuration ([#26291](https://github.com/twentyhq/twenty/pull/26291)) by @Bonapara - Remove unused Twenty UI buttons ([#26293](https://github.com/twentyhq/twenty/pull/26293)) by @bosiraphael - Migrate dropdown menu rows to ListItem ([#26297](https://github.com/twentyhq/twenty/pull/26297)) by @bosiraphael - Fix Kanban group-by queries with a record field or long column names ([#26300](https://github.com/twentyhq/twenty/pull/26300)) by @bosiraphael - fix(workflow): dispatch an iterator loop body listed in the iterator nextStepIds ([#26301](https://github.com/twentyhq/twenty/pull/26301)) by @thomtrp - Let apps declare several settings menu items with defineSettingsMenuItem ([#26302](https://github.com/twentyhq/twenty/pull/26302)) by @martmull - Secure front component media capture ([#26303](https://github.com/twentyhq/twenty/pull/26303)) by @bosiraphael - feat(client-sdk): upload files straight to storage from uploadFile ([#26305](https://github.com/twentyhq/twenty/pull/26305)) by @martmull - docs: correct the AI FAQ on using your own models when self-hosting ([#26306](https://github.com/twentyhq/twenty/pull/26306)) by @ijreilly - Keep preferences-page unsubscribes scoped to the unticked topics ([#26308](https://github.com/twentyhq/twenty/pull/26308)) by @neo773 - Keep table rows still on focus ([#26309](https://github.com/twentyhq/twenty/pull/26309)) by @bosiraphael - Update website app mockup to the current product design ([#26313](https://github.com/twentyhq/twenty/pull/26313)) by @Bonapara - feat(application): deploy app tarballs straight to file storage ([#26314](https://github.com/twentyhq/twenty/pull/26314)) by @martmull - Mention apps in the credit limit banner ([#26316](https://github.com/twentyhq/twenty/pull/26316)) by @ehconitin - Rename recording tabs to Transcript ([#26318](https://github.com/twentyhq/twenty/pull/26318)) by @ehconitin - Fix live-query date filters throwing on DATE_TIME record values ([#26321](https://github.com/twentyhq/twenty/pull/26321)) by @thomtrp - Hide workflows from side panel search and favorites when the core index flag is on ([#26323](https://github.com/twentyhq/twenty/pull/26323)) by @thomtrp - fix: filter Firefox iOS YouTube script errors from Sentry ([#26324](https://github.com/twentyhq/twenty/pull/26324)) by @charlesBochet - [1/4] Register agentChatThreadTarget as a standard workspace object ([#26328](https://github.com/twentyhq/twenty/pull/26328)) by @FelixMalfait - [2/4] Provision agentChatThreadTarget into existing workspaces ([#26329](https://github.com/twentyhq/twenty/pull/26329)) by @FelixMalfait - [3/4] Attach and detach conversations on a record ([#26330](https://github.com/twentyhq/twenty/pull/26330)) by @FelixMalfait - Give message campaigns their own send rate limit counters ([#26331](https://github.com/twentyhq/twenty/pull/26331)) by @neo773 - Price campaign emails at $0.90 per 1,000 ([#26333](https://github.com/twentyhq/twenty/pull/26333)) by @neo773 - Add actor field to any filter ([#26334](https://github.com/twentyhq/twenty/pull/26334)) by @BOHEUS - chore: sync AI model catalog ([#26335](https://github.com/twentyhq/twenty/pull/26335)) by @github-actions - Fix permissions issue with search any field ([#26339](https://github.com/twentyhq/twenty/pull/26339)) by @BOHEUS - fix: wait for workflow version before refreshing content ([#26340](https://github.com/twentyhq/twenty/pull/26340)) by @charlesBochet - Run application upgrades as per-workspace jobs on a dedicated queue ([#26341](https://github.com/twentyhq/twenty/pull/26341)) by @martmull - fix(server): stop workspace commands retaining every visited workspace in memory ([#26342](https://github.com/twentyhq/twenty/pull/26342)) by @martmull - Fix dark mode dropdown scrollbars ([#26344](https://github.com/twentyhq/twenty/pull/26344)) by @bosiraphael - feat(teams): add feature settings foundation ([#26345](https://github.com/twentyhq/twenty/pull/26345)) by @ehconitin - fix: separate connected account disconnect from deletion ([#26347](https://github.com/twentyhq/twenty/pull/26347)) by @neo773 - feat(sharing): unify record access and enable multiplayer chats ([#26348](https://github.com/twentyhq/twenty/pull/26348)) by @FelixMalfait - Load limits on view groups ([#26349](https://github.com/twentyhq/twenty/pull/26349)) by @Bonapara - fix(workspace cleaning) - Enqueue suspended workspace destruction instead of running it inside the cron ([#26354](https://github.com/twentyhq/twenty/pull/26354)) by @etiennejouan - fix(ai-chat): stop Bedrock cache points from stacking across AI SDK steps ([#26355](https://github.com/twentyhq/twenty/pull/26355)) by @etiennejouan - Add REDIS_QUEUE_PREFIX so BullMQ works on clustered Redis (hash-tagged keys) ([#26357](https://github.com/twentyhq/twenty/pull/26357)) by @thisispr - feat(view): land on the kanban for opportunities and a list for campaigns ([#26360](https://github.com/twentyhq/twenty/pull/26360)) by @thomtrp - feat(teams): consolidate transcript OAuth into Teams ([#26362](https://github.com/twentyhq/twenty/pull/26362)) by @ehconitin - Rename workflow AI Agent to Agent and align node presentation ([#26363](https://github.com/twentyhq/twenty/pull/26363)) by @thomtrp - fix: classify logic function rate limits as expected errors ([#26365](https://github.com/twentyhq/twenty/pull/26365)) by @charlesBochet - feat(ai): execute chat turns as their persisted sender ([#26369](https://github.com/twentyhq/twenty/pull/26369)) by @FelixMalfait - Recover and retry deferred workspace migration actions ([#26371](https://github.com/twentyhq/twenty/pull/26371)) by @charlesBochet - perf(clickhouse) - partition objectEvent by month in ClickHouse ([#26372](https://github.com/twentyhq/twenty/pull/26372)) by @etiennejouan - Standardize `twenty-front` module filename ([#26373](https://github.com/twentyhq/twenty/pull/26373)) by @BOHEUS - Fix the language switcher on docs.twenty.com ([#26374](https://github.com/twentyhq/twenty/pull/26374)) by @Bonapara - Standardize `twenty-server` module filename ([#26375](https://github.com/twentyhq/twenty/pull/26375)) by @BOHEUS - Add standardized rule ([#26376](https://github.com/twentyhq/twenty/pull/26376)) by @BOHEUS - feat(usage-limit): cap email sends with a quota limit ([#26378](https://github.com/twentyhq/twenty/pull/26378)) by @etiennejouan - feat(application): deprecate uploadApplicationFile and drop the CLI multipart fallback ([#26379](https://github.com/twentyhq/twenty/pull/26379)) by @martmull - feat(files): upload workspace logos and profile pictures with direct upload ([#26382](https://github.com/twentyhq/twenty/pull/26382)) by @martmull - Add the shared Dropdown foundation ([#26383](https://github.com/twentyhq/twenty/pull/26383)) by @bosiraphael - fix(oauth): provision the Twenty CLI OAuth client on non-seeded servers ([#26389](https://github.com/twentyhq/twenty/pull/26389)) by @martmull - Add AI-assisted DNS setup for email group domains ([#26392](https://github.com/twentyhq/twenty/pull/26392)) by @neo773 - fix(server): clarify email domain ownership conflict ([#26393](https://github.com/twentyhq/twenty/pull/26393)) by @neo773 - fix(server): allow transactional email without unsubscribe hostname ([#26395](https://github.com/twentyhq/twenty/pull/26395)) by @neo773 - fix(shared): reject scheme-relative backslash urls in isSafeUrl ([#26397](https://github.com/twentyhq/twenty/pull/26397)) by @Belkouche - fix(shared): escape regex metacharacters in raw json like filters ([#26398](https://github.com/twentyhq/twenty/pull/26398)) by @Belkouche - fix(front): keep additional phones and country code when importing a phone without calling code ([#26399](https://github.com/twentyhq/twenty/pull/26399)) by @Belkouche - fix(front): import a single multi-select value that parses as a JSON scalar ([#26400](https://github.com/twentyhq/twenty/pull/26400)) by @Belkouche - fix(front): strip float noise from percentage draft values ([#26401](https://github.com/twentyhq/twenty/pull/26401)) by @Belkouche - fix(server): compare gmail sync cursors numerically ([#26402](https://github.com/twentyhq/twenty/pull/26402)) by @Belkouche - fix(server): match blocklist entries case-insensitively ([#26403](https://github.com/twentyhq/twenty/pull/26403)) by @Belkouche - fix(server): evaluate workflow number and array filters on empty and JSON-like values ([#26404](https://github.com/twentyhq/twenty/pull/26404)) by @Belkouche - fix(server): keep a workflow run alive when resuming a leaf step while another branch is pending ([#26405](https://github.com/twentyhq/twenty/pull/26405)) by @Belkouche - fix(server): merge every readable field regardless of the mutation selection ([#26406](https://github.com/twentyhq/twenty/pull/26406)) by @Belkouche - fix(front): keep the record currency when a currency cell edit starts by typing ([#26407](https://github.com/twentyhq/twenty/pull/26407)) by @Belkouche - fix(server): lowercase calendar participant handles on import ([#26408](https://github.com/twentyhq/twenty/pull/26408)) by @Belkouche - fix(server): mint auto-login tokens with the caller's auth provider ([#26409](https://github.com/twentyhq/twenty/pull/26409)) by @Belkouche - fix(front): keep the calendar day when importing a date without time ([#26410](https://github.com/twentyhq/twenty/pull/26410)) by @Belkouche - Fix API ALLCAPS case to Pascal case in server tests ([#26411](https://github.com/twentyhq/twenty/pull/26411)) by @BOHEUS - chore: sync AI model catalog ([#26416](https://github.com/twentyhq/twenty/pull/26416)) by @github-actions - fix(slack): honour silent channel rules outside the assistant path ([#26417](https://github.com/twentyhq/twenty/pull/26417)) by @abdulrahmancodes - Pace call recorder recovery jobs to stay under Recall's rate limit ([#26418](https://github.com/twentyhq/twenty/pull/26418)) by @ehconitin - [Forms 1/5] Rename record creation from New to Create and keep it pinned ([#26419](https://github.com/twentyhq/twenty/pull/26419)) by @Bonapara - [Forms 2/5] Keep the record creation form open when creation fails ([#26422](https://github.com/twentyhq/twenty/pull/26422)) by @Bonapara - [Forms 3/5] Take currency amounts in units in record forms ([#26423](https://github.com/twentyhq/twenty/pull/26423)) by @Bonapara - [Forms 4/5] Let Tab move through form text inputs ([#26425](https://github.com/twentyhq/twenty/pull/26425)) by @Bonapara - feat(object-metadata): allow updating readability through the metadata API ([#26427](https://github.com/twentyhq/twenty/pull/26427)) by @martmull - fix(billing): serialize stripe subscription webhook per customer ([#26431](https://github.com/twentyhq/twenty/pull/26431)) by @etiennejouan - Migrate independent Dropdown action menus ([#26432](https://github.com/twentyhq/twenty/pull/26432)) by @bosiraphael - Mark the Marketplace tab as beta in Applications settings ([#26433](https://github.com/twentyhq/twenty/pull/26433)) by @Bonapara - Trigger backfill when publishing 1.5.0 ([#26434](https://github.com/twentyhq/twenty/pull/26434)) by @martmull - fix(workflow): unblock 2.42 workflow execution backfill on legacy workspaces ([#26435](https://github.com/twentyhq/twenty/pull/26435)) by @thomtrp - Fix app-scoped schema generation for relations targeting another application's object ([#26436](https://github.com/twentyhq/twenty/pull/26436)) by @prastoin - fix(workflow): delete orphan core workflows left by deleted workflows ([#26437](https://github.com/twentyhq/twenty/pull/26437)) by @thomtrp - fix(server): resolve server routes by primary key, fall back to the legacy identifier ([#26438](https://github.com/twentyhq/twenty/pull/26438)) by @prastoin - [BREAKING_CHANGE] refactor(server): compute the application-scoped core schema server-side ([#26439](https://github.com/twentyhq/twenty/pull/26439)) by @prastoin - feat(server): require a user session on the calendar timeline ([#26440](https://github.com/twentyhq/twenty/pull/26440)) by @prastoin - feat(server): require a user session on account-level operations ([#26441](https://github.com/twentyhq/twenty/pull/26441)) by @prastoin - fix(server): intersect the calling application role in every settings permission check ([#26442](https://github.com/twentyhq/twenty/pull/26442)) by @prastoin - perf(server): read the OTLP metrics export interval from OTEL_METRIC_EXPORT_INTERVAL, default 30s ([#26443](https://github.com/twentyhq/twenty/pull/26443)) by @etiennejouan - feat(teams): require a Teams endorsement on the activity signing key ([#26444](https://github.com/twentyhq/twenty/pull/26444)) by @abdulrahmancodes - Refuse schema migrations while deferred index builds are in flight ([#26446](https://github.com/twentyhq/twenty/pull/26446)) by @charlesBochet - fix(upgrade): tolerate missing fields when creating message record pages ([#26447](https://github.com/twentyhq/twenty/pull/26447)) by @FelixMalfait - Reload the enterprise validity token in the server process ([#26449](https://github.com/twentyhq/twenty/pull/26449)) by @ijreilly - fix: display app permission flags and reset saved role changes ([#26450](https://github.com/twentyhq/twenty/pull/26450)) by @Weiko - feat(workflow): require a core parent on every workflow version (2.43) ([#26451](https://github.com/twentyhq/twenty/pull/26451)) by @thomtrp - Skip AI catalog entries the server cannot read instead of serving none ([#26452](https://github.com/twentyhq/twenty/pull/26452)) by @FelixMalfait - Make email group sends free for paying customers, with rate limits ([#26455](https://github.com/twentyhq/twenty/pull/26455)) by @neo773 - Bump version to 1.1.0 ([#26456](https://github.com/twentyhq/twenty/pull/26456)) by @martmull - docs(billing): document usage limits ([#26457](https://github.com/twentyhq/twenty/pull/26457)) by @etiennejouan - fix(workflow): skip orphan core workflows in the 2.42 published pointer check ([#26458](https://github.com/twentyhq/twenty/pull/26458)) by @thomtrp - Serve backend HTML with startup config and workspace iframe settings ([#26459](https://github.com/twentyhq/twenty/pull/26459)) by @FelixMalfait - Fix the useToast import in RecordCreationFormProvider ([#26460](https://github.com/twentyhq/twenty/pull/26460)) by @thomtrp - feat(usage-limit): consume quota on app charges ([#26461](https://github.com/twentyhq/twenty/pull/26461)) by @etiennejouan - Consolidate resize handle interactions ([#26463](https://github.com/twentyhq/twenty/pull/26463)) by @bosiraphael - fix: fill scaffolded app page viewport ([#26464](https://github.com/twentyhq/twenty/pull/26464)) by @Weiko - Use radio groups for segmented settings ([#26465](https://github.com/twentyhq/twenty/pull/26465)) by @bosiraphael - docs: correct Delay workflow credit cost ([#26467](https://github.com/twentyhq/twenty/pull/26467)) by @FelixMalfait - chore: bump version to 2.43.0 ([#26468](https://github.com/twentyhq/twenty/pull/26468)) by @twenty-pr - Stop provisioning navigation commands for SYSTEM-readable objects ([#26469](https://github.com/twentyhq/twenty/pull/26469)) by @martmull - fix(workflow): show remote edits on the open workflow canvas ([#26471](https://github.com/twentyhq/twenty/pull/26471)) by @thomtrp - Put the record creation form back behind a feature flag ([#26472](https://github.com/twentyhq/twenty/pull/26472)) by @thomtrp - chore: prepare twenty CLI package placeholder ([#26473](https://github.com/twentyhq/twenty/pull/26473)) by @Weiko - fix(workflow): fall back to the last published version before the newest one ([#26474](https://github.com/twentyhq/twenty/pull/26474)) by @thomtrp - chore(billing): clean up the leftovers of the credit allowance migration ([#26475](https://github.com/twentyhq/twenty/pull/26475)) by @etiennejouan - feat(usage-limit): let only an operator replace an instance default ([#26476](https://github.com/twentyhq/twenty/pull/26476)) by @etiennejouan - Remove react-router dependency from twenty-ui ([#26477](https://github.com/twentyhq/twenty/pull/26477)) by @bosiraphael - fix(usage-limit): register the quota filter on the logic function resolver ([#26478](https://github.com/twentyhq/twenty/pull/26478)) by @etiennejouan - Move ObjectMetadata and FieldMetadata onto the workspace-scoped repository ([#26479](https://github.com/twentyhq/twenty/pull/26479)) by @prastoin - Consolidate the public theme API ([#26482](https://github.com/twentyhq/twenty/pull/26482)) by @bosiraphael - Migrate Select, pickers and filter menus to the shared Dropdown ([#26483](https://github.com/twentyhq/twenty/pull/26483)) by @bosiraphael - perf(server): resolve workspace default role from flat entity cache ([#26484](https://github.com/twentyhq/twenty/pull/26484)) by @charlesBochet - Only let paying customers send or schedule campaigns ([#26486](https://github.com/twentyhq/twenty/pull/26486)) by @neo773 - fix(ai): keep message writes compatible during workspace upgrades ([#26487](https://github.com/twentyhq/twenty/pull/26487)) by @FelixMalfait - Command menu sections ([#26488](https://github.com/twentyhq/twenty/pull/26488)) by @Bonapara - fix(metadata): guard view field group mutations with VIEWS and LAYOUTS permissions ([#26490](https://github.com/twentyhq/twenty/pull/26490)) by @Mateidslx - Move campaign deliveries and suppressions into the workspace schema ([#26491](https://github.com/twentyhq/twenty/pull/26491)) by @neo773 - perf(slack): cache the installed Slack team id ([#26494](https://github.com/twentyhq/twenty/pull/26494)) by @abdulrahmancodes - chore: sync AI model catalog ([#26508](https://github.com/twentyhq/twenty/pull/26508)) by @github-actions - Stop a Slack content-type mismatch claiming a missing files:read scope ([#26509](https://github.com/twentyhq/twenty/pull/26509)) by @abdulrahmancodes - fix(workflow): create missing core workflows in the 2.42 execution backfill ([#26511](https://github.com/twentyhq/twenty/pull/26511)) by @thomtrp - Make People Data Labs likelihood settings user configurable ([#26512](https://github.com/twentyhq/twenty/pull/26512)) by @bosiraphael - Add a static cache version query param to the client-config request ([#26513](https://github.com/twentyhq/twenty/pull/26513)) by @prastoin - fix(workflow): resolve the workspace version when a core version has no alias yet ([#26515](https://github.com/twentyhq/twenty/pull/26515)) by @thomtrp - fix(sharing): enforce upgraded metadata before sharing rollout ([#26520](https://github.com/twentyhq/twenty/pull/26520)) by @FelixMalfait - Surface the deferred action conflict as a conflict error ([#26521](https://github.com/twentyhq/twenty/pull/26521)) by @charlesBochet - i18n - translations ([#26522](https://github.com/twentyhq/twenty/pull/26522)) by @github-actions - fix(command-menu-item): require LAYOUTS permission for command menu item mutations ([#26523](https://github.com/twentyhq/twenty/pull/26523)) by @addyCooks - feat(front-components): share one application token pair per application ([#26525](https://github.com/twentyhq/twenty/pull/26525)) by @prastoin - feat(last-contact): add a health check and run the backfill synchronously (1.6.0) ([#26526](https://github.com/twentyhq/twenty/pull/26526)) by @martmull - i18n - translations ([#26527](https://github.com/twentyhq/twenty/pull/26527)) by @github-actions - Allow raw HTML blocks in workflow email bodies ([#26528](https://github.com/twentyhq/twenty/pull/26528)) by @neo773 - i18n - translations ([#26529](https://github.com/twentyhq/twenty/pull/26529)) by @github-actions - i18n - translations ([#26531](https://github.com/twentyhq/twenty/pull/26531)) by @github-actions - Replace responsive hooks with native media queries ([#26532](https://github.com/twentyhq/twenty/pull/26532)) by @bosiraphael - Defer foreign key validation for join columns ([#26534](https://github.com/twentyhq/twenty/pull/26534)) by @charlesBochet - feat(usage-limit): ship a default daily email quota per workspace ([#26535](https://github.com/twentyhq/twenty/pull/26535)) by @etiennejouan - Preserve record access before chat metadata is provisioned ([#26536](https://github.com/twentyhq/twenty/pull/26536)) by @FelixMalfait - fix(event-logs): don't skip rows that share a millisecond when paginating ([#26537](https://github.com/twentyhq/twenty/pull/26537)) by @martmull - feat(event-logs): log record restores and permanent deletes ([#26538](https://github.com/twentyhq/twenty/pull/26538)) by @martmull - Let Escape close the side panel from form fields ([#26540](https://github.com/twentyhq/twenty/pull/26540)) by @thomtrp - i18n - translations ([#26541](https://github.com/twentyhq/twenty/pull/26541)) by @github-actions - perf(server): mark per-pod metrics with a pod attribute ([#26542](https://github.com/twentyhq/twenty/pull/26542)) by @etiennejouan - fix(application): throttle failed application token renewals by session ([#26544](https://github.com/twentyhq/twenty/pull/26544)) by @prastoin - i18n - translations ([#26545](https://github.com/twentyhq/twenty/pull/26545)) by @github-actions - fix(ai): stop creating per-workspace foreign keys to core tables for agent history ([#26547](https://github.com/twentyhq/twenty/pull/26547)) by @FelixMalfait - fix(sdk): write the CLI config file with owner-only permissions ([#26548](https://github.com/twentyhq/twenty/pull/26548)) by @Weiko - Rename attachment target column to "Attached to" and add an attachment record page with inline preview ([#26549](https://github.com/twentyhq/twenty/pull/26549)) by @FelixMalfait - Center icon buttons on Kanban and calendar cards ([#26550](https://github.com/twentyhq/twenty/pull/26550)) by @Bonapara - perf(search): read search results from the replica database ([#26551](https://github.com/twentyhq/twenty/pull/26551)) by @ijreilly - chore(workflow): match the core workflow show page header to the workspace one ([#26552](https://github.com/twentyhq/twenty/pull/26552)) by @thomtrp - fix(logic-function): backfill missing file rows of logic function files ([#26554](https://github.com/twentyhq/twenty/pull/26554)) by @martmull - fix(email): keep line breaks when opening a synced draft in the composer ([#26556](https://github.com/twentyhq/twenty/pull/26556)) by @ijreilly - i18n - translations ([#26557](https://github.com/twentyhq/twenty/pull/26557)) by @github-actions - fix(mcp): make the discovery guidance consistent across every surface ([#26558](https://github.com/twentyhq/twenty/pull/26558)) by @etiennejouan - Retire EmailingDomain and MessageFolder from the workspace-scoped exemption list ([#26563](https://github.com/twentyhq/twenty/pull/26563)) by @prastoin - feat(ai): link chat threads to workspace members (expand step) ([#26564](https://github.com/twentyhq/twenty/pull/26564)) by @FelixMalfait - feat(ai): make chat threads an attachment target ([#26565](https://github.com/twentyhq/twenty/pull/26565)) by @FelixMalfait - fix: download CSV exports on the authenticated API origin ([#26567](https://github.com/twentyhq/twenty/pull/26567)) by @Weiko - fix: preserve API path prefixes in CSV export downloads ([#26568](https://github.com/twentyhq/twenty/pull/26568)) by @Weiko - Subscribe to created Outlook mail notifications only ([#26569](https://github.com/twentyhq/twenty/pull/26569)) by @neo773 - Stop webhook subscriptions when transferring connected account ownership ([#26571](https://github.com/twentyhq/twenty/pull/26571)) by @neo773 - Let disconnect succeed when stopping webhook subscriptions fails ([#26572](https://github.com/twentyhq/twenty/pull/26572)) by @neo773 - Only create missing webhook subscriptions for syncing channels ([#26573](https://github.com/twentyhq/twenty/pull/26573)) by @neo773 - fix(sharing): correct activation upgrade ordering ([#26579](https://github.com/twentyhq/twenty/pull/26579)) by @FelixMalfait - feat(ai): separate chat sharing UI from backend rollout ([#26581](https://github.com/twentyhq/twenty/pull/26581)) by @FelixMalfait - fix(file-storage): create the missing file row when copying a file by path ([#26582](https://github.com/twentyhq/twenty/pull/26582)) by @martmull - chore: sync AI model catalog ([#26584](https://github.com/twentyhq/twenty/pull/26584)) by @github-actions - fix: drain metadata notifications before command shutdown ([#26585](https://github.com/twentyhq/twenty/pull/26585)) by @FelixMalfait - Prefer claude-opus-5-5 for the self-host Extra Smart rung ([#26590](https://github.com/twentyhq/twenty/pull/26590)) by @twenty-pr-author - Remove the deferred workspace migration actions design doc ([#26591](https://github.com/twentyhq/twenty/pull/26591)) by @charlesBochet - Revert "Slide the side panel with transform instead of animating its width" ([#26592](https://github.com/twentyhq/twenty/pull/26592)) by @charlesBochet - refactor(file-storage): make copy private and drop dead copy/folder code ([#26593](https://github.com/twentyhq/twenty/pull/26593)) by @etiennejouan - Move ApplicationEntity onto the workspace-scoped repository ([#26595](https://github.com/twentyhq/twenty/pull/26595)) by @prastoin - Expose selected object metadata and keep unchanged context values stable ([#26596](https://github.com/twentyhq/twenty/pull/26596)) by @bosiraphael - feat(docker): add ClickHouse to twenty-app-dev image ([#26598](https://github.com/twentyhq/twenty/pull/26598)) by @martmull - Migrate sort and editor toolbar dropdowns ([#26599](https://github.com/twentyhq/twenty/pull/26599)) by @bosiraphael - refactor: return API-relative paths for CSV export downloads ([#26603](https://github.com/twentyhq/twenty/pull/26603)) by @Weiko - Move translations to a settings page with one row per language ([#26605](https://github.com/twentyhq/twenty/pull/26605)) by @Bonapara - i18n - translations ([#26606](https://github.com/twentyhq/twenty/pull/26606)) by @github-actions - fix(apps): do not fan out auto upgrades to workspaces behind the app's required server version ([#26608](https://github.com/twentyhq/twenty/pull/26608)) by @charlesBochet - fix(docker): add AUTH_GOOGLE_ENABLED to docker-compose example ([#26610](https://github.com/twentyhq/twenty/pull/26610)) by @Taldres - Fix activity targets after initial company assignment ([#26613](https://github.com/twentyhq/twenty/pull/26613)) by @FelixMalfait - fix(docker): force libexpat 2.8.5-r0 to clear CVE-2026-93990 ([#26615](https://github.com/twentyhq/twenty/pull/26615)) by @charlesBochet - fix(server): call makeMetadataApiRequest in the application view access test ([#26618](https://github.com/twentyhq/twenty/pull/26618)) by @martmull - i18n - translations ([#26619](https://github.com/twentyhq/twenty/pull/26619)) by @github-actions - fix(sso): insert SAML identity providers instead of saving on a client-supplied id ([#26623](https://github.com/twentyhq/twenty/pull/26623)) by @prastoin - Remove message and calendar target read rollout flag ([#26625](https://github.com/twentyhq/twenty/pull/26625)) by @FelixMalfait - Repair missing company activity history during the 2.43 upgrade ([#26631](https://github.com/twentyhq/twenty/pull/26631)) by @FelixMalfait - Fix view permission integration test helper references ([#26633](https://github.com/twentyhq/twenty/pull/26633)) by @FelixMalfait - fix(server): call makeMetadataApiRequest in the command menu item update test ([#26634](https://github.com/twentyhq/twenty/pull/26634)) by @charlesBochet - i18n - translations ([#26642](https://github.com/twentyhq/twenty/pull/26642)) by @github-actions - Stop hidden advanced settings from adding space between sections ([#26647](https://github.com/twentyhq/twenty/pull/26647)) by @Bonapara - fix(workflow): stop reconciling workflows to core on the created event ([#26648](https://github.com/twentyhq/twenty/pull/26648)) by @thomtrp - Document remaining Twenty UI primitives ([#26649](https://github.com/twentyhq/twenty/pull/26649)) by @bosiraphael - feat(workflow): toggle core workflow visibility from the command menu ([#26651](https://github.com/twentyhq/twenty/pull/26651)) by @thomtrp - i18n - translations ([#26652](https://github.com/twentyhq/twenty/pull/26652)) by @github-actions - fix(metrics): count directly executed GraphQL operations ([#26653](https://github.com/twentyhq/twenty/pull/26653)) by @charlesBochet - Group Card parts under one component ([#26654](https://github.com/twentyhq/twenty/pull/26654)) by @bosiraphael - perf(server): index core foreign keys that cascade from workspace and application deletes ([#26655](https://github.com/twentyhq/twenty/pull/26655)) by @charlesBochet - Restore columns when resetting view grouping ([#26656](https://github.com/twentyhq/twenty/pull/26656)) by @bosiraphael - fix(workflow): repair core version parents and skip runs of deleted versions in the 2.42 execution backfill ([#26661](https://github.com/twentyhq/twenty/pull/26661)) by @thomtrp - i18n - translations ([#26664](https://github.com/twentyhq/twenty/pull/26664)) by @github-actions - Use default domain for marketplace app share link ([#26666](https://github.com/twentyhq/twenty/pull/26666)) by @martmull - i18n - translations ([#26669](https://github.com/twentyhq/twenty/pull/26669)) by @github-actions - Restore tab and menu icon stroke weight ([#26670](https://github.com/twentyhq/twenty/pull/26670)) by @Bonapara - feat(usage): meter common API calls in complexity points ([#26671](https://github.com/twentyhq/twenty/pull/26671)) by @etiennejouan - Keep upgrade command code in its version folder ([#26672](https://github.com/twentyhq/twenty/pull/26672)) by @FelixMalfait - Remove the per-campaign recipient cap ([#26675](https://github.com/twentyhq/twenty/pull/26675)) by @neo773 - Remove the unused sendEmailViaEmailingDomain mutation ([#26676](https://github.com/twentyhq/twenty/pull/26676)) by @neo773 - i18n - translations ([#26677](https://github.com/twentyhq/twenty/pull/26677)) by @github-actions - Serve agent history from workspace storage only ([#26678](https://github.com/twentyhq/twenty/pull/26678)) by @FelixMalfait - i18n - translations ([#26679](https://github.com/twentyhq/twenty/pull/26679)) by @github-actions - i18n - translations ([#26680](https://github.com/twentyhq/twenty/pull/26680)) by @github-actions - Scope application tokens to their own application ([#26681](https://github.com/twentyhq/twenty/pull/26681)) by @prastoin - i18n - translations ([#26683](https://github.com/twentyhq/twenty/pull/26683)) by @github-actions - Require a user session to change application registration ownership ([#26684](https://github.com/twentyhq/twenty/pull/26684)) by @prastoin - Truncate ClickHouse tables on database reset ([#26687](https://github.com/twentyhq/twenty/pull/26687)) by @martmull - i18n - translations ([#26692](https://github.com/twentyhq/twenty/pull/26692)) by @github-actions - i18n - translations ([#26694](https://github.com/twentyhq/twenty/pull/26694)) by @github-actions - chore: sync AI model catalog ([#26705](https://github.com/twentyhq/twenty/pull/26705)) by @github-actions - Fix frontend routing for dotted navigation paths ([#26711](https://github.com/twentyhq/twenty/pull/26711)) by @FelixMalfait - Fix invitation E2E revoking the shared login session ([#26712](https://github.com/twentyhq/twenty/pull/26712)) by @FelixMalfait </details> **Full Changelog**: https://github.com/twentyhq/twenty/compare/twenty/v2.41.0...twenty/v2.43.0
Related Repositories
openclaw/openclaw★ 392,690
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
nilbuild/developer-roadmap★ 370,064
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
morluto/rea★ 357,509
Reverse engineer anything with agents, from app behavior down to native binaries.
anomalyco/opencode★ 219,655
The open source coding agent.
n8n-io/n8n★ 208,248
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.