Impact Score: 5/10
Twenty v1.20.0 — Release Notes & Engineering Impact
Source available — automated, not human-reviewed
Component: twenty · Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
⚡ Executive Summary (TL;DR)
Twenty v1.20.0. Source highlight: feat: add resumable stream support for agent chat
Who Does This Impact? (Role-Based Analysis)
💻 Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
📊 Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
⚙️ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
✨ New Features & Capabilities (6)
- feat: add resumable stream support for agent chat
- Add Gemini 3.1 Flash Lite model to AI registry
- feat: rename RICH_TEXT_V2 → RICH_TEXT in codebase (keep DB value)
- feat: deprecate WorkspaceFavorite in favor of NavigationMenuItem
- feat: enable Rich Text as a creatable field type
- Add pitfall reminders to LLMS guidance
⚡ Performance & Enhancements (6)
- Improve type safety and remove unnecessary store operations
- Improve workflow metrics with faillure reason
- chore: improve i18n workflow to prevent stale compiled translations
- Perf investigation - Time qgl query
- Improve apps
- Gql direct execution - Improvements
🔧 Bug Fixes & Patches (6)
- Fix widgets drag handles
- Fix TransactionNotStartedError
- fix: show disabled file chip when file no longer exists in timeline
- Fix upgrade commands 2
- fix: add missing React key props to ButtonGroup and FloatingButtonGro…
- docs: fix contributor docs links and typos
📄 View Raw Release Notes (Original Developer Log)
## What's Changed
* feat: add resumable stream support for agent chat by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19107
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19134
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19135
* `[SDK]` Extract `twenty-front-component-renderer` outside of `twenty-sdk` ( 2.8MB ) by @prastoin in https://github.com/twentyhq/twenty/pull/19021
* Fix widgets drag handles by @bosiraphael in https://github.com/twentyhq/twenty/pull/19133
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19137
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19139
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19142
* `0.8.0.canary.7` bump by @prastoin in https://github.com/twentyhq/twenty/pull/19150
* Fix TransactionNotStartedError by @Weiko in https://github.com/twentyhq/twenty/pull/19155
* fix: show disabled file chip when file no longer exists in timeline by @bugisthegod in https://github.com/twentyhq/twenty/pull/19045
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19158
* Fix upgrade commands 2 by @charlesBochet in https://github.com/twentyhq/twenty/pull/19157
**Full Changelog**: https://github.com/twentyhq/twenty/compare/v1.19.13...v1.20.0
## What's Changed
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18617
* Add Gemini 3.1 Flash Lite model to AI registry by @pablofmorales in https://github.com/twentyhq/twenty/pull/18597
* Upgrade Apollo Client to v4 and refactor error handling by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18584
* Improve type safety and remove unnecessary store operations by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18622
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18620
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18621
* Deprecate legacy RICH_TEXT field metadata type by @charlesBochet in https://github.com/twentyhq/twenty/pull/18623
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18625
* fix: add missing React key props to ButtonGroup and FloatingButtonGro… by @williamjusticedavis in https://github.com/twentyhq/twenty/pull/18615
* feat: rename RICH_TEXT_V2 → RICH_TEXT in codebase (keep DB value) by @charlesBochet in https://github.com/twentyhq/twenty/pull/18628
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18633
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18636
* feat: deprecate WorkspaceFavorite in favor of NavigationMenuItem by @charlesBochet in https://github.com/twentyhq/twenty/pull/18624
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18639
* feat: enable Rich Text as a creatable field type by @charlesBochet in https://github.com/twentyhq/twenty/pull/18634
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18642
* Add pitfall reminders to LLMS guidance by @Bonapara in https://github.com/twentyhq/twenty/pull/18627
* View field override by @Weiko in https://github.com/twentyhq/twenty/pull/18572
* feat: migrate objectMetadata reads to granular metadata store by @charlesBochet in https://github.com/twentyhq/twenty/pull/18643
* docs: fix contributor docs links and typos by @channi23 in https://github.com/twentyhq/twenty/pull/18637
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18644
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18645
* feat: uniformize metadata store with flat types, SSE alignment, presentation endpoint & localStorage by @charlesBochet in https://github.com/twentyhq/twenty/pull/18647
* feat: hash-based metadata staleness detection by @charlesBochet in https://github.com/twentyhq/twenty/pull/18649
* refactor: metadata store cleanup, SSE unification, mock metadata loading & login redirect fix by @charlesBochet in https://github.com/twentyhq/twenty/pull/18651
* fix: yauzl contains an off-by-one error by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/18662
* fix: expr-eval related dependabot alerts by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/18661
* fix: @isaacs/brace-expansion has uncontrolled resource consumption by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/18660
* fix: multer vulnerable to denial of service via uncontrolled recursion by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/18659
* Implement OAuth 2.0 Dynamic Client Registration (RFC 7591) by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18608
* fix: DOMPurify contains a cross-site scripting vulnerability by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/18665
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18669
* refactor: remove "core" naming from views and eliminate converter layer by @charlesBochet in https://github.com/twentyhq/twenty/pull/18667
* fix: mailparser vulnerable to cross-site scripting by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/18664
* fix: return method-specific MCP responses by @channi23 in https://github.com/twentyhq/twenty/pull/18671
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18674
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18677
* fix: add viewFieldGroupId to ViewField fragment and connect page layout selectors to live metadata store by @ehconitin in https://github.com/twentyhq/twenty/pull/18676
* Fix timeline activities + breadcrumb by @thomtrp in https://github.com/twentyhq/twenty/pull/18626
* refactor: consolidate database query timeout config variables by @charlesBochet in https://github.com/twentyhq/twenty/pull/18670
* fix: respect standard object rename across all locales (Closes #18650) by @Assad-Robles in https://github.com/twentyhq/twenty/pull/18652
* Fix styles side column by @Devessier in https://github.com/twentyhq/twenty/pull/18632
* Fix custom object view fields creation by @Weiko in https://github.com/twentyhq/twenty/pull/18629
* Update sidebar section toggle to match Figma chevron by @Bonapara in https://github.com/twentyhq/twenty/pull/18631
* fix: allow identical singular and plural labels for objects by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18678
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18683
* feat: add color property to ObjectMetadata for object icon customization by @charlesBochet in https://github.com/twentyhq/twenty/pull/18672
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18686
* refactor: remove ProcessedNavigationMenuItem, derive display fields at point of use by @charlesBochet in https://github.com/twentyhq/twenty/pull/18687
* fix 2FA UI layout by @neo773 in https://github.com/twentyhq/twenty/pull/18688
* chore: frontend dead code removal and naming cleanup by @charlesBochet in https://github.com/twentyhq/twenty/pull/18690
* refactor(twenty-front): reorganize NavigationMenuItem module into common/display/edit subfolders by @charlesBochet in https://github.com/twentyhq/twenty/pull/18691
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18696
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18692
* Twenty sdk cli oauth by @martmull in https://github.com/twentyhq/twenty/pull/18638
* Add hotkeys to command menu items by @bosiraphael in https://github.com/twentyhq/twenty/pull/18682
* [FIx]: using the dynamic {objectLabelPlural} instead of hardcoded name by @carbonFibreCode in https://github.com/twentyhq/twenty/pull/18700
* Setup local instance on app creation by @thomtrp in https://github.com/twentyhq/twenty/pull/18184
* refactor: unify layout customization mode (record pages + navigation) by @ehconitin in https://github.com/twentyhq/twenty/pull/18640
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18703
* [Command menu items] Create engine commands by @bosiraphael in https://github.com/twentyhq/twenty/pull/18681
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18704
* refactor(twenty-front): unify Favorites and Workspace navigation menu item code by @charlesBochet in https://github.com/twentyhq/twenty/pull/18697
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18709
* Update store on data model mutation by @thomtrp in https://github.com/twentyhq/twenty/pull/18684
* Upgrade Ink to v6 and pause TUI on idle/error by @charlesBochet in https://github.com/twentyhq/twenty/pull/18705
* feat: optimistic metadata store updates for navigation menu items by @charlesBochet in https://github.com/twentyhq/twenty/pull/18710
* fix: make 1.19 upgrade commands resilient to pre-existing data by @charlesBochet in https://github.com/twentyhq/twenty/pull/18716
* Skip threads with no participants in timeline formatting by @neo773 in https://github.com/twentyhq/twenty/pull/18725
* fix: restructure navigationMenuItem type migration for safe upgrade path by @charlesBochet in https://github.com/twentyhq/twenty/pull/18722
* fix: route object color through standardOverrides for standard objects by @charlesBochet in https://github.com/twentyhq/twenty/pull/18717
* Treat Microsoft Graph 400 with empty body as transient error by @neo773 in https://github.com/twentyhq/twenty/pull/18726
* Fix null connectedAccount crash in blocklist message deletion job by @neo773 in https://github.com/twentyhq/twenty/pull/18723
* Publish new version by @martmull in https://github.com/twentyhq/twenty/pull/18727
* fix Draft Email stuck Callout by @neo773 in https://github.com/twentyhq/twenty/pull/18719
* Support template variables in command menu item labels by @bosiraphael in https://github.com/twentyhq/twenty/pull/18707
* workspace:export command by @neo773 in https://github.com/twentyhq/twenty/pull/18695
* fix: navigation menu item type backfill and frontend loading by @charlesBochet in https://github.com/twentyhq/twenty/pull/18730
* Migrate permission flag to syncable entity by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18567
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18736
* fix(auth): use dynamic SSE headers and add token renewal retry logic by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18706
* Remove front component and command menu item old seeds by @bosiraphael in https://github.com/twentyhq/twenty/pull/18737
* Add progress tracking to command menu items by @bosiraphael in https://github.com/twentyhq/twenty/pull/18732
* Add record page layout tabs editing by @Devessier in https://github.com/twentyhq/twenty/pull/18702
* fix: migrate driver modules to DriverFactoryBase lazy-loading pattern by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18731
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18738
* fix: replace > button with button selector in styled wrappers by @bugisthegod in https://github.com/twentyhq/twenty/pull/18568
* Migrate object permission to syncable entity by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18609
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18742
* fix: restore ViewFilter value stringification lost in converter removal by @charlesBochet in https://github.com/twentyhq/twenty/pull/18745
* Scaffold light twenty app dev container by @martmull in https://github.com/twentyhq/twenty/pull/18734
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18749
* fix: use unique concurrency group per merge queue entry by @charlesBochet in https://github.com/twentyhq/twenty/pull/18756
* chore(deps): bump @ai-sdk/mistral from 3.0.20 to 3.0.25 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/18755
* chore(deps): bump @dagrejs/dagre from 1.1.3 to 1.1.8 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/18753
* chore(deps): bump nodemailer from 7.0.11 to 7.0.13 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/18754
* Separate metadata and object record publisher by @thomtrp in https://github.com/twentyhq/twenty/pull/18740
* Fix: prevent record navigation when clicking Remove from favorite in nav sidebar by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18760
* Remove postition from Timeline Activities + fix workflow title placeholder by @thomtrp in https://github.com/twentyhq/twenty/pull/18777
* Fix: cascade delete favorite folder children on backend by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18765
* Fix relation connect where failing on mixed-case email and URL by @bugisthegod in https://github.com/twentyhq/twenty/pull/18605
* fix: stop event propagation when removing file in AI chat preview by @victorjzq in https://github.com/twentyhq/twenty/pull/18779
* Fix: Hide object from Opened section when it already has a workspace nav item by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18766
* feat: migrate ConnectedAccount infrastructure entities to metadata schema by @charlesBochet in https://github.com/twentyhq/twenty/pull/18784
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18786
* Improve workflow metrics with faillure reason by @thomtrp in https://github.com/twentyhq/twenty/pull/18768
* fix: remove redundant cookie write that made tokenPair a session cookie by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18795
* fix: autogrow input sizing + surface nested error details in upgrade command by @charlesBochet in https://github.com/twentyhq/twenty/pull/18796
* fix: backfill missing ids on SELECT/MULTI_SELECT field metadata options by @charlesBochet in https://github.com/twentyhq/twenty/pull/18797
* Avoid side panel tab overriden by show page by @thomtrp in https://github.com/twentyhq/twenty/pull/18800
* fix: add missing LEFT JOIN for relation fields in groupBy orderByForRecords by @charlesBochet in https://github.com/twentyhq/twenty/pull/18798
* fix: update workspace members state on profile onboarding completion by @charlesBochet in https://github.com/twentyhq/twenty/pull/18799
* fix - handle invoice.paid webhook to recover unpaid subscriptions by @etiennejouan in https://github.com/twentyhq/twenty/pull/18770
* Direct graphql execution by @etiennejouan in https://github.com/twentyhq/twenty/pull/18759
* Add a note to documentation about variable change by @BOHEUS in https://github.com/twentyhq/twenty/pull/18752
* Fix orphan navigation menu items for deleted views by @channi23 in https://github.com/twentyhq/twenty/pull/18791
* fix: decouple viewPicker favorite detection from sorted navigation menu items by @charlesBochet in https://github.com/twentyhq/twenty/pull/18803
* Clean workflow query invalid input errors from sentry by @thomtrp in https://github.com/twentyhq/twenty/pull/18804
* feat: secure and user-scope metadata resolvers for messaging infrastructure by @charlesBochet in https://github.com/twentyhq/twenty/pull/18787
* fix useless auth in sdk gql codegen command by @etiennejouan in https://github.com/twentyhq/twenty/pull/18805
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18806
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18807
* fix(links): preserve percent-encoded URLs during normalization by @Dailin521 in https://github.com/twentyhq/twenty/pull/18792
* fix: restore original migration timestamp for messaging infrastructure by @charlesBochet in https://github.com/twentyhq/twenty/pull/18810
* Fix page scrolling when layout customization bar is visible by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18802
* [Fix]: Vertical bar charts with max data range do not show data up to the top if above max data range by @carbonFibreCode in https://github.com/twentyhq/twenty/pull/18748
* Fix AI chat re-renders and refactored code by @lucasbordeau in https://github.com/twentyhq/twenty/pull/18585
* fix: prevent blank subdomain from being saved by @oniani1 in https://github.com/twentyhq/twenty/pull/18812
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18822
* feat: replace hardcoded AI model constants with JSON seed catalog by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18818
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18823
* fix: board view loads all records instead of showing skeleton placeholders by @charlesBochet in https://github.com/twentyhq/twenty/pull/18824
* fix: prevent FIND_RECORDS from silently dropping unresolved filter variables by @oniani1 in https://github.com/twentyhq/twenty/pull/18814
* fix: skip chat messages query when thread ID is the unknown-thread default by @neo773 in https://github.com/twentyhq/twenty/pull/18828
* feat: store SSO connections as connected accounts during sign-in by @charlesBochet in https://github.com/twentyhq/twenty/pull/18825
* Fetch load more on group by by @thomtrp in https://github.com/twentyhq/twenty/pull/18811
* fix: prevent localStorage bloat from derived fields on mock metadata by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18809
* refactor: rename ObjectMetadataItem to EnrichedObjectMetadataItem and clean up metadata flows by @charlesBochet in https://github.com/twentyhq/twenty/pull/18830
* [Chore]: Migration to dynamic view names for standard views by @carbonFibreCode in https://github.com/twentyhq/twenty/pull/18701
* Add `In-Reply-To` to Email Workflow Node by @neo773 in https://github.com/twentyhq/twenty/pull/18641
* fix: auto-retry Microsoft OAuth on AADSTS650051 race condition by @311u1 in https://github.com/twentyhq/twenty/pull/18405
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18831
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18832
* Improve helm chart // Fix linting issues & introduce Redis externalSecret for redis password // Add additional ENVs // Improve migrations by @HuppertzL in https://github.com/twentyhq/twenty/pull/18157
* fix(helm): add unit tests, extraEnv schema validation, and minor fixes by @charlesBochet in https://github.com/twentyhq/twenty/pull/18836
* fix: reset form defaultValues after save to fix dirty detection by @bugisthegod in https://github.com/twentyhq/twenty/pull/18835
* Create command menu items for workflows with manual trigger by @bosiraphael in https://github.com/twentyhq/twenty/pull/18746
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18837
* Fix: TypeError: Cannot convert undefined or null to object by @sonarly[bot] in https://github.com/twentyhq/twenty/pull/18333
* Allow users to create Fields and Field widget by @Devessier in https://github.com/twentyhq/twenty/pull/18801
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18838
* Migrate field widgets to backend by @Devessier in https://github.com/twentyhq/twenty/pull/18808
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18839
* Fix migration crash: agent.modelId NOT NULL violation by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18844
* Add billing usage analytics dashboard with ClickHouse integration by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18592
* Show AI provider sections regardless of billing status by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18845
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18846
* chore: improve i18n workflow to prevent stale compiled translations by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18850
* fix: run AI catalog sync as standalone script to avoid DB dependency by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18853
* chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18854
* chore: trigger automerge for AI catalog sync PRs by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18855
* Fix deploy: remove stale @ai-sdk/groq from yarn.lock by @charlesBochet in https://github.com/twentyhq/twenty/pull/18863
* fix: add security headers to file serving endpoints to prevent stored XSS by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18857
* Update BackfillCommandMenuItemsCommand with workflow backfill by @bosiraphael in https://github.com/twentyhq/twenty/pull/18848
* Ensure command backfills all relations as Field widget by @Devessier in https://github.com/twentyhq/twenty/pull/18858
* Fix e2e test by @etiennejouan in https://github.com/twentyhq/twenty/pull/18866
* Rename "New sidebar item" to "New menu item" by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18859
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18873
* Fix: Background color selected row + border bottom settings tab by @thomtrp in https://github.com/twentyhq/twenty/pull/18870
* Fix workspace dropdown truncation and center auth titles by @Bonapara in https://github.com/twentyhq/twenty/pull/18869
* Fix multi-select option removal crashing when records contain removed values by @charlesBochet in https://github.com/twentyhq/twenty/pull/18871
* Add visual regression CI for twenty-ui by @charlesBochet in https://github.com/twentyhq/twenty/pull/18877
* chore: add explicit return type to getBackgroundColor by @charlesBochet in https://github.com/twentyhq/twenty/pull/18878
* chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18885
* chore: optimize app-dev Docker image and add CI test by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18856
* [AI] Fix new chat button stacking side panel and auto-focus editor by @ehconitin in https://github.com/twentyhq/twenty/pull/18875
* Fix twenty app dev image by @martmull in https://github.com/twentyhq/twenty/pull/18852
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18903
* Fix rich text widget edition by @Devessier in https://github.com/twentyhq/twenty/pull/18899
* fix: ai providers json formatting by @neo773 in https://github.com/twentyhq/twenty/pull/18910
* Fix cropped view/link overlay icons in collapsed navigation sidebar by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18883
* Fix lambda driver by @martmull in https://github.com/twentyhq/twenty/pull/18907
* Perf investigation - Time qgl query by @etiennejouan in https://github.com/twentyhq/twenty/pull/18911
* fix: validate blocknote JSON in rich text fields by @charlesBochet in https://github.com/twentyhq/twenty/pull/18902
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18915
* Fix duplicate views creation in command by @Devessier in https://github.com/twentyhq/twenty/pull/18900
* fix: insert-before folder for workspace DnD and add-to-nav drags by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18789
* Display found items after full items loaded by @thomtrp in https://github.com/twentyhq/twenty/pull/18914
* Fix double arrow by @martmull in https://github.com/twentyhq/twenty/pull/18916
* fix: metadata store lifecycle during sign-in, sign-out, and locale change by @charlesBochet in https://github.com/twentyhq/twenty/pull/18901
* Fix readme by @martmull in https://github.com/twentyhq/twenty/pull/18918
* Fix documentation by @martmull in https://github.com/twentyhq/twenty/pull/18917
* Fix navigation “add before/after” insertion index by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18879
* Refactor: Unify command menu item execution by @bosiraphael in https://github.com/twentyhq/twenty/pull/18908
* Fix batch update optimistic and prevent accidental mass-update by @samuelarbibe in https://github.com/twentyhq/twenty/pull/17213
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18920
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18922
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18925
* Fix visual regression dispatch for fork PRs by @charlesBochet in https://github.com/twentyhq/twenty/pull/18921
* Refactor backfill-command-menu-items to use a single validateBuildAndRun call by @bosiraphael in https://github.com/twentyhq/twenty/pull/18923
* send X-Schema-Version header when metadataVersion is 0 by @thomtrp in https://github.com/twentyhq/twenty/pull/18924
* Add record table widget to dashboards by @lucasbordeau in https://github.com/twentyhq/twenty/pull/18747
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18926
* Refactor twenty client sdk provisioning for logic function and front-component by @prastoin in https://github.com/twentyhq/twenty/pull/18544
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18930
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18931
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18932
* Batch create, update, and delete navigation menu items by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18882
* Unify auth context → role permission config resolution into a single pure utility by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18927
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18934
* Use side panel sub-pages for add-to-folder flow by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18872
* Add twenty-sdk-client to deployed packages unique version check by @martmull in https://github.com/twentyhq/twenty/pull/18933
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18935
* Set system object icon colors to gray in New menu item flows by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18862
* Animate the sidebar when opening/closing an element in the "opened" section by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18867
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18936
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18938
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18941
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18942
* fix navigation menu item overflow issue by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18937
* fix logo upload during workspace onboarding by @neo773 in https://github.com/twentyhq/twenty/pull/18905
* Migrate twenty-companion from npm to yarn workspaces by @charlesBochet in https://github.com/twentyhq/twenty/pull/18946
* fix: reset throttle state on channel relaunch by @neo773 in https://github.com/twentyhq/twenty/pull/18843
* Do not rollback on cache invalidation failure in workspace migration runner by @prastoin in https://github.com/twentyhq/twenty/pull/18947
* Fix object permission override by @thomtrp in https://github.com/twentyhq/twenty/pull/18948
* Fix: use user role for OAuth tokens bearing user context by @ijreilly in https://github.com/twentyhq/twenty/pull/18954
* fix: wrap standard object/field metadata labels in msg for i18n extraction by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18951
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18955
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18956
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18958
* Split command menu items backfill into separate migration runs per application by @charlesBochet in https://github.com/twentyhq/twenty/pull/18957
* Add object type filter dropdown to side panel record searches by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18912
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18967
* feat: add S3 presigned URL redirect for file downloads by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18864
* Fix: default to allow-read when object permissions are not yet loaded by @charlesBochet in https://github.com/twentyhq/twenty/pull/18971
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18976
* Fix record page layout upgrade commands by @Devessier in https://github.com/twentyhq/twenty/pull/18962
* Add record table widget feature flag by @lucasbordeau in https://github.com/twentyhq/twenty/pull/18960
* Fix SSE event stream errors when impersonating users with limited permissions by @thomtrp in https://github.com/twentyhq/twenty/pull/18966
* Add multiselect option to form step by @thomtrp in https://github.com/twentyhq/twenty/pull/18979
* Do not run loop when iterator is skipped by @thomtrp in https://github.com/twentyhq/twenty/pull/18964
* fix SVG icon sizing broken in Chrome 142 by @charlesBochet in https://github.com/twentyhq/twenty/pull/18974
* Fixed board no value column not fetching more by @lucasbordeau in https://github.com/twentyhq/twenty/pull/18977
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18981
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18982
* chore(deps): bump @linaria/core from 6.2.0 to 6.3.0 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/18984
* chore(deps): bump @ai-sdk/xai from 3.0.59 to 3.0.74 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/18986
* chore(deps): bump @microsoft/microsoft-graph-types from 2.40.0 to 2.43.1 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/18985
* [AI] Match ai chat composer to figma by @ehconitin in https://github.com/twentyhq/twenty/pull/18874
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18987
* [AI] Refactor settings search to use SearchInput and restructure Skills tab by @ehconitin in https://github.com/twentyhq/twenty/pull/18876
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18988
* fix: prevent saving API key with empty name by @bugisthegod in https://github.com/twentyhq/twenty/pull/18970
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18990
* feat: make workflow objects searchable by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18906
* Use record page layouts in the merge records feature by @Devessier in https://github.com/twentyhq/twenty/pull/18961
* fix: handle dashboard filters referencing deleted fields by @ehconitin in https://github.com/twentyhq/twenty/pull/18512
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18997
* fix dashboard widget edit mode content by @ehconitin in https://github.com/twentyhq/twenty/pull/18965
* fix: prevent empty array `id.in` filter in single record picker by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18995
* [Ai] fix overflow on new chat button by @ehconitin in https://github.com/twentyhq/twenty/pull/18996
* fix: hide "Move to folder" when no destination folder is available by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18992
* Refactor dependency graph for SDK, client-sdk and create-app by @prastoin in https://github.com/twentyhq/twenty/pull/18963
* Bump prelease version sdk, sdk-client, create-twenty-app by @prastoin in https://github.com/twentyhq/twenty/pull/19000
* fix: hide objects with no addable views in sidebar view picker by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18993
* connected accounts follow up by @neo773 in https://github.com/twentyhq/twenty/pull/18998
* [AI] Navigation panel scroll refactor + Non chat placeholder by @ehconitin in https://github.com/twentyhq/twenty/pull/18999
* Add missing row lvl permission check on Kanban view by @thomtrp in https://github.com/twentyhq/twenty/pull/19002
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19011
* [AI] replace custom styles with MenuItem and SidePanelGroup in AI agent persmissions tab by @ehconitin in https://github.com/twentyhq/twenty/pull/19003
* Fix format result by @etiennejouan in https://github.com/twentyhq/twenty/pull/18975
* `[SDK]` twenty-ui/display selective re-export to avoid bloating icons by @prastoin in https://github.com/twentyhq/twenty/pull/19010
* feat: add command menu item to layout customization by @ehconitin in https://github.com/twentyhq/twenty/pull/18764
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19014
* Fix create new with filters by @lucasbordeau in https://github.com/twentyhq/twenty/pull/18969
* Fix board drag and drop issues by @lucasbordeau in https://github.com/twentyhq/twenty/pull/19005
* [Apps SDK] Add error message if relationType is missing by @ijreilly in https://github.com/twentyhq/twenty/pull/19006
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19018
* feat: support authType on AI providers for IAM role authentication by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19016
* fix: update settings page for mobile viewport by @harshit078 in https://github.com/twentyhq/twenty/pull/18991
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19019
* Fix: Cannot create two workflow agent nodes because these have the same name by @thomtrp in https://github.com/twentyhq/twenty/pull/19015
* Fix not shared chip height + hard coded border radius by @Bonapara in https://github.com/twentyhq/twenty/pull/19020
* Clear navbar edit selection when closing the side panel by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18940
* [Dashboards] fix rich text widget AGAIN by @ehconitin in https://github.com/twentyhq/twenty/pull/19017
* Combine and clean upgrade commands for record page layouts by @Devessier in https://github.com/twentyhq/twenty/pull/19004
* chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19028
* fix: gate command-menu-items query behind feature flag by @charlesBochet in https://github.com/twentyhq/twenty/pull/19029
* fix: batch viewGroup mutations sequentially to prevent race conditions by @cyphercodes in https://github.com/twentyhq/twenty/pull/19027
* fix: remove remaining direct cookie writes that make tokenPair a session cookie on renewal by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19031
* fix: sign file URLs in timeline and file loss on click outside by @bugisthegod in https://github.com/twentyhq/twenty/pull/19001
* Refactor client auto heal by @prastoin in https://github.com/twentyhq/twenty/pull/19032
* refacto - remove hello-pangea/dnd from navigation-menu-item module by @etiennejouan in https://github.com/twentyhq/twenty/pull/19033
* Seed company workflow for email upserts by @Bonapara in https://github.com/twentyhq/twenty/pull/18909
* First PR to bring in the new twenty website. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19035
* fix: use workspace-generated id for core dual-write in message folder save by @neo773 in https://github.com/twentyhq/twenty/pull/19038
* Migrate field permission to syncable entity by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/18751
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19040
* Guard `yarn database:migrate:prod` by @prastoin in https://github.com/twentyhq/twenty/pull/19008
* fix: resolve availabilityObjectMetadataUniversalIdentifier in backfill command by @charlesBochet in https://github.com/twentyhq/twenty/pull/19041
* Enforce workspace count limit for multi-workspace setups by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19036
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19046
* Fix backfill record page layout command by @Devessier in https://github.com/twentyhq/twenty/pull/19043
* fix: invalidate rolesPermissions cache + add Docker Hub auth to CI by @charlesBochet in https://github.com/twentyhq/twenty/pull/19044
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19048
* Fix INDEX view showing labelPlural instead of resolved view name in nav by @charlesBochet in https://github.com/twentyhq/twenty/pull/19049
* Deprecate dataSource table with dual-write to workspace.databaseSchema by @charlesBochet in https://github.com/twentyhq/twenty/pull/19059
* feat: optimize hot database queries with multi-layer caching by @charlesBochet in https://github.com/twentyhq/twenty/pull/19068
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19073
* fix: resolve settings/usage chart crash and add ClickHouse usage event seeds by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19039
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19076
* chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19078
* chore: remove completed migration feature flags and upgrade commands <= 1.18 by @charlesBochet in https://github.com/twentyhq/twenty/pull/19074
* chore: remove IS_DASHBOARD_V2_ENABLED feature flag by @charlesBochet in https://github.com/twentyhq/twenty/pull/19079
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19080
* chore: remove IS_APPLICATION_ENABLED feature flag by @charlesBochet in https://github.com/twentyhq/twenty/pull/19081
* chore: remove IS_ROW_LEVEL_PERMISSION_PREDICATES_ENABLED and IS_DATE_TIME_WHOLE_DAY_FILTER_ENABLED feature flags by @charlesBochet in https://github.com/twentyhq/twenty/pull/19082
* chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19100
* Provide applicatiion assets by @martmull in https://github.com/twentyhq/twenty/pull/18973
* Fix warning about ../../tsconfig.base.json not found by @martmull in https://github.com/twentyhq/twenty/pull/19105
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19108
* More parts of the new website. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19094
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19113
* Fix workspace dropdown by @bosiraphael in https://github.com/twentyhq/twenty/pull/19106
* fix: convert empty parentFolderId to null in messageFolder core dual-write by @neo773 in https://github.com/twentyhq/twenty/pull/19110
* Fix record name hover by @bosiraphael in https://github.com/twentyhq/twenty/pull/19109
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19119
* fix: use Redis metadata version for GraphQL response cache key by @charlesBochet in https://github.com/twentyhq/twenty/pull/19111
* Fix export view by @bosiraphael in https://github.com/twentyhq/twenty/pull/19117
* Fix navigation menu edition by @bosiraphael in https://github.com/twentyhq/twenty/pull/19115
* Fix - Not shared message on record index by @etiennejouan in https://github.com/twentyhq/twenty/pull/19103
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19125
* messaging cleanup by @neo773 in https://github.com/twentyhq/twenty/pull/19124
* chore: remove 1-19 upgrade commands and navigation menu item feature flags by @charlesBochet in https://github.com/twentyhq/twenty/pull/19083
* [APP] Stricter API assertions by @prastoin in https://github.com/twentyhq/twenty/pull/19114
* Fix cropped calendar event name by @bosiraphael in https://github.com/twentyhq/twenty/pull/19126
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19128
* Improve apps by @martmull in https://github.com/twentyhq/twenty/pull/19120
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19129
* Gql direct execution - Improvements by @etiennejouan in https://github.com/twentyhq/twenty/pull/18972
* Fix - Remove signFileUrl method by @etiennejouan in https://github.com/twentyhq/twenty/pull/19121
* clean paddings in favorites section by @Bonapara in https://github.com/twentyhq/twenty/pull/19112
* Fix databaseSchema migration by @Weiko in https://github.com/twentyhq/twenty/pull/19132
* feat: add resumable stream support for agent chat by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19107
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19134
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19135
* `[SDK]` Extract `twenty-front-component-renderer` outside of `twenty-sdk` ( 2.8MB ) by @prastoin in https://github.com/twentyhq/twenty/pull/19021
* Fix widgets drag handles by @bosiraphael in https://github.com/twentyhq/twenty/pull/19133
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19137
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19139
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19142
* `0.8.0.canary.7` bump by @prastoin in https://github.com/twentyhq/twenty/pull/19150
* Fix TransactionNotStartedError by @Weiko in https://github.com/twentyhq/twenty/pull/19155
* fix: show disabled file chip when file no longer exists in timeline by @bugisthegod in https://github.com/twentyhq/twenty/pull/19045
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19158
* Fix upgrade commands 2 by @charlesBochet in https://github.com/twentyhq/twenty/pull/19157
## New Contributors
* @pablofmorales made their first contribution in https://github.com/twentyhq/twenty/pull/18597
* @williamjusticedavis made their first contribution in https://github.com/twentyhq/twenty/pull/18615
* @channi23 made their first contribution in https://github.com/twentyhq/twenty/pull/18637
* @Assad-Robles made their first contribution in https://github.com/twentyhq/twenty/pull/18652
* @victorjzq made their first contribution in https://github.com/twentyhq/twenty/pull/18779
* @Dailin521 made their first contribution in https://github.com/twentyhq/twenty/pull/18792
* @oniani1 made their first contribution in https://github.com/twentyhq/twenty/pull/18812
* @311u1 made their first contribution in https://github.com/twentyhq/twenty/pull/18405
* @HuppertzL made their first contribution in https://github.com/twentyhq/twenty/pull/18157
* @cyphercodes made their first contribution in https://github.com/twentyhq/twenty/pull/19027
**Full Changelog**: https://github.com/twentyhq/twenty/compare/v1.19.0...v1.20.0