First release candidate for v0.8.9. Includes Node.js 24.22.1 security updates. Configuration schema: 1.3.18.
Full release notes
What's Changed
- ๐ฆ ci: Remove Legacy GHCR Mirror by @danny-avila in #16585
- ๐ chore: Validate Canary History on Current Dev by @lia-by-librechat[bot] in #16586
- ๐งโ๐ณ fix: Distinguish Tool Preparation From Execution by @lia-by-librechat[bot] in #16619
- ๐ช fix: Stop the Textarea Jump During File Uploads by @lia-by-librechat[bot] in #16623
- ๐๏ธ feat: Give File-Type Tiles Their Own Theme Roles by @berry-13 in #16603
- ๐ช fix: Open the Lone Tool Call Directly and Label Settled Commands Ran by @berry-13 in #16547
- ๐๏ธ refactor: Hand Chat Preferences to the Host and the Follow-Up Queue to Jotai by @berry-13 in #16604
- ๐ fix: Hide the Viewer's Deployment Theme While a Shared Link Loads by @berry-13 in #16608
- ๐๏ธ refactor: Pass the New-Chat Panel Preference Into the Sidebar by @berry-13 in #16605
- ๐ชง fix: Open the Mobile Drawer Below a Site Banner by @berry-13 in #16611
- ๐งน refactor: Keep Store Imports Out of the Chat Hooks by @berry-13 in #16620
- ๐ช feat: Undock the Artifacts Pane into Its Own Window by @berry-13 in #15911
- โฏ๏ธ feat: Resume Streams and Send AI SDK Messages Through the Chat Facade by @berry-13 in #16609
- ๐งฉ refactor: Serve Chat Context Through a Facade-Owned Provider by @berry-13 in #16610
- ๐ฆ fix: Restore Theme Contrast in Composer and Messages by @lia-by-librechat[bot] in #16624
- ๐ฌ feat: Conversation Starters in Agent Builder by @berry-13 in #16523
- fix: Restore MCP OAuth Browser Binding ๐ชข by @danny-avila in #16634
- ๐ซก fix: Keep Pending Steering Within the Chat Column by @lia-by-librechat[bot] in #16621
- ๐ท fix: Stop Reporting Rejected MCP Credentials as Authorized by @lia-by-librechat[bot] in #16571
- ๐ซ feat: Field Fill and Ink Theme Roles by @berry-13 in #16607
- ๐ feat: Click UI Spacing and Mono Stack for the ClickHouse Theme by @berry-13 in #16616
- ๐ feat: Enforce Required Two-Factor Authentication by @berry-13 in #14731
- ๐ฅฝ feat: Configure Attached Defaults and Honor Skill Read Ranges by @lia-by-librechat[bot] in #16540
- ๐งพ feat: Serve Built-In Endpoint Model Lists From Config So Overrides Can Narrow Them by @danny-avila in #16639
- ๐ชข feat: Collapse Activity Folds From Their Rails by @danny-avila in #16637
- โบ feat: Report Attached Bash Starting Directories by @lia-by-librechat[bot] in #16539
- ๐ท perf: Reduce Browser Work When Sending Documents by @lia-by-librechat[bot] in #16646
- ๐ฆญ test: Add Scheduled MCP Authorization Contract Fixtures by @lia-by-librechat[bot] in #16645
- ๐ฅพ fix: Advertise Stable Uploaded File Paths Before Code Execution by @Oliver777int in #16578
- ๐ต fix: Preserve Workspace Decisions in Warm Chat Caches by @lia-by-librechat[bot] in #16648
- ๐ feat: Size Roles for the Shared Primitives by @berry-13 in #16617
- ๐ช feat: Add Bound Scheduled MCP Consent by @lia-by-librechat[bot] in #16652
- ๐งณ feat: Choose Agent-Allowed Machines For New Chats by @danny-avila in #16651
- ๐ง fix: Pass
requireTLS So EMAIL_ENCRYPTION=starttls Requires STARTTLS by @ethanlaj in #16656
- โป๏ธ refactor: Native Prompts Behind a Shared Service and Adapter by @AtefBellaaj in #16506
- ๐ช fix: Read the Static Checks Workflow With CRLF Line Endings by @danny-avila in #16669
- ๐ feat: Preserve Owner Text During PII Redaction by @lia-by-librechat[bot] in #16311
- ๐ฌ fix: Keep Healthy Workspace Detach Available by @danny-avila in #16670
- ๐งฐ style: Hover-Revealed Tool Output Copy, Full Output, and a Virtualized My Files Table by @berry-13 in #16640
- ๐ fix: Scope OAuth Binding Cookies to the Public API Path by @lia-by-librechat[bot] in #16649
- ๐ผ fix: Replay Running Subagent Activity by @lia-by-librechat[bot] in #16541
- ๐๏ธ feat: Choose Conversation Checkout Mode by @danny-avila in #16679
- ๐ช perf: Coalesce Ready Background Completions by @lia-by-librechat[bot] in #16650
- ๐๏ธ fix: Resolve Config-Scoped Custom Providers by @danny-avila in #16687
- ๐ feat: Refine the Ask Question Card and Smooth Batched Question Steps by @berry-13 in #16641
- ๐ญ fix: Show the Thoughts Floating Bar Only When Its Header Is Off Screen by @berry-13 in #16642
- ๐ feat: Edit Projects in a Dialog and Pick Files From the Your Files Dialog by @berry-13 in #16643
- ๐งญ feat: Give the Mobile Drawer Edge a Role and Move the Last Page Colours Onto Roles by @berry-13 in #16631
- โ
feat: Default Machine Selection and Linked-Worktree Lanes On by @danny-avila in #16678
- ๐ fix: Explain Native Web Search Permission Denials by @lia-by-librechat[bot] in #16691
- ๐ fix: Authenticate Code Session Probes the Way Their Route Expects by @danny-avila in #16688
- ๐ fix: Log Lost Generation Predecessor Fences as Warnings by @danny-avila in #16689
- ๐๏ธ fix: Keep Attachment History From Locking Conversations by @lia-by-librechat[bot] in #16690
- ๐ fix: List Every Running Chat in the Sidebar's Running Group by @danny-avila in #16668
- ๐๏ธ fix: Bound Host File Edits Outside the API Event Loop by @lia-by-librechat[bot] in #16677
- ๐ซ fix: Debounce Streaming Tool Code Highlights by @lia-by-librechat[bot] in #16695
- ๐ด feat: Separate Machine, Workspace, and Git Controls by @lia-by-librechat[bot] in #16696
- ๐งญ fix: Explain Missing Workspace Paths to the Model by @danny-avila in #16700
- ๐ docs: Describe Attached-Workspace Lanes, Sandbox Scratch, and Skill Files in Tool Descriptions by @danny-avila in #16702
- ๐ feat: Remember Tool Approvals Per Conversation by @berry-13 in #16557
- ๐ feat: Show the Current Text Where a Missing Workspace Edit Belongs by @danny-avila in #16698
- ๐๏ธ fix: Read Theme Roles for the Last Artifact and Agent Chip Colours by @berry-13 in #16705
- ๐๏ธ refactor: Drop Inline Pointer Styles From Select and Menu Primitives by @berry-13 in #16704
- ๐ test: Re-Pin Click UI Drift Guard to v0.13.0 and Probe the Checkbox by @berry-13 in #16706
- ๐งพ fix: Commit Resume Provenance With the Approval Claim by @berry-13 in #16430
- ๐ feat: Size Roles for the Select List by @berry-13 in #16714
- ๐ช fix: Layer Settings Dialog Popovers Above Its Panel by @berry-13 in #16720
- ๐ fix: Ink the Artifact Refresh Veil with the Media Text Role by @berry-13 in #16716
- ๐ perf: Trim Per-Token and Per-Render Work in Streaming and Lists by @berry-13 in #16718
- ๐๏ธ perf: Cut Serial and Redundant Database Reads by @berry-13 in #16711
- ๐ผ fix: Keep BYOM Workspace Diagnostics Out of Composer Layout by @lia-by-librechat[bot] in #16721
- ๐ fix: Warn When interface.webSearch Blocks Native Search by @berry-13 in #16708
- ๐งบ perf: Batch Prompt Group Permission Checks in the Sidebar by @berry-13 in #16710
- ๐จ feat: Add Lia's Pixel Art Renderer by @berry-13 in #16682
- ๐ perf: Coalesce Ready Background Completions by Default by @danny-avila in #16724
- ๐ฐ๏ธ feat: Status on the Avatar, a Finished Group, and Project Chats in the Sidebar List by @danny-avila in #16715
- ๐ฆฏ fix: Restore BYOM Diagnostic Access and Stabilize Readiness Checks by @lia-by-librechat[bot] in #16723
- ๐ช feat: Simplify Steer Controls And Queue Row Actions by @berry-13 in #16713
- ๐ด๏ธ fix: Align Agent Contact Email on the Landing Page by @lia-by-librechat[bot] in #16655
- ๐ช perf: Skip Unchanged Skills in GitHub Skill Sync by @berry-13 in #16717
- ๐ฉ fix: Stage URL Prompts Before Agent Submission by @lia-by-librechat[bot] in #16647
- ๐ฆซ feat: Enforce Scheduled MCP Read-Only Authority by @lia-by-librechat[bot] in #16681
- ๐ฅ test: Stabilize Host Edit Responsiveness Assertions by @lia-by-librechat[bot] in #16727
- ๐ช fix: Separate Workspace Admission and Transport Budgets by @lia-by-librechat[bot] in #16728
- ๐ฆ test: Define PII Policy and Conformance Fixtures by @lia-by-librechat[bot] in #16726
- ๐ฒ๏ธ fix: Enable Running Chat Menus and Preserve Renamed Titles by @lia-by-librechat[bot] in #16697
- ๐ญ feat: Recover Stale Chunks Without the Error Page and Ship Client Logs to RUM by @danny-avila in #16701
- ๐ป fix: Reveal Project Row Actions on Hover and Focus by @berry-13 in #16731
- ๐ง feat: Light the Fold Path to the Hovered Activity Row by @danny-avila in #16722
- ๐ค test: Cover Alias Frontmatter Keys in the Skill Sync Skip by @berry-13 in #16725
- ๐ง feat: Add Lia's Behavior Engine by @berry-13 in #16683
- ๐งน fix: Let File Deletes Succeed When the Code API No Longer Serves the Ref's Profile by @TomasPalsson in #16671
- ๐๏ธ fix: Strengthen Two-Factor Recovery Credentials by @danny-avila in #16742
- โฟ a11y: Stop Agent API Keys Dialog Opening Its Info Card On Focus by @berry-13 in #16735
- ๐ซฐ feat: Configure Tool Approval Modes Per Agent by @lia-by-librechat[bot] in #16707
- ๐ฃ feat: Poll Durable Workspace Requests Without Rejoining Admission by @lia-by-librechat[bot] in #16733
- ๐ช feat: Consolidate Orchestration Into a Native Tool by @lia-by-librechat[bot] in #16744
- ๐ซ perf: Release Message Histories of Conversations the User Has Left by @danny-avila in #16747
- ๐ฒ feat: Expose Navigable Subagent Progress Trees by @danny-avila in #16748
- โก perf: Async Local File Saves and Compile Hot-Path Regexes Once by @berry-13 in #16712
- โก perf: Cache Package Builds and Make Client Coverage Opt-In by @berry-13 in #16709
- ๐ feat: App-Wide UI Scale Setting by @berry-13 in #14903
- ๐ช chore: Deprecate Agent Chain Authoring by @lia-by-librechat[bot] in #16745
- ๐ซฅ fix: Remove Hover and Press Backgrounds From Chat Tool Rows by @berry-13 in #16749
- ๐ fix: Truncate Long Titles in the Archived Chats Dialog by @berry-13 in #16754
- ๐๏ธ fix: Keep Project Chats Out of Chats by Default and Space Project Rows by @berry-13 in #16755
- ๐ fix: Sync Spinner Rotation Phase Across Instances by @berry-13 in #16738
- ๐ feat(agents): use LibreChat prompt groups as agent instructions by @AtefBellaaj in #16686
- ๐ถ fix: Price Mistral Large 3 at $0.50 / $1.50 per MTok by @Alan-Billi in #16675
- ๐งฌ fix: Default Subagents to Their Parent's Code Machine and Workspace by @danny-avila in #16756
- ๐๏ธ feat: Supply Authorized Scheduled MCP Resource Bearers by @lia-by-librechat[bot] in #16699
- ๐ test: Stabilize MCP App Link Clicks by @lia-by-librechat[bot] in #16760
- ๐ฏ fix: Separate Subagents and Handoffs Into Native Tools by @lia-by-librechat[bot] in #16761
- ๐ feat: Add Per-Call Subagent Machine Selection by @danny-avila in #16757
- ๐ณ feat: Show Balance in the Context Gauge as Credits, Currency, or Percent by @danny-avila in #16762
- ๐ฑ feat: Simplify Steering Controls to Three Modes by @lia-by-librechat[bot] in #16759
- โ๏ธ fix: Default Running Chat Rename to On by @berry-13 in #16769
- ๐จ style: Compact Queue Buttons and Restyle Projects and Composer Context Rail by @berry-13 in #16772
- ๐ชช feat: Name and Face Subagents Like Main Chat Turns by @danny-avila in #16692
- ๐๏ธ fix: Let a No-Workspace Turn Carry a Remembered Approval Mode by @danny-avila in #16763
- ๐ชถ perf: Load Tool-Call Previews and Fetch Full Parts on Demand by @danny-avila in #16753
- ๐ฆ feat: Compare Review Commit Ancestry Without Git by @lia-by-librechat[bot] in #16734
- ๐ฆ fix: Keep System Messages Stable During Collapse by @lia-by-librechat[bot] in #16780
- ๐ช feat: Overlay Theme Roles for Tooltips, Error Alerts and Artifact Previews by @berry-13 in #16739
- โณ feat: Reset Balance Allowances Without Rollover by @danny-avila in #16781
- ๐ช fix: Hide Sole Tool Row Under Its Group Header by @berry-13 in #16750
- ๐งฑ feat: Layered Surface Roles for the ClickHouse Theme by @berry-13 in #16737
- โ๏ธ feat: Move Chat Actions Into a Header Options Menu by @berry-13 in #16775
- ๐ด fix: Persist Cancelled Compactions With Their Identity by @berry-13 in #16436
- ๐งท fix: Finalize Stopped Compactions and Verify Their Anchor by @berry-13 in #16551
- โฟ a11y: Ring Content Rows in a Themeable Focus Role by @berry-13 in #16740
- ๐ feat: Let a Theme Quiet Decorative Borders by @berry-13 in #16741
- ๐ช fix: Layer Tooltips Above the Popups They Open Inside by @berry-13 in #16791
- ๐ fix: Keep Reasoning Out of Read Aloud by @berry-13 in #16790
- ๐ช fix: Let Concurrent First OpenID Logins Continue as the New User by @danny-avila in #16778
- ๐ fix: Recover Concurrent First SAML, LDAP and Social Logins by @danny-avila in #16779
- ๐ฟ feat: Accept Lane Git State and Pull Request Contract by @berry-13 in #16792
- ๐๏ธ feat: Record Lane Git State and Serve Conversation Pull Requests by @berry-13 in #16793
- ๐๏ธ fix: Smooth, Compact Code Workspace, Checkout and Approval Selectors by @berry-13 in #16789
- ๐ชถ feat: Quiet Prompt Editor Boxes, Table Columns and Destructive Buttons by @berry-13 in #16751
- ๐ฏ fix: Keep Running Chat Ring Centered at Any UI Scale by @berry-13 in #16810
- ๐ feat: Visible Prose Markers and Composer Shape Roles for ClickHouse by @berry-13 in #16736
- ๐๏ธ fix: Apply the No-Workspace Decision Wherever an Agent's Code Route Resolves by @danny-avila in #16798
- โน๏ธ fix: Reconcile Stopped Generations Before Detaching the Stream by @lia-by-librechat[bot] in #16788
- ๐ fix: Require Colon in API-Key Header Detection by @dustinhealy in #16803
- ๐ feat: Show the Conversation Pull Request in the Chat Header by @berry-13 in #16794
- ๐ฉน fix: Stub the Attached Route in the Lane Recording Specs by @berry-13 in #16840
- ๐ fix: Make DataTable Row Estimates Breakpoint- and Leaf-Column-Aware by @berry-13 in #16817
- ๐ซ๏ธ fix: Dim a Disabled InputNumber Through Its Nested Input by @berry-13 in #16820
- ๐งน refactor: Clear Chat Design Suppressions That Render Nothing by @berry-13 in #16822
- ๐ท๏ธ refactor: Mark Message Text Containers With a Data Attribute by @berry-13 in #16826
- ๐งน refactor: Clear Raw-Color and Unknown-Class Suppressions in Panels by @berry-13 in #16818
- ๐งน refactor: Replace Arbitrary Values in the Agent Builder and Skills by @berry-13 in #16824
- ๐ท๏ธ refactor: Drop Redundant Label Ink Overrides in Panels by @berry-13 in #16830
- ๐งฝ refactor: Drop Classes Primitives Already Set by @berry-13 in #16835
- ๐งน refactor: Clear the Raw-Color and Unknown-Class Design Suppressions by @berry-13 in #16825
- ๐ refactor: Give Sign-In Controls Button, Input and Alert Variants by @berry-13 in #16828
- ๐ฅ๏ธ feat: Show Lia on the Welcome Screen by @berry-13 in #16684
- ๐ refactor: Use the Bare and Wide Button Sizes in the Account Settings Dialogs by @berry-13 in #16834
- ๐๏ธ feat: Merge Change and Remove Project Into One Submenu by @berry-13 in #16844
- ๐งฝ refactor: Drop Redundant Button Overrides in Chat Messages and Input by @berry-13 in #16838
- ๐จ feat: Add Secondary Label Variant and Spinner Tone by @berry-13 in #16837
- ๐งฑ chore: Let Callers Own Spacing on Dialog and Panel Containers by @berry-13 in #16836
- ๐ feat: Show the Conversation Pull Request in the Sidebar List by @berry-13 in #16815
- ๐๏ธ feat: Add Quiet and Message Action Button Variants by @berry-13 in #16839
- ๐ฉน fix: Keep Chrome Surfaces and Destructive Confirms Legible in Quiet-Chrome Themes by @berry-13 in #16833
- ๐ feat: Add 10, 11, 13 and 15px Steps to the Theme Type Scale by @berry-13 in #16827
- ๐จ refactor: Route Stylesheet Colours Through Theme Variables by @berry-13 in #16823
- ๐๏ธ fix: Polish the Pull Request Chip and Card Header by @berry-13 in #16860
- ๐งน refactor: Clear Raw-Color, Unknown-Class and Arbitrary-Value Suppressions by @berry-13 in #16829
- ๐งน refactor: Resolve Unknown Classes and Shed Restyle Overrides in Chat Messages by @berry-13 in #16865
- ๐งน refactor: Clear Chat Input Design Suppressions Through Existing Variants by @berry-13 in #16863
- โฟ a11y: Let Dark Mode Honor Outline Utilities on Focus by @berry-13 in #16861
- ๐งฌ fix: Derive the Theme Cache Version and Align Color Tokens by @berry-13 in #16819
- ๐งน refactor: Use Existing Variants and Drop Redundant Overrides in Nav, Skills and Prompts by @berry-13 in #16868
- ๐๏ธ refactor: Give InputNumber an Option Variant for Setting Values by @berry-13 in #16831
- โฟ a11y: Name the Global Focus Outline on Tabs, Table Rows and Dropdown by @berry-13 in #16870
- ๐ feat: Enable Pull Requests by Default With a Token Fallback by @berry-13 in #16876
- ๐งน refactor: Drop Redundant Design Overrides in the Agents Panel by @berry-13 in #16866
- ๐งผ refactor: Drop Redundant Design Overrides in the Remaining Side Panels by @berry-13 in #16867
- ๐ฏ fix: Load Pull Request Status Only for Code Conversations by @berry-13 in #16885
- ๐ฃ style: Show Merged Pull Requests in Purple by @berry-13 in #16882
- ๐ฏ refactor: Hold ClickHouse Colors at Their Click UI Values by @berry-13 in #16821
- ๐งฑ feat: Add Flush, Embedded and Nav Primitive Variants by @berry-13 in #16862
- ๐งน refactor: Move Inline Styles to Classes Outside Chat and the Side Panel by @berry-13 in #16871
- ๐๏ธ refactor: Use Primitive Tones, Variants and Shapes in Remaining Components by @berry-13 in #16872
- ๐๏ธ feat: Promote Stylesheet Colour Roles to Registry Colours by @berry-13 in #16864
- ๐งฌ test: Pin Built-In Theme Output to the Cache Epoch by @berry-13 in #16875
- ๐ง feat: Infer Reasoning Effort Support From Known Custom Endpoint Hosts by @berry-13 in #16797
- ๐๏ธ feat: Filter OpenRouter Reasoning Efforts by the Selected Model by @berry-13 in #16808
- ๐งฑ refactor: Use the Framed Textarea Variant in the Skill Editors by @berry-13 in #16894
- ๐ช refactor: Use the Embedded Input Variant in the Command Popovers by @berry-13 in #16901
- ๐ฑ๏ธ feat: Open the Pull Request Card When Hovering Anywhere on a Conversation Row by @berry-13 in #16895
- ๐ fix: Lay Out Agent Builder Model Parameters Like the Chat Panel by @berry-13 in #16897
- ๐งช test: Apply One Reference Theme Across Radius, Font, Shadow and Spacing by @berry-13 in #16905
- ๐ชข fix: Settle Compaction Rows Past Anchor Collisions and Legacy Parts by @berry-13 in #16552
- ๐ feat: Keep Quiet Chat Streams Alive Behind Idle-Timeout Proxies by @berry-13 in #16904
- ๐งญ fix: Bring Submenus Closer to Their Parent Menu by @berry-13 in #16930
- ๐ a11y: Ink the Dark Default Avatar Glyph at 3:1 on Its Fill by @berry-13 in #16931
- ๐งฎ fix: Read Math Function Channels in CSS Custom Property Triplets by @berry-13 in #16924
- ๐ท๏ธ a11y: Give Prompt Category Icons Their Own Color Role by @berry-13 in #16933
- ๐งญ refactor: Give the Desktop Icon Rail Nav Hover and Selected States by @berry-13 in #16937
- ๐จ a11y: Draw Every Prompt Category Icon Muted Under ClickHouse by @berry-13 in #16935
- ๐ฑ๏ธ refactor: Hover the Rail Toggle, New Chat and Marketplace Controls in the Nav Role by @berry-13 in #16940
- ๐ช feat: Adopt the Continue Icon, Artifact Timing, Avatar Border and Dropdown Intents Tailwind 3 Never Rendered by @berry-13 in #16941
- ๐ฏ fix: Show the Focused State of the InputNumber Option Variant by @berry-13 in #16925
- ๐ feat: Let a Theme Reshape the Sign-In Field and Button by @berry-13 in #16939
- ๐ a11y: Show Hover-Revealed Actions to the Touchscreen on a 2-in-1 by @berry-13 in #16943
- ๐ฏ a11y: Hand Focus Back When an Agent Detail Refresh Removes the Focused Control by @berry-13 in #16945
- ๐ฏ a11y: Move Field and Focus Call Sites Onto the Control Roles by @berry-13 in #16929
- ๐๏ธ refactor: Define the Code Highlight Cadence Default Once by @berry-13 in #16946
- ๐งญ refactor: Normalize Model-Authored Artifact Types in One Place by @berry-13 in #16947
- ๐ชถ perf: Mount a Sidebar Row's Menu Actions Only Once Its Menu Is Used by @berry-13 in #16948
- ๐ฆ feat: Lint Disabled Dims That Compose No Disabled Recipe by @berry-13 in #16907
- ๐ฆ refactor: Move the Token-Usage Jotai State Into the TokenUsage Feature by @berry-13 in #16950
- ๐ช refactor: Supply Auto-Expand Tools to Tool Cards From the Message Host by @berry-13 in #16951
- ๐งฏ feat: Recover Conversations Whose Attachments Keep Failing by @danny-avila in #16965
- ๐จ style: Quiet Failed Tool Activity by @berry-13 in #16949
- ๐ refactor: Read ChatView's Save-Drafts Setting From the Host Chat Settings by @berry-13 in #16952
- ๐งช test: Drive useChat Through a Substitute Transport for Send, Stop, Steer and Errors by @berry-13 in #16957
- โ๏ธ feat: Give the Checkbox Theme Roles for Its Fill and Corner by @berry-13 in #16958
- ๐งญ refactor: Supply Deployment Config and Auth to Chat Hooks Through ChatSettings by @berry-13 in #16963
- ๐ฆ feat: Scaffold the @librechat/chat Package by @berry-13 in #16964
- ๐ฌ fix: Clear Queued Attachments and Simplify Steer Controls by @berry-13 in #16969
- ๐ fix: Resolve useChat Tool Parts Against Live Attachments by @berry-13 in #16960
- ๐งฑ refactor: Judge Chat Package Imports on the Resolved Module by @berry-13 in #16975
- ๐ฌ feat: Animate Background Tasks and Add Tool Navigation by @berry-13 in #16959
- ๐งฉ fix: Use Dropdown In Code Execution Settings by @berry-13 in #16980
- ๐ฑ fix: Keep Focused Text Fields at 16px on Touch Devices by @berry-13 in #16971
- ๐ชข refactor: Move Stop Button, Abort Scroll and Submission Start State to Jotai by @berry-13 in #16968
- ๐ฐ refactor: Move the Pure Stream Code into the @librechat/chat Core by @berry-13 in #16979
- ๐ fix: Detect Pull Request Links in Command Output for Conversation Lanes by @berry-13 in #16982
- ๐ข feat: Look Up Pull Requests on a GitHub Enterprise Host by @berry-13 in #16985
- ๐ฆ feat: Look Up GitLab Merge Requests Behind a Provider Setting by @berry-13 in #16986
- โจ๏ธ feat: Change Default Chat Preferences by @berry-13 in #16932
- ๐ชฃ feat: Look Up Bitbucket Cloud Pull Requests by @berry-13 in #16987
- โป๏ธ feat: Share Pull Request Lookups Across Replicas Through Redis by @berry-13 in #16988
- ๐ชฆ fix: Omit Email From Account Deletion Log by @berry-13 in #16993
- ๐ต๏ธ fix: Redact Email Addresses and IPs From Auth Flow Logs by @berry-13 in #16994
- ๐ฅ ci: Type-Check Workspaces with bun check by @berry-13 in #17009
- ๐ feat: Let Users Connect Their Own Account for Pull Request Lookups by @berry-13 in #16989
- ๐งน fix: Stop Cache Audit From Logging Cache Keys and Values by @berry-13 in #16995
- ๐ refactor: Lift the Step Handler Into a Core reduceStep With an Effects Channel by @berry-13 in #17000
- ๐ณ๏ธ feat: Approval-Responded, Output-Denied and Ask-User Parts in the UI Message View by @berry-13 in #16961
- ๐ fix: Encrypt User Plugin Credentials With Random-IV v3 Format by @berry-13 in #16996
- ๐ช fix: Load Google Tag Manager Only After Analytics Consent by @berry-13 in #16999
- ๐ test: Retry MCP Reinitialize Past the Circuit Breaker Cooldown in Credential Scenarios by @berry-13 in #17029
- ๐ feat: Add a Connected Account Setting for Pull Requests by @berry-13 in #16990
- ๐คซ fix: Stop Logging Action Auth Credentials to the Console by @berry-13 in #17031
- ๐ refactor: Draw the Composer Controls With the Shared Button by @berry-13 in #16953
- ๐ฏ fix: Hold Default Button Heights and the Dialog Close Button at the 24px Target by @berry-13 in #16928
- ๐ง fix: Log User IDs Instead of Emails in Admin Panel Auth Flow by @berry-13 in #17032
- ๐ชค test: Widen the Theme Cache Pin to Joint Fallbacks, Enum Literals and Joint Rules by @berry-13 in #16927
- ๐ feat: Hand the Colour Mode Over on an Entry Link by @berry-13 in #17056
- fix(prompts): include command in prompt group list projections by @aniketkrs in #17046
- ๐ fix: Encrypt Provider Keys With v3, Reject Plaintext in decryptV2 and Default to Strong Backup Codes by @berry-13 in #17051
- ๐ชช fix: Boot-Paint a Cached Theme Only for Its Signed-In Owner by @berry-13 in #16926
- ๐ฌ fix: Drain a Follow-Up Queued in a Chat the User Left by @berry-13 in #16632
- ๐งญ fix: Land on Chat History Instead of the Last Sidebar Panel by @berry-13 in #17083
- ๐ feat: Optional Greeting Heading and Footer-Free Welcome Screen by @berry-13 in #17055
- ๐งฉ refactor: Route Message Parts Through a @librechat/chat Part Dispatcher and Host by @berry-13 in #16976
- ๐จ feat: Paint the Operator Theme on a First-Ever Visit by @berry-13 in #16962
- ๐ feat: Cap the Select List at the Popover's Available Height by @berry-13 in #16938
- ๐ฏ test: Match the Action Save Toast Once When a Live Region Repeats It by @berry-13 in #17091
- ๐ fix: Enforce Terms Acceptance on the Server and Mark Backfilled Consent by @berry-13 in #17063
- โณ fix: Expire Dead-Lettered Trigger Deliveries and Clean Up Orphaned Image Uploads by @berry-13 in #17049
- โ fix: Authenticate Bundled Helm Databases and Warn on Plain-HTTP Ingress by @berry-13 in #17047
- ๐ refactor: Move Text-Like Message Parts Into @librechat/chat by @berry-13 in #17087
- ๐๏ธ fix: Route Delete-User CLI Through the Shared Account Erasure Cascade by @berry-13 in #17033
- ๐งน fix: Run the Full Erasure Cascade When an Admin Deletes a User by @berry-13 in #17050
- ๐ feat: Audit Admin Role, Group, Config and IdP Role Mutations by @berry-13 in #17052
- ๐ feat: Audit Resource Sharing Changes and Fail Closed on Reversible Audit Writes by @berry-13 in #17053
- ๐๏ธ feat: Audit MCP, Code Worker, Langfuse, Skill Credential, Passkey and Audit Log Access by @berry-13 in #17054
- ๐งน refactor: Remove Dead Client Hooks, Store Modules and Utilities by @berry-13 in #17111
- ๐๏ธ refactor: Remove Dead Data Schemas Methods and Data Provider Exports by @berry-13 in #17113
- ๐ชฆ refactor: Remove Dead Legacy API Modules and Root Tooling by @berry-13 in #17114
- ๐งฝ refactor: Remove Dead Client Components, Providers and Barrels by @berry-13 in #17116
- ๐งญ refactor: Move Steer and Queue Pure Logic into the Chat Core by @berry-13 in #17107
- ๐งญ refactor: Move App-Only Conversation and Sharing Hooks Out of hooks/Chat by @berry-13 in #17108
- ๐ fix: Mask Emails and Drop Personal Identifiers From Logs by @berry-13 in #17048
- ๐ชก refactor: Split Queue Receipts, Rows and Composer Takes out of useSteering by @berry-13 in #17122
- ๐งท refactor: Split Steer Chips, Enqueue and Queued Recovery out of useSteering by @berry-13 in #17123
- ๐ฎ refactor: Move the Steer POST into useSubmitSteer with Core Helpers by @berry-13 in #17124
- ๐๏ธ refactor: Move Queued Send and During-Run Actions out of useSteering by @berry-13 in #17125
- ๐งฒ refactor: Move Pending Quotes and Manual Skills onto Jotai by @berry-13 in #17126
- ๐งฎ refactor: Lift Stream Steer-Chip Reconciliation into Core Reducers by @berry-13 in #17128
- โ๏ธ refactor: Move the Steer Atoms to Jotai in the Chat Package by @berry-13 in #17135
- ๐ช refactor: Read Mounted Pane Conversations through ChatSettings in Steer Recovery by @berry-13 in #17137
- ๐งฎ refactor: Move Token Usage Math Into the Chat Package by @berry-13 in #17106
- ๐งฐ refactor: Move Resumable Start Helpers Into the Chat Core by @berry-13 in #17109
- ๐งต refactor: Move Turn Message Helpers Into the Chat Core by @berry-13 in #17110
- ๐ fix: Keep the Error Card When a Stream Reattached Without Resume State Fails by @berry-13 in #17112
- ๐งญ refactor: Give the Resumable Stream a Core Run and Subscription by @berry-13 in #17117
- ๐ refactor: Move Resumable Terminal Handoff and Lifecycle Reconcile Into the Chat Core by @berry-13 in #17119
- ๐ฐ refactor: Move Queue Drain Decisions into the Chat Core by @berry-13 in #17130
- ๐ฆ refactor: Move Steer Queue and Composer State into the Chat Package by @berry-13 in #17155
- ๐งฑ refactor: Split the Chat Step Reducer Into Stream Modules by @berry-13 in #17105
- โ๏ธ refactor: Split the Chat Ask Function Into Turn Modules by @berry-13 in #17115
- ๐ฐ๏ธ refactor: Move the Submitting Flag to Jotai in the Chat Package by @berry-13 in #17121
- ๐ refactor: Move Resumable Transport Failure Handling Into the Chat Core by @berry-13 in #17120
- ๐ fix: Defer Logger Serialization Until After Transport Sanitization by @dustinhealy in #17169
- ๐ฉน refactor: Move Resumable Response Patching Into the Chat Core by @berry-13 in #17127
- ๐ฆ refactor: Move the Generation Run Atoms Into the Chat Package by @berry-13 in #17140
- ๐ fix: Prevent 30-Second OpenID Refresh Stalls After a Discarded Prerender by @upman in #17174
- ๐ fix: Skip Reasoning Labels for Encrypted Reasoning by @danny-avila in #17100
- ๐ช fix: Ground the Default Artifacts Prompt in What the Renderer Supports by @danny-avila in #17024
- โฑ๏ธ ci: Balance Playwright Shards by Recorded Duration by @danny-avila in #17019
- ๐ fix: Upgrade the MCP SDK Past the OAuth Credential Leak (GHSA-6qxp-vccf-f47h) by @danny-avila in #17015
- ๐ chore: Resolve Open Dependabot Security Alerts by @danny-avila in #17016
- ๐ณ fix: Align Admin Panel Image With Upstream Publishing Namespace by @dustinhealy in #17096
- ๐ฐ๏ธ refactor: Move the Pane Submission to Jotai in the Chat Package by @berry-13 in #17159
- ๐ refactor: Move Resumable Frame Dispatch and Attach Into the Chat Core by @berry-13 in #17129
- ๐ refactor: Inject the App Services the Steer Hooks Use through a Steer Host by @berry-13 in #17156
- โ๏ธ refactor: Remove Dead Helpers, Classes and Dependencies From packages/api by @berry-13 in #17118
- ๐ fix: Keep Artifact Download Clear of Message Navigation by @dustinhealy in #17079
- ๐งฉ feat: Add Skill Creation and File Deletion to Management API by @dustinhealy in #16878
- ๐๏ธ feat: Expose Skill Deletion in Management API by @dustinhealy in #17005
- ๐งฑ feat: Add Skill Lifecycle Persistence Primitives by @dustinhealy in #17040
- ๐งพ feat: Add Skill Upload Reservation Helpers by @dustinhealy in #17041
- ๐งน feat: Add Bounded Whole-Skill Cleanup Engine by @dustinhealy in #17042
- ๐ feat: Integrate Durable Skill Lifecycle Across Writers and Routes by @dustinhealy in #17043
- ๐งช test: Scroll UI-Scale Conversation Rows Into View by @dustinhealy in #17188
- ๐งช refactor: Move Test-Only Helpers Out of Production Modules by @berry-13 in #17139
- ๐ chore: Update
pbkdf2 and to-buffer by @danny-avila in #17187
- ๐งช test: Spec the First-Sentence Diagnostic Comparison in the Suppression Runner by @berry-13 in #17165
- ๐งฑ refactor: Read Message Content Siblings Through the Parts Host by @berry-13 in #17171
- ๐จ style: Restore Resumable SSE Import Order by @dustinhealy in #17191
- ๐ง perf: Recycle Backend Jest Workers Past 1GB by @berry-13 in #17098
- ๐ fix: Restore MCP App Rendering and Actions by @dustinhealy in #16382
- ๐ perf: Index-Bound Word-Prefix Search for Users and Groups by @berry-13 in #16719
- โ๏ธ refactor: Read the Inline Editors' Messages View Through the Parts Host by @berry-13 in #17172
- ๐๏ธ refactor: Read the Search, File and Message Editor Siblings Through the Parts Host by @berry-13 in #17173
- ๐ท๏ธ fix: Drop a File Name Removed Through the UI Parts View by @berry-13 in #17184
- ๐๏ธ refactor: Move Pane Preset and Option Settings to Jotai in the Chat Package by @berry-13 in #17179
- ๐ chore: Default OpenAI Image Tools to GPT Image Flare by @lia-by-librechat[bot] in #17014
- ๐งต fix: Harmony Headers in Text Attachments Break OpenAI Models on Bedrock by @danny-avila in #17101
- ๐๏ธ refactor: Move Pane Composer Files to Jotai in the Chat Package by @berry-13 in #17193
- ๐๏ธ feat: Make Context Usage Responsive and Condensed by @lia-by-librechat[bot] in #17018
- ๐๏ธ feat: Open Subagents Directly from Background Tasks by @lia-by-librechat[bot] in #17020
- ๐ถ๏ธ fix: Keep Temporary Chats Out of Langfuse by @berry-13 in #17202
- ๐๏ธ test: Run useIsActiveItem Spec Under jsdom So GC Cannot Drop the Observer by @berry-13 in #17199
- ๐ feat: Add Claude Haiku 5.5 Support by @berry-13 in #17201
- ๐ช fix: Price 1-Hour Prompt Cache Writes at the 1-Hour Rate by @berry-13 in #17208
- ๐ชฆ chore: Retire the DALL-E 3 Tool by @berry-13 in #17205
- ๐ฒ refactor: Route Picker Panels Through Theme Radius Roles by @berry-13 in #17186
- ๐ฒ test: Make the ClickHouse Pinned-Pair Check Order-Independent by @berry-13 in #17192
- ๐งฌ fix: Skip Re-Embedding Legacy File Search Files After Upgrade by @berry-13 in #17206
- ๐ฆ fix: Strip Assistant Prefill for Claude 5.x Models by @berry-13 in #17209
- ๐ feat: Add Gemini 4 Argon Support by @berry-13 in #17200
- ๐ผ๏ธ fix: Render Files Saved by Tools Inside a Subagent Run by @berry-13 in #17204
- ๐ฐ๏ธ fix: Route Subagent Files Delivered After a Mid-Run Reload by @berry-13 in #17212
- ๐งฉ fix: Render Nested MCP Apps Under Standalone Subagent Calls by @berry-13 in #17211
- ๐ข fix: Pair English Plural Keys as _one/_other for Locize by @berry-13 in #17223
- โณ fix: Wait for Chat History Before URL Auto-Submit by @berry-13 in #17224
- ๐ refactor: Move the Steering Hooks into the Chat Package by @berry-13 in #17158
- ๐งน refactor: Import Steer Queue and Recovery State from the Chat Package by @berry-13 in #17162
- ๐งฝ refactor: Import Composer State and Restore from the Chat Package by @berry-13 in #17163
- ๐ fix: Keep the Batch Question Card On Screen Above a Long Draft by @berry-13 in #17222
- โจ๏ธ feat: Keyboard Submit, Focus and Escape for Ask User Cards by @berry-13 in #17231
- ๐งท refactor: Require a Mounted Steer Host Instead of a Module Default by @berry-13 in #17164
- ๐งญ test: Cover ClickHouse Control Boundaries on the Sidebar Surface by @berry-13 in #17197
- ๐งพ refactor: Drop the Unsent Request/Response Pair From ChatErrorData by @berry-13 in #17221
- ๐ฉบ fix: Report Not Ready on /readyz While Redis Is Disconnected by @berry-13 in #17232
- ๐ test: Isolate Empty Panel Cards From Shared Data by @lia-by-librechat[bot] in #17234
- ๐ช test: Mount the Steer Host in the Batch Composer Fixture by @lia-by-librechat[bot] in #17235
- ๐ท๏ธ refactor: Draw Provider Icons as Theme-Following Brand Marks by @berry-13 in #17237
- ๐งฌ feat: Show the Model Maker's Icon When Another Host Serves the Model by @berry-13 in #17238
- ๐ชช feat: Show Each Model's Maker on Its Model List Row by @berry-13 in #17246
- ๐ข feat: Add Microsoft, Z.ai, IBM and Amazon Nova Model Marks by @berry-13 in #17250
- ๐จ refactor: Draw Lemonade, MLX, ShuttleAI and Unify as Brand Marks by @berry-13 in #17252
- ๐ฐ refactor: Move the Queue Drain, Reveal and Recovery Hooks into the Chat Package by @berry-13 in #17170
- ๐ fix: Restrict Stop to the Generation's Owner and Contain S3 Ingest Stream Errors by @berry-13 in #17256
- ๐ fix: Load Full Tool Output So Copy Works on Panels Without a Row by @berry-13 in #17262
- ๐จ feat: Paint Inline Deployment Themes From the First Frame by @berry-13 in #17203
- ๐ fix: Keep API Keys and Internal Errors Out of Logs and Responses by @berry-13 in #17258
- ๐๏ธ perf: Index Hot Lookups and Project the Remote Models List by @berry-13 in #17259
- ๐ fix: Hash Passwords on a Worker Pool and Surface API Key Lookup Failures by @berry-13 in #17261
- ๐งฏ fix: Close Abandoned Download and Speech Streams and Cap Speech Input by @berry-13 in #17270
- โ๏ธ fix: Follow the Interface Direction in Radix, the Composer and First Paint by @berry-13 in #17264
- ๐ fix: Quiet Client Disconnects, Fall Back When Hash Workers Fail, Log Speech Truncation by @berry-13 in #17278
- ๐งญ fix: Anchor the Sidebar, Mobile Drawer and Panels to Inline Edges in RTL by @berry-13 in #17266
- ๐งน refactor: Use Logical Spacing and Positioning in the App Shell by @berry-13 in #17269
- ๐ fix: Build the KeyvMongo Key Index Through the Retrying Helper by @berry-13 in #17282
- ๐ฌ fix: Mirror Chat Messages, Markdown and Code Blocks for RTL by @berry-13 in #17267
- ๐ช fix: Mirror Shared Primitives for Right-to-Left Layouts by @berry-13 in #17265
- ๐ชข refactor: Keep Chat Direction in Jotai and Cover Direction Scenarios by @berry-13 in #17279
- ๐ refactor: Move the Resumable Generation Start Into the Chat Core by @berry-13 in #17131
- ๐งฉ refactor: Move the Resumable Submission Mount Into the Chat Core by @berry-13 in #17132
- ๐ชก refactor: Split useResumableSSE Into Thin Host Bindings by @berry-13 in #17133
- ๐งท refactor: Split useResumeOnLoad by Responsibility by @berry-13 in #17134
- ๐๏ธ refactor: Split useEventHandlers by Responsibility by @berry-13 in #17136
- โ๏ธ refactor: Move Run Display, Live Attachment and PTC Trace Atoms to Jotai by @berry-13 in #17138
- ๐ refactor: Read Stream Auth and Deployment Config Through ChatSettings by @berry-13 in #17141
- ๐ fix: Mirror Agents, Prompts, Skills and Other Pages for RTL by @berry-13 in #17268
- ๐ fix: Fail Closed When Plugin Hook Shell Cannot Start by @lia-by-librechat[bot] in #17227
- ๐ด fix: Match Image Media Types to Their Bytes by @lia-by-librechat[bot] in #17230
- ๐ feat: Defer MCP OAuth Sign-In Until a Deferred Tool Is Used by @berry-13 in #17225
- ๐ feat: Keyboard Submit and Escape for Tool Approval Cards by @berry-13 in #17233
- โฑ๏ธ fix: Bound Outbound Calls Made Inside a Request by @berry-13 in #17263
- feat: add masked session replay lifecycle by @graphaelli in #17194
- ๐ช fix: Restore Explicit File Search Uploads by @lia-by-librechat[bot] in #17226
- ๐ณ๏ธ ci: Let Codegraph E2E Vote Runs Finish by @danny-avila in #17325
- ๐ chore: Upgrade Node.js to Security Release 24.22.1 by @lia-by-librechat[bot] in #17332
- ๐ fix: Release Heavy Chat State on Conversation Switches by @lia-by-librechat[bot] in #17291
- ๐ feat: Keep Dotted Record Keys in Admin Config Writes and Publish the Config Contract by @danny-avila in #17322
- ๐งช test: Keep EndpointService Spec Mocks Complete When the Real API Package Loads by @danny-avila in #17324
- ๐ test: Control the Code API Retry Budget Clock by @lia-by-librechat[bot] in #17338
- ๐ฃ chore: Prepare v0.8.9-rc1 Release by @lia-by-librechat[bot] in #17336
New Contributors
Full Changelog: v0.8.8...v0.8.9-rc1