๐ LibreChat v0.8.9-rc1
Chat Projects, account security, deployment themes, and connected coding workflows
v0.8.9-rc1
What's Changed
๐๏ธ Highlights
- Chat Projects with shared instructions and reference files
- Passkey sign-in, email changes, and stronger two-factor account protection
- Redesigned chat controls, reply notifications, and right-to-left layouts
- Deployment themes with configurable colors and appearance
- MCP Apps and more deliberate tool-approval choices
- Attached-machine enrollment, per-chat workspace choices, attachment copies, and pull request status
- Langfuse prompts in the catalog and slash command
- Recoverable subagent transcripts and clearer background-task progress
- Node.js 24.22.1 security updates and bounded history/tool previews
Upgrade Notes
This candidate uses config 1.3.18. Read the upgrade guide and config changelog before a rolling deployment. Stateful Code sessions remain highly experimental and require compatible Code API and worker builds.
Release source: 8d3da9bbb220.
โจ Features
- โฌ๏ธ feat: Migrate to Zod v4 by @danny-avila in #17442
- ๐ feat: Filter Agent Builder Selector to Authored Agents by @berry-13 in #17439
- ๐ฟ feat: Branch Tool Fold Rails Into Each Row by @berry-13 in #17407
- ๐ด feat: Use Langfuse Prompts from Cards and the Slash Command by @AtefBellaaj in #17104
- ๐ฌ feat: Sync Langfuse Prompts into the Catalog by @AtefBellaaj in #17095
- ๐๏ธ feat: Make External Prompt Groups Read-Only by @AtefBellaaj in #17008
- โฒ feat: Resolve Native and Langfuse Prompts by Source by @AtefBellaaj in #16909
- ๐บ feat: Track Prompt Group Source Identity by @AtefBellaaj in #16891
- ๐ง feat: Preview Langfuse Prompts in Settings by @AtefBellaaj in #16854
- ๐ช feat: Add Shared Source Author and Distributed Lock Helpers by @AtefBellaaj in #17086
- ๐งฌ feat: Re-Derive Azure Groups, Vertex AI, Custom Parameters and Spec Defaults for Config Profiles by @danny-avila in #17399
- ๐ท๏ธ feat: Hide and Rename Custom Endpoints by Name in Config Profiles by @danny-avila in #17396
- ๐งพ feat: Admin Config Write Report, Structured Issues and Deployment-Only Paths by @danny-avila in #17395
- ๐ญ feat: Admin Config Read APIs (Resolved and Effective Config, Scope Catalog, Env Status) by @danny-avila in #17383
- ๐ feat: Copy Chat Attachments into Attached Workspaces by @danny-avila in #17376
- ๐ feat: Admin Config Secrets v2 (MCP and Azure Credentials, Re-entry, Env Allowlist, Rebinding) by @danny-avila in #17353
- ๐งโโ๏ธ feat: Enroll Machines Through Explicit Browser Approval by @lia-by-librechat[bot] in #17344
- ๐ feat: Let Config Profiles Hide librechat.yaml MCP Servers and Remove Their Fields by @danny-avila in #17327
- โ๏ธ feat: Atomic Admin Config Changes Endpoint (set, unset, tombstone, entry upsert/remove/rename) by @danny-avila in #17328
- ๐ feat: Link Custom Artifact Mode to Its Instructions Guide by @danny-avila in #17021
- ๐ feat: Keep Dotted Record Keys in Admin Config Writes and Publish the Config Contract by @danny-avila in #17322
- feat: add masked session replay lifecycle by @graphaelli in #17194
- ๐ feat: Keyboard Submit and Escape for Tool Approval Cards by @berry-13 in #17233
- ๐ feat: Defer MCP OAuth Sign-In Until a Deferred Tool Is Used by @berry-13 in #17225
- ๐จ feat: Paint Inline Deployment Themes From the First Frame by @berry-13 in #17203
- ๐ข feat: Add Microsoft, Z.ai, IBM and Amazon Nova Model Marks by @berry-13 in #17250
- ๐ชช feat: Show Each Model's Maker on Its Model List Row by @berry-13 in #17246
- ๐งฌ feat: Show the Model Maker's Icon When Another Host Serves the Model by @berry-13 in #17238
- โจ๏ธ feat: Keyboard Submit, Focus and Escape for Ask User Cards by @berry-13 in #17231
- ๐ feat: Add Gemini 4 Argon Support by @berry-13 in #17200
- ๐ feat: Add Claude Haiku 5.5 Support by @berry-13 in #17201
- ๐๏ธ feat: Open Subagents Directly from Background Tasks by @lia-by-librechat[bot] in #17020
- ๐๏ธ feat: Make Context Usage Responsive and Condensed by @lia-by-librechat[bot] in #17018
- ๐ feat: Integrate Durable Skill Lifecycle Across Writers and Routes by @dustinhealy in #17043
- ๐งน feat: Add Bounded Whole-Skill Cleanup Engine by @dustinhealy in #17042
- ๐งพ feat: Add Skill Upload Reservation Helpers by @dustinhealy in #17041
- ๐งฑ feat: Add Skill Lifecycle Persistence Primitives by @dustinhealy in #17040
- ๐๏ธ feat: Expose Skill Deletion in Management API by @dustinhealy in #17005
- ๐งฉ feat: Add Skill Creation and File Deletion to Management API by @dustinhealy in #16878
- ๐๏ธ feat: Audit MCP, Code Worker, Langfuse, Skill Credential, Passkey and Audit Log Access by @berry-13 in #17054
- ๐ feat: Audit Resource Sharing Changes and Fail Closed on Reversible Audit Writes by @berry-13 in #17053
- ๐ feat: Audit Admin Role, Group, Config and IdP Role Mutations by @berry-13 in #17052
- ๐ feat: Cap the Select List at the Popover's Available Height by @berry-13 in #16938
- ๐จ feat: Paint the Operator Theme on a First-Ever Visit by @berry-13 in #16962
- ๐ feat: Optional Greeting Heading and Footer-Free Welcome Screen by @berry-13 in #17055
- ๐ feat: Hand the Colour Mode Over on an Entry Link by @berry-13 in #17056
- ๐ feat: Add a Connected Account Setting for Pull Requests by @berry-13 in #16990
- ๐ณ๏ธ feat: Approval-Responded, Output-Denied and Ask-User Parts in the UI Message View by @berry-13 in #16961
- ๐ feat: Let Users Connect Their Own Account for Pull Request Lookups by @berry-13 in #16989
- โป๏ธ feat: Share Pull Request Lookups Across Replicas Through Redis by @berry-13 in #16988
- ๐ชฃ feat: Look Up Bitbucket Cloud Pull Requests by @berry-13 in #16987
- โจ๏ธ feat: Change Default Chat Preferences by @berry-13 in #16932
- ๐ฆ feat: Look Up GitLab Merge Requests Behind a Provider Setting by @berry-13 in #16986
- ๐ข feat: Look Up Pull Requests on a GitHub Enterprise Host by @berry-13 in #16985
- ๐ฌ feat: Animate Background Tasks and Add Tool Navigation by @berry-13 in #16959
- ๐ฆ feat: Scaffold the @librechat/chat Package by @berry-13 in #16964
- โ๏ธ feat: Give the Checkbox Theme Roles for Its Fill and Corner by @berry-13 in #16958
- ๐งฏ feat: Recover Conversations Whose Attachments Keep Failing by @danny-avila in #16965
- ๐ฆ feat: Lint Disabled Dims That Compose No Disabled Recipe by @berry-13 in #16907
- ๐ feat: Let a Theme Reshape the Sign-In Field and Button by @berry-13 in #16939
- ๐ช feat: Adopt the Continue Icon, Artifact Timing, Avatar Border and Dropdown Intents Tailwind 3 Never Rendered by @berry-13 in #16941
- ๐ feat: Keep Quiet Chat Streams Alive Behind Idle-Timeout Proxies by @berry-13 in #16904
- ๐ฑ๏ธ feat: Open the Pull Request Card When Hovering Anywhere on a Conversation Row by @berry-13 in #16895
- ๐๏ธ feat: Filter OpenRouter Reasoning Efforts by the Selected Model by @berry-13 in #16808
- ๐ง feat: Infer Reasoning Effort Support From Known Custom Endpoint Hosts by @berry-13 in #16797
- ๐๏ธ feat: Promote Stylesheet Colour Roles to Registry Colours by @berry-13 in #16864
- ๐งฑ feat: Add Flush, Embedded and Nav Primitive Variants by @berry-13 in #16862
- ๐ feat: Enable Pull Requests by Default With a Token Fallback by @berry-13 in #16876
- ๐ feat: Add 10, 11, 13 and 15px Steps to the Theme Type Scale by @berry-13 in #16827
- ๐๏ธ feat: Add Quiet and Message Action Button Variants by @berry-13 in #16839
- ๐ feat: Show the Conversation Pull Request in the Sidebar List by @berry-13 in #16815
- ๐จ feat: Add Secondary Label Variant and Spinner Tone by @berry-13 in #16837
- ๐๏ธ feat: Merge Change and Remove Project Into One Submenu by @berry-13 in #16844
- ๐ฅ๏ธ feat: Show Lia on the Welcome Screen by @berry-13 in #16684
- ๐ feat: Show the Conversation Pull Request in the Chat Header by @berry-13 in #16794
- ๐ feat: Visible Prose Markers and Composer Shape Roles for ClickHouse by @berry-13 in #16736
- ๐ชถ feat: Quiet Prompt Editor Boxes, Table Columns and Destructive Buttons by @berry-13 in #16751
- ๐๏ธ feat: Record Lane Git State and Serve Conversation Pull Requests by @berry-13 in #16793
- ๐ฟ feat: Accept Lane Git State and Pull Request Contract by @berry-13 in #16792
- ๐ feat: Let a Theme Quiet Decorative Borders by @berry-13 in #16741
- โ๏ธ feat: Move Chat Actions Into a Header Options Menu by @berry-13 in #16775
- ๐งฑ feat: Layered Surface Roles for the ClickHouse Theme by @berry-13 in #16737
- โณ feat: Reset Balance Allowances Without Rollover by @danny-avila in #16781
- ๐ช feat: Overlay Theme Roles for Tooltips, Error Alerts and Artifact Previews by @berry-13 in #16739
- ๐ฆ feat: Compare Review Commit Ancestry Without Git by @lia-by-librechat[bot] in #16734
- ๐ชช feat: Name and Face Subagents Like Main Chat Turns by @danny-avila in #16692
- ๐ฑ feat: Simplify Steering Controls to Three Modes by @lia-by-librechat[bot] in #16759
- ๐ณ feat: Show Balance in the Context Gauge as Credits, Currency, or Percent by @danny-avila in #16762
- ๐ feat: Add Per-Call Subagent Machine Selection by @danny-avila in #16757
- ๐๏ธ feat: Supply Authorized Scheduled MCP Resource Bearers by @lia-by-librechat[bot] in #16699
- ๐ feat(agents): use LibreChat prompt groups as agent instructions by @AtefBellaaj in #16686
- ๐ feat: App-Wide UI Scale Setting by @berry-13 in #14903
- ๐ฒ feat: Expose Navigable Subagent Progress Trees by @danny-avila in #16748
- ๐ช feat: Consolidate Orchestration Into a Native Tool by @lia-by-librechat[bot] in #16744
- ๐ฃ feat: Poll Durable Workspace Requests Without Rejoining Admission by @lia-by-librechat[bot] in #16733
- ๐ซฐ feat: Configure Tool Approval Modes Per Agent by @lia-by-librechat[bot] in #16707
- ๐ง feat: Add Lia's Behavior Engine by @berry-13 in #16683
- ๐ง feat: Light the Fold Path to the Hovered Activity Row by @danny-avila in #16722
- ๐ญ feat: Recover Stale Chunks Without the Error Page and Ship Client Logs to RUM by @danny-avila in #16701
- ๐ฆซ feat: Enforce Scheduled MCP Read-Only Authority by @lia-by-librechat[bot] in #16681
- feat: Simplify Queue Row Actions And Steer Controls by Marco Beretta in 35db010412
- ๐ฐ๏ธ feat: Status on the Avatar, a Finished Group, and Project Chats in the Sidebar List by Danny Avila in 10e9cb90e7
- ๐จ feat: Add Lia's Pixel Art Renderer by @berry-13 in #16682
- ๐ feat: Size Roles for the Select List by @berry-13 in #16714
- ๐ feat: Show the Current Text Where a Missing Workspace Edit Belongs by @danny-avila in #16698
- ๐ feat: Remember Tool Approvals Per Conversation by @berry-13 in #16557
- ๐ด feat: Separate Machine, Workspace, and Git Controls by @lia-by-librechat[bot] in #16696
- โ feat: Default Machine Selection and Linked-Worktree Lanes On by @danny-avila in #16678
- ๐งญ feat: Give the Mobile Drawer Edge a Role and Move the Last Page Colours Onto Roles by @berry-13 in #16631
- ๐ feat: Edit Projects in a Dialog and Pick Files From the Your Files Dialog by @berry-13 in #16643
- ๐ feat: Refine the Ask Question Card and Smooth Batched Question Steps by @berry-13 in #16641
- ๐๏ธ feat: Choose Conversation Checkout Mode by @danny-avila in #16679
- ๐ feat: Preserve Owner Text During PII Redaction by @lia-by-librechat[bot] in #16311
- ๐งณ feat: Choose Agent-Allowed Machines For New Chats by @danny-avila in #16651
- ๐ช feat: Add Bound Scheduled MCP Consent by @lia-by-librechat[bot] in #16652
- ๐ feat: Size Roles for the Shared Primitives by @berry-13 in #16617
- โบ feat: Report Attached Bash Starting Directories by @lia-by-librechat[bot] in #16539
- ๐ชข feat: Collapse Activity Folds From Their Rails by @danny-avila in #16637
- ๐งพ feat: Serve Built-In Endpoint Model Lists From Config So Overrides Can Narrow Them by @danny-avila in #16639
- ๐ฅฝ feat: Configure Attached Defaults and Honor Skill Read Ranges by @lia-by-librechat[bot] in #16540
- ๐ feat: Enforce Required Two-Factor Authentication by @berry-13 in #14731
- ๐ feat: Click UI Spacing and Mono Stack for the ClickHouse Theme by @berry-13 in #16616
- ๐ซ feat: Field Fill and Ink Theme Roles by @berry-13 in #16607
- ๐ฌ feat: Conversation Starters in Agent Builder by @berry-13 in #16523
- โฏ๏ธ feat: Resume Streams and Send AI SDK Messages Through the Chat Facade by @berry-13 in #16609
- ๐ช feat: Undock the Artifacts Pane into Its Own Window by @berry-13 in #15911
- ๐๏ธ feat: Give File-Type Tiles Their Own Theme Roles by @berry-13 in #16603
- ๐๏ธ feat: Give the Remaining Component Colour Literals Theme Roles by @berry-13 in #16597
- ๐ฑ feat: Give the Mobile Drawer One Place for Each Control by @berry-13 in #16248
- ๐ผ๏ธ feat: Give Media Overlays Their Own Theme Roles by @berry-13 in #16596
- ๐ feat: Per-Mode Appearance Defaults for Menu and Tooltip Shadows by @berry-13 in #16602
- ๐ feat: Menu, Tooltip and Tab Corner Theme Roles by @berry-13 in #16599
- ๐ฏ feat: Focus Ring Width and Offset Theme Roles by @berry-13 in #16587
- ๐ท๏ธ feat: Give the Badge Label Its Own Ink and Let the Legacy Dialog Spinner Inherit by @berry-13 in #16554
- โณ feat: Add Ephemeral Retention Mode for Forced Temporary Chats by @berry-13 in #13811
- ๐ feat: Let Themes Focus Fields by Their Edge and Size Fields and Labels by @berry-13 in #16550
- ๐ฆ feat: Show Exit Status and Stderr for Attached Workspace Commands by @berry-13 in #16556
- ๐ช feat: Expand, Copy and Tail Long Bash Output by @berry-13 in #16555
- ๐ช feat: Give OGDialog Theme Roles for Its Edge, Padding and Title by @berry-13 in #16546
- ๐งโ๐จ feat: Give the Default Avatar and Avatar Placeholder Theme Roles by @berry-13 in #16545
- ๐๏ธ feat: Group Model Parameters Into Sections by @berry-13 in #16247
- ๐งฉ feat: Ignore Unknown Theme Color Tokens Instead of Dropping the Theme by @berry-13 in #16529
- ๐๏ธ feat: Give the Button Theme Roles for Its Label, Height, Fill and States by @berry-13 in #16530
- ๐ feat: Give Theme-Sized Controls Their Own Padding and Gap Roles by @berry-13 in #16528
- ๐ feat: Carry Project Context Across Conversations by @berry-13 in #15684
- ๐๏ธ feat: Give the Table Theme Roles for Header Text, Row Rules and Density by @berry-13 in #16489
- ๐๏ธ feat: Give the Switch Theme Roles for Its Size and Knob by @berry-13 in #16486
- ๐ซ๏ธ feat: Give the Dialog Scrims Theme-Owned Opacity Roles by @berry-13 in #16492
- ๐ค feat: Give Display Type and the Type Scale Their Own Theme Roles by @berry-13 in #16491
- ๐ฆ feat: Give Pressed and Disabled States Their Own Theme Roles by @berry-13 in #16487
- ๐ฏ feat: Give Keyboard Focus Its Own Theme Roles by @berry-13 in #16478
- ๐งญ feat: Palette Show All Catalogs, MCP Status and Composer Polish by @berry-13 in #16422
- ๐๏ธ feat: Chat List Properties Menu and Project-Scoped Chats by @berry-13 in #16246
- ๐ช feat: AI SDK-Shaped useChat Facade Over the Chat Contract by @berry-13 in #16375
- ๐ feat: Expose the Messages Key on the Chat Contract by @berry-13 in #16395
- ๐ feat: Filter the Conversation List by Date, Endpoint, Files, and Sharing by @berry-13 in #16245
- ๐งฉ feat: Map Message Content Parts to a UI Parts Union by @berry-13 in #16374
- ๐๏ธ feat: Close the Data-Level Click UI Gaps in the ClickHouse Theme by @berry-13 in #16379
- ๐ค feat: Bundle Inconsolata for the ClickHouse Theme by @berry-13 in #16376
- ๐งฉ feat: Let Theme Readers Ignore Unknown Appearance Tokens by @berry-13 in #16373
- ๐จ feat: ClickHouse Theme Shape Parity by @berry-13 in #16342
- ๐ซ๏ธ feat: Shadow Scale Follows the Theme by @berry-13 in #16341
- ๐ feat: Radius and Font Scales Follow the Theme by @berry-13 in #16340
- โ๏ธ feat: Make the Per-User Passkey Cap Configurable by @berry-13 in #16259
- ๐จ feat: Theme the Shared Code Block With surface-code and a New surface-code-body Role by @berry-13 in #16334
- ๐จ feat: Pick the Deployment Theme in librechat.yaml by @berry-13 in #16286
- ๐จ feat: Add a ClickHouse Reference Theme by @berry-13 in #16262
- ๐งฉ feat: MCP Apps support by @dustinhealy in #13831
- ๐ฅง feat: Show Last-Turn Token Usage Beside Conversation Totals by @lia-by-librechat in #16230
- ๐จ feat: Check Color Tokens and Class Existence by @berry-13 in #16041
- ๐ feat: Passkey Authentication with WebAuthn Sign-In and Management by @berry-13 in #14715
- ๐ feat: Unseen Reply Indicators, Reply Notifications, and Mark as Unread by @berry-13 in #15025
- ๐ง feat: add email address change by @berry-13 in #14597
- ๐ช feat: Expand Agent Cards Into Their Detail Dialog by @berry-13 in #15798
- ๐ฐ๏ธ feat: Status on the Avatar, a Finished Group, and Project Chats in the Sidebar List by @danny-avila in #16715
- ๐ช feat: Simplify Steer Controls And Queue Row Actions by @berry-13 in #16713
๐ Fixes
- ๐ช fix: Erase Vectors in Their Recorded Namespaces by @lia-by-librechat[bot] in #17457
- ๐คบ fix: Prefix MCP Tool Cache Write Fences by @lia-by-librechat[bot] in #17458
- ๐ง fix: Recover OAuth Prompts on Initial Replica Attachment by @lia-by-librechat[bot] in #17455
- ๐ฅ fix: Read Account Deletion Fences From the Primary by @lia-by-librechat[bot] in #17456
- ๐ fix: Separate Runtime Context From User Input by @lia-by-librechat[bot] in #17454
- ๐จ fix: Restore Strict Tenant Startup and Sign-In by @lia-by-librechat[bot] in #17441
- ๐ fix: Quiet Initial PR Discovery Failures and Add Safe Diagnostics by @berry-13 in #17436
- ๐ fix: Render Image and Video Web Search Citations by @berry-13 in #17438
- ๐๏ธ fix: Enlarge Archived Chats and Align Conversation Icons by @berry-13 in #17440
- ๐๏ธ fix: Resolve Tenant Profiles in Their Own Partition and Keep Role Operations in the Caller's by @danny-avila in #17417
- ๐งช fix: Close css-colors Triplet and Disabled-Recipe Rule Gaps by @berry-13 in #17358
- ๐ก๏ธ fix: Keep Azure Keys Off Unserved Groups, Let Hides Take Their Specs, and Report Inert Azure Groups by @danny-avila in #17411
- ๐ฉฐ fix: Keep Subagent Guidance in Main Chat Order by @lia-by-librechat[bot] in #17394
- ๐งป fix: Keep Lighthouse Session Cookies Out of Failure Logs by @lia-by-librechat[bot] in #17410
- ๐ฃ fix: Bound Attachment Preview Matching Work by @lia-by-librechat[bot] in #17384
- ๐ฟ fix: Bound Chat Message IDs and Remove Backtracking by @lia-by-librechat[bot] in #17388
- โ๏ธ fix: Bind Assistant Avatar Updates to Authorized Owners by @lia-by-librechat[bot] in #17391
- ๐ซข fix: Keep OAuth Credentials Out of Logs by @lia-by-librechat[bot] in #17409
- ๐ธ fix: Align Image Authorization and Static Serving Paths by @lia-by-librechat[bot] in #17392
- ๐ fix: Deny HTTP Access to System MCP OAuth Flows by @lia-by-librechat[bot] in #17408
- ๐ก fix: Bound Tool Approval Admission Work by @lia-by-librechat[bot] in #17387
- ๐ชต fix: Explain Failed Attachment Copies and Subagent Start-Up Failures by @danny-avila in #17398
- ๐ fix: Judge Tenant Profiles on Their Own Base, Clear Config Caches on Principal Deletion, and Add a Config Reload Route by @danny-avila in #17397
- ๐ซฅ fix: Hide the Web Search Source Rails Scrollbar by @berry-13 in #17359
- ๐ fix: Bound Git Identity Email Validation by @lia-by-librechat[bot] in #17389
- ๐ผ fix: Bound Document Name Collision Processing by @lia-by-librechat[bot] in #17386
- โช fix: Normalize Preview Numbers in Linear Time by @lia-by-librechat[bot] in #17385
- ๐ซณ fix: Close the Mobile Drawer When Selecting the Current Chat by @lia-by-librechat[bot] in #17382
- ๐ป fix: Keep Long Chats Stationary Under the Mobile Drawer by @lia-by-librechat[bot] in #17377
- ๐งท fix: Close Only Scheduled MCP Authority at Request Cleanup by @danny-avila in #17354
- ๐ณ fix: Preserve Primary Files Until Secondary Cleanup Succeeds by @lia-by-librechat[bot] in #17228
- โ fix: Restore Enter to Send as the Default by @berry-13 in #17374
- ๐ช fix: Base-First Config Precedence, Profile Lifecycle and Role Renames That Keep Their Profile by @danny-avila in #17352
- ๐ fix: Apply Base Config Overrides Before Sign-In and Refuse Script Policy Links by @danny-avila in #17351
- ๐ท๏ธ fix: Resolve endpoints.all Title Settings per Field and Fold Ollama Endpoint Names by @danny-avila in #17316
- ๐ก๏ธ fix: Reject Unknown Admin Config Sections and Scope Write Responses to Read Access by @danny-avila in #17315
- ๐ fix: Recover Subagent Content With Shared Chat Rendering by @lia-by-librechat[bot] in #17290
- ๐ฅผ fix: Separate Agent Inference Settings From SDK Configuration by @lia-by-librechat[bot] in #17220
- ๐ชต fix: Keep the Winston Level Symbol in
jsonTruncateFormatfor OpenTelemetry Logs by @trois-six in #17307 - ๐ก fix: Restore Enforced Model Specs for Agent Continuations by @lia-by-librechat[bot] in #17229
- ๐ fix: Use Admin-Stored Web Search Credentials at Runtime by @danny-avila in #17323
- ๐ fix: Release Heavy Chat State on Conversation Switches by @lia-by-librechat[bot] in #17291
- ๐ช fix: Restore Explicit File Search Uploads by @lia-by-librechat[bot] in #17226
- โฑ๏ธ fix: Bound Outbound Calls Made Inside a Request by @berry-13 in #17263
- ๐ด fix: Match Image Media Types to Their Bytes by @lia-by-librechat[bot] in #17230
- ๐ fix: Fail Closed When Plugin Hook Shell Cannot Start by @lia-by-librechat[bot] in #17227
- ๐ fix: Mirror Agents, Prompts, Skills and Other Pages for RTL by @berry-13 in #17268
- ๐ช fix: Mirror Shared Primitives for Right-to-Left Layouts by @berry-13 in #17265
- ๐ฌ fix: Mirror Chat Messages, Markdown and Code Blocks for RTL by @berry-13 in #17267
- ๐ fix: Build the KeyvMongo Key Index Through the Retrying Helper by @berry-13 in #17282
- ๐งญ fix: Anchor the Sidebar, Mobile Drawer and Panels to Inline Edges in RTL by @berry-13 in #17266
- ๐ fix: Quiet Client Disconnects, Fall Back When Hash Workers Fail, Log Speech Truncation by @berry-13 in #17278
- โ๏ธ fix: Follow the Interface Direction in Radix, the Composer and First Paint by @berry-13 in #17264
- ๐งฏ fix: Close Abandoned Download and Speech Streams and Cap Speech Input by @berry-13 in #17270
- ๐ fix: Hash Passwords on a Worker Pool and Surface API Key Lookup Failures by @berry-13 in #17261
- ๐ fix: Keep API Keys and Internal Errors Out of Logs and Responses by @berry-13 in #17258
- ๐ fix: Load Full Tool Output So Copy Works on Panels Without a Row by @berry-13 in #17262
- ๐ fix: Restrict Stop to the Generation's Owner and Contain S3 Ingest Stream Errors by @berry-13 in #17256
- ๐ฉบ fix: Report Not Ready on /readyz While Redis Is Disconnected by @berry-13 in #17232
- ๐ fix: Keep the Batch Question Card On Screen Above a Long Draft by @berry-13 in #17222
- โณ fix: Wait for Chat History Before URL Auto-Submit by @berry-13 in #17224
- ๐ข fix: Pair English Plural Keys as _one/_other for Locize by @berry-13 in #17223
- ๐งฉ fix: Render Nested MCP Apps Under Standalone Subagent Calls by @berry-13 in #17211
- ๐ฐ๏ธ fix: Route Subagent Files Delivered After a Mid-Run Reload by @berry-13 in #17212
- ๐ผ๏ธ fix: Render Files Saved by Tools Inside a Subagent Run by @berry-13 in #17204
- ๐ฆ fix: Strip Assistant Prefill for Claude 5.x Models by @berry-13 in #17209
- ๐งฌ fix: Skip Re-Embedding Legacy File Search Files After Upgrade by @berry-13 in #17206
- ๐ช fix: Price 1-Hour Prompt Cache Writes at the 1-Hour Rate by @berry-13 in #17208
- ๐ถ๏ธ fix: Keep Temporary Chats Out of Langfuse by @berry-13 in #17202
- ๐งต fix: Harmony Headers in Text Attachments Break OpenAI Models on Bedrock by @danny-avila in #17101
- ๐ท๏ธ fix: Drop a File Name Removed Through the UI Parts View by @berry-13 in #17184
- ๐ fix: Restore MCP App Rendering and Actions by @dustinhealy in #16382
- ๐ fix: Keep Artifact Download Clear of Message Navigation by @dustinhealy in #17079
- ๐ณ fix: Align Admin Panel Image With Upstream Publishing Namespace by @dustinhealy in #17096
- ๐ fix: Upgrade the MCP SDK Past the OAuth Credential Leak (GHSA-6qxp-vccf-f47h) by @danny-avila in #17015
- ๐ช fix: Ground the Default Artifacts Prompt in What the Renderer Supports by @danny-avila in #17024
- ๐ fix: Skip Reasoning Labels for Encrypted Reasoning by @danny-avila in #17100
- ๐ fix: Prevent 30-Second OpenID Refresh Stalls After a Discarded Prerender by @upman in #17174
- ๐ fix: Defer Logger Serialization Until After Transport Sanitization by @dustinhealy in #17169
- ๐ fix: Keep the Error Card When a Stream Reattached Without Resume State Fails by @berry-13 in #17112
- ๐ fix: Mask Emails and Drop Personal Identifiers From Logs by @berry-13 in #17048
- ๐งน fix: Run the Full Erasure Cascade When an Admin Deletes a User by @berry-13 in #17050
- ๐๏ธ fix: Route Delete-User CLI Through the Shared Account Erasure Cascade by @berry-13 in #17033
- โ fix: Authenticate Bundled Helm Databases and Warn on Plain-HTTP Ingress by @berry-13 in #17047
- โณ fix: Expire Dead-Lettered Trigger Deliveries and Clean Up Orphaned Image Uploads by @berry-13 in #17049
- ๐ fix: Enforce Terms Acceptance on the Server and Mark Backfilled Consent by @berry-13 in #17063
- ๐งญ fix: Land on Chat History Instead of the Last Sidebar Panel by @berry-13 in #17083
- ๐ฌ fix: Drain a Follow-Up Queued in a Chat the User Left by @berry-13 in #16632
- ๐ชช fix: Boot-Paint a Cached Theme Only for Its Signed-In Owner by @berry-13 in #16926
- ๐ fix: Encrypt Provider Keys With v3, Reject Plaintext in decryptV2 and Default to Strong Backup Codes by @berry-13 in #17051
- fix(prompts): include command in prompt group list projections by @aniketkrs in #17046
- ๐ง fix: Log User IDs Instead of Emails in Admin Panel Auth Flow by @berry-13 in #17032
- ๐ฏ fix: Hold Default Button Heights and the Dialog Close Button at the 24px Target by @berry-13 in #16928
- ๐คซ fix: Stop Logging Action Auth Credentials to the Console by @berry-13 in #17031
- ๐ช fix: Load Google Tag Manager Only After Analytics Consent by @berry-13 in #16999
- ๐ fix: Encrypt User Plugin Credentials With Random-IV v3 Format by @berry-13 in #16996
- ๐งน fix: Stop Cache Audit From Logging Cache Keys and Values by @berry-13 in #16995
- ๐ต๏ธ fix: Redact Email Addresses and IPs From Auth Flow Logs by @berry-13 in #16994
- ๐ชฆ fix: Omit Email From Account Deletion Log by @berry-13 in #16993
- ๐ fix: Detect Pull Request Links in Command Output for Conversation Lanes by @berry-13 in #16982
- ๐ฑ fix: Keep Focused Text Fields at 16px on Touch Devices by @berry-13 in #16971
- ๐งฉ fix: Use Dropdown In Code Execution Settings by @berry-13 in #16980
- ๐ fix: Resolve useChat Tool Parts Against Live Attachments by @berry-13 in #16960
- ๐ฌ fix: Clear Queued Attachments and Simplify Steer Controls by @berry-13 in #16969
- ๐ฏ fix: Show the Focused State of the InputNumber Option Variant by @berry-13 in #16925
- ๐งฎ fix: Read Math Function Channels in CSS Custom Property Triplets by @berry-13 in #16924
- ๐งญ fix: Bring Submenus Closer to Their Parent Menu by @berry-13 in #16930
- ๐ชข fix: Settle Compaction Rows Past Anchor Collisions and Legacy Parts by @berry-13 in #16552
- ๐ fix: Lay Out Agent Builder Model Parameters Like the Chat Panel by @berry-13 in #16897
- ๐ฏ fix: Load Pull Request Status Only for Code Conversations by @berry-13 in #16885
- ๐งฌ fix: Derive the Theme Cache Version and Align Color Tokens by @berry-13 in #16819
- ๐๏ธ fix: Polish the Pull Request Chip and Card Header by @berry-13 in #16860
- ๐ฉน fix: Keep Chrome Surfaces and Destructive Confirms Legible in Quiet-Chrome Themes by @berry-13 in #16833
- ๐ซ๏ธ fix: Dim a Disabled InputNumber Through Its Nested Input by @berry-13 in #16820
- ๐ fix: Make DataTable Row Estimates Breakpoint- and Leaf-Column-Aware by @berry-13 in #16817
- ๐ฉน fix: Stub the Attached Route in the Lane Recording Specs by @berry-13 in #16840
- ๐ fix: Require Colon in API-Key Header Detection by @dustinhealy in #16803
- โน๏ธ fix: Reconcile Stopped Generations Before Detaching the Stream by @lia-by-librechat[bot] in #16788
- ๐๏ธ fix: Apply the No-Workspace Decision Wherever an Agent's Code Route Resolves by @danny-avila in #16798
- ๐ฏ fix: Keep Running Chat Ring Centered at Any UI Scale by @berry-13 in #16810
- ๐๏ธ fix: Smooth, Compact Code Workspace, Checkout and Approval Selectors by @berry-13 in #16789
- ๐ fix: Recover Concurrent First SAML, LDAP and Social Logins by @danny-avila in #16779
- ๐ช fix: Let Concurrent First OpenID Logins Continue as the New User by @danny-avila in #16778
- ๐ fix: Keep Reasoning Out of Read Aloud by @berry-13 in #16790
- ๐ช fix: Layer Tooltips Above the Popups They Open Inside by @berry-13 in #16791
- ๐งท fix: Finalize Stopped Compactions and Verify Their Anchor by @berry-13 in #16551
- ๐ด fix: Persist Cancelled Compactions With Their Identity by @berry-13 in #16436
- ๐ช fix: Hide Sole Tool Row Under Its Group Header by @berry-13 in #16750
- ๐ฆ fix: Keep System Messages Stable During Collapse by @lia-by-librechat[bot] in #16780
- ๐๏ธ fix: Let a No-Workspace Turn Carry a Remembered Approval Mode by @danny-avila in #16763
- โ๏ธ fix: Default Running Chat Rename to On by @berry-13 in #16769
- ๐ฏ fix: Separate Subagents and Handoffs Into Native Tools by @lia-by-librechat[bot] in #16761
- ๐งฌ fix: Default Subagents to Their Parent's Code Machine and Workspace by @danny-avila in #16756
- ๐ถ fix: Price Mistral Large 3 at $0.50 / $1.50 per MTok by @Alan-Billi in #16675
- ๐ fix: Sync Spinner Rotation Phase Across Instances by @berry-13 in #16738
- ๐๏ธ fix: Keep Project Chats Out of Chats by Default and Space Project Rows by @berry-13 in #16755
- ๐ fix: Truncate Long Titles in the Archived Chats Dialog by @berry-13 in #16754
- ๐ซฅ fix: Remove Hover and Press Backgrounds From Chat Tool Rows by @berry-13 in #16749
- ๐๏ธ fix: Strengthen Two-Factor Recovery Credentials by @danny-avila in #16742
- ๐งน fix: Let File Deletes Succeed When the Code API No Longer Serves the Ref's Profile by @TomasPalsson in #16671
- ๐ป fix: Reveal Project Row Actions on Hover and Focus by @berry-13 in #16731
- ๐ฒ๏ธ fix: Enable Running Chat Menus and Preserve Renamed Titles by @lia-by-librechat[bot] in #16697
- ๐ช fix: Separate Workspace Admission and Transport Budgets by @lia-by-librechat[bot] in #16728
- ๐ฉ fix: Stage URL Prompts Before Agent Submission by @lia-by-librechat[bot] in #16647
- fix: Align Agent Contact Email with Its Label by Lia in 97bccd2e7d
- ๐ฆฏ fix: Preserve Keyboard Access to BYOM Diagnostics by Lia in d9ec51ba47
- fix: Order Server Snapshots Against Pending Read Intent by Lia in ac2b51e98f
- fix: Fence Reply Read State and Preserve Snapshot Clears by Lia in c85795d08f
- fix: Preserve Unread Intent Across Mixed Backend Versions by Lia in 4bc9c9e5c0
- fix: Preserve Legacy Unread Reminder Placement by Lia in d621cd8b69
- fix: Keep Manual Unread Reminders in Date Groups by Lia in c41413ad21
- fix: Verify Sidebar Status and Project Name Loading by Lia in ad99250a35
- ๐ fix: Warn When interface.webSearch Blocks Native Search by @berry-13 in #16708
- ๐ผ fix: Keep BYOM Workspace Diagnostics Out of Composer Layout by Lia in 179ff350ec
- ๐ fix: Ink the Artifact Refresh Veil with the Media Text Role by @berry-13 in #16716
- ๐ช fix: Layer Settings Dialog Popovers Above Its Panel by @berry-13 in #16720
- ๐งพ fix: Commit Resume Provenance With the Approval Claim by @berry-13 in #16430
- ๐๏ธ fix: Read Theme Roles for the Last Artifact and Agent Chip Colours by @berry-13 in #16705
- ๐งญ fix: Explain Missing Workspace Paths to the Model by @danny-avila in #16700
- ๐ซ fix: Debounce Streaming Tool Code Highlights by @lia-by-librechat[bot] in #16695
- ๐๏ธ fix: Bound Host File Edits Outside the API Event Loop by @lia-by-librechat[bot] in #16677
- ๐ fix: List Every Running Chat in the Sidebar's Running Group by @danny-avila in #16668
- ๐๏ธ fix: Keep Attachment History From Locking Conversations by @lia-by-librechat[bot] in #16690
- ๐ fix: Log Lost Generation Predecessor Fences as Warnings by @danny-avila in #16689
- ๐ fix: Authenticate Code Session Probes the Way Their Route Expects by @danny-avila in #16688
- ๐ fix: Explain Native Web Search Permission Denials by @lia-by-librechat[bot] in #16691
- ๐ญ fix: Show the Thoughts Floating Bar Only When Its Header Is Off Screen by @berry-13 in #16642
- ๐๏ธ fix: Resolve Config-Scoped Custom Providers by @danny-avila in #16687
- ๐ผ fix: Replay Running Subagent Activity by @lia-by-librechat[bot] in #16541
- ๐ fix: Scope OAuth Binding Cookies to the Public API Path by @lia-by-librechat[bot] in #16649
- ๐ฌ fix: Keep Healthy Workspace Detach Available by @danny-avila in #16670
- ๐ช fix: Read the Static Checks Workflow With CRLF Line Endings by @danny-avila in #16669
- ๐ง fix: Pass
requireTLSSoEMAIL_ENCRYPTION=starttlsRequires STARTTLS by @ethanlaj in #16656 - ๐ต fix: Preserve Workspace Decisions in Warm Chat Caches by @lia-by-librechat[bot] in #16648
- ๐ฅพ fix: Advertise Stable Uploaded File Paths Before Code Execution by @Oliver777int in #16578
- ๐ท fix: Stop Reporting Rejected MCP Credentials as Authorized by @lia-by-librechat[bot] in #16571
- ๐ซก fix: Keep Pending Steering Within the Chat Column by @lia-by-librechat[bot] in #16621
- fix: Restore MCP OAuth Browser Binding ๐ชข by @danny-avila in #16634
- ๐ฆ fix: Restore Theme Contrast in Composer and Messages by @lia-by-librechat[bot] in #16624
- ๐ชง fix: Open the Mobile Drawer Below a Site Banner by @berry-13 in #16611
- ๐ fix: Hide the Viewer's Deployment Theme While a Shared Link Loads by @berry-13 in #16608
- ๐ช fix: Open the Lone Tool Call Directly and Label Settled Commands Ran by @berry-13 in #16547
- ๐ช fix: Stop the Textarea Jump During File Uploads by @lia-by-librechat[bot] in #16623
- ๐งโ๐ณ fix: Distinguish Tool Preparation From Execution by @lia-by-librechat[bot] in #16619
- ๐ fix: Paint the Cached Deployment Theme on the First Frame by @berry-13 in #16590
- ๐ช fix: Resolve Theme Markers to the Nearest Themed Root by @berry-13 in #16589
- ๐ fix: Reconcile Canary Promotion Static Checks by Lia in 443d27ba32
- โด๏ธ fix: Reset Agent Search and Wait for Completed Diagram Exports by Lia in e6d6092448
- โด๏ธ fix: Align Canary Timing Types and CI Formatting by Lia in 206ef476f6
- ๐งฝ fix: Paint Freed Feature Surfaces From Theme Roles by @berry-13 in #16517
- ๐ fix: Draw Controls at the Theme Control Radius by @berry-13 in #16481
- ๐งฉ fix: Paint Panel Surfaces From Theme Roles by @berry-13 in #16484
- ๐ซง fix: Paint Chat Surfaces From Theme Roles by @berry-13 in #16483
- ๐ค fix: Ship the Theme Font Faces With the Package by @berry-13 in #16485
- ๐ช fix: Publish the Theme Defaults and Scale Mapping to Package Consumers by @berry-13 in #16479
- ๐๏ธ fix: Apply Controlled Themes Before Paint and Theme Prose Links, Inline Code and QR Backdrops by @berry-13 in #16480
- ๐จ fix: Draw Library Colours From Theme Roles and Record the Exceptions by @berry-13 in #16482
- ๐จ fix: Fall Back From an Invalid Theme in librechat.yaml Instead of Exiting by @berry-13 in #16462
- ๐งฏ fix: Outlast Failed Auth Cache Eviction on Credential Changes by @berry-13 in #16435
- โด๏ธ fix: Keep MCP App and Speech Limits in One E2E Config by Lia in 04461d4cdb
- ๐ fix: Reattach a Resume Stream Whose Body Ends Before Final by @berry-13 in #16438
- ๐ถ fix: Remove Obsolete Steer Recovery Translation Keys by Lia in 321dfb1fe9
- ๐ถ fix: Keep Revealed Queue Actions and E2E Flows After Composer Redesign by Lia in 596c4dd592
- ๐ถ fix: Reconcile Canary Server Startup and Static Gates by Lia in 3a73e508fc
- ๐ fix: Quiet Form-Control Outlines in the Stock Palettes by @berry-13 in #16400
- ๐ถ fix: Reconcile Canary Sync Checks by Lia in 3ae115785e
- ๐ผ๏ธ fix: Paint the Shared Link Tenant's Deployment Theme by @berry-13 in #16333
- ๐ซ fix: Bound MCP App Responses and In-Flight Work by @lia-by-librechat in #16300
- โฟ fix: Keep Identity Badge Labels at Text Contrast by @berry-13 in #16337
- ๐ fix: Mute the Create Assistant Empty State in the Assistant Picker by @berry-13 in #16338
- ๐งฉ fix: Keep Streamed Parts Intact Across Replays and Early Completions by @berry-13 in #16331
- ๐ซธ fix: Gate MCP App Views and Actions on User Intent by @lia-by-librechat in #16297
- ๐ fix: Invalidate the Auth User Cache After a CLI Password Reset by @berry-13 in #16257
- ๐ fix: Revoke Password Reset Credentials Independently by @berry-13 in #16320
- ๐ฅข fix: Fit MCP App Snapshots Within Message Documents by @lia-by-librechat in #16299
- ๐ fix: Refresh the Stored Passkey Backup State on Each Sign-In by @berry-13 in #16255
- ๐ fix: Keep Passkey Sign-In Reachable When Email Login Is Disabled by @berry-13 in #16254
- ๐งต fix: Restore Classes tailwind-merge Was Silently Dropping by @berry-13 in #15995
- ๐ฆฏ fix: Restore BYOM Diagnostic Access and Stabilize Readiness Checks by @lia-by-librechat[bot] in #16723
- ๐ผ fix: Keep BYOM Workspace Diagnostics Out of Composer Layout by @lia-by-librechat[bot] in #16721
- ๐ด๏ธ fix: Align Agent Contact Email on the Landing Page by @lia-by-librechat[bot] in #16655
๐ง Refactoring and Performance
- ๐ชก style: Separate Attachments from Message Bubbles by @lia-by-librechat[bot] in #17017
- ๐ช refactor: Serve ChatView and the Sidebar Through the Chat Provider by @berry-13 in #17423
- ๐ refactor: Split History Placement Out of the Resumable resume.ts by @berry-13 in #17428
- ๐งน refactor: Remove Unused Components from the Client Package by @berry-13 in #17437
- ๐งญ refactor: Move the SelectDropDown Callers onto Dropdown and Remove It by @berry-13 in #17434
- ๐ช refactor: Remove Legacy Dialog and DialogTemplate from Client Package by @berry-13 in #17430
- ๐๏ธ refactor: Move the Code Tool Selects onto Dropdown and Remove Select by @berry-13 in #17432
- ๐งต refactor: Read the Pane Conversation Through ChatSettings in Stream Resume by @berry-13 in #17420
- ๐ช refactor: Separate Local Prompt Storage from Content Resolution by @AtefBellaaj in #17285
- ๐ญ refactor: Centralize Source Prompt Imports in the Prompt Service by @AtefBellaaj in #17272
- ๐จ refactor: Theme the Retry Action Radius and the Select Arrow by @berry-13 in #17360
- ๐๏ธ refactor: Portable Admin Config Store with Revisions, Key Encoding and Coherent Writes by @danny-avila in #17326
- ๐ refactor: Read Stream Auth and Deployment Config Through ChatSettings by @berry-13 in #17141
- โ๏ธ refactor: Move Run Display, Live Attachment and PTC Trace Atoms to Jotai by @berry-13 in #17138
- ๐๏ธ refactor: Split useEventHandlers by Responsibility by @berry-13 in #17136
- ๐งท refactor: Split useResumeOnLoad by Responsibility by @berry-13 in #17134
- ๐ชก refactor: Split useResumableSSE Into Thin Host Bindings by @berry-13 in #17133
- ๐งฉ refactor: Move the Resumable Submission Mount Into the Chat Core by @berry-13 in #17132
- ๐ refactor: Move the Resumable Generation Start Into the Chat Core by @berry-13 in #17131
- ๐ชข refactor: Keep Chat Direction in Jotai and Cover Direction Scenarios by @berry-13 in #17279
- ๐งน refactor: Use Logical Spacing and Positioning in the App Shell by @berry-13 in #17269
- ๐๏ธ perf: Index Hot Lookups and Project the Remote Models List by @berry-13 in #17259
- ๐ฐ refactor: Move the Queue Drain, Reveal and Recovery Hooks into the Chat Package by @berry-13 in #17170
- ๐จ refactor: Draw Lemonade, MLX, ShuttleAI and Unify as Brand Marks by @berry-13 in #17252
- ๐ท๏ธ refactor: Draw Provider Icons as Theme-Following Brand Marks by @berry-13 in #17237
- ๐งพ refactor: Drop the Unsent Request/Response Pair From ChatErrorData by @berry-13 in #17221
- ๐งท refactor: Require a Mounted Steer Host Instead of a Module Default by @berry-13 in #17164
- ๐งฝ refactor: Import Composer State and Restore from the Chat Package by @berry-13 in #17163
- ๐งน refactor: Import Steer Queue and Recovery State from the Chat Package by @berry-13 in #17162
- ๐ refactor: Move the Steering Hooks into the Chat Package by @berry-13 in #17158
- ๐ฒ refactor: Route Picker Panels Through Theme Radius Roles by @berry-13 in #17186
- ๐๏ธ refactor: Move Pane Composer Files to Jotai in the Chat Package by @berry-13 in #17193
- ๐๏ธ refactor: Move Pane Preset and Option Settings to Jotai in the Chat Package by @berry-13 in #17179
- ๐๏ธ refactor: Read the Search, File and Message Editor Siblings Through the Parts Host by @berry-13 in #17173
- โ๏ธ refactor: Read the Inline Editors' Messages View Through the Parts Host by @berry-13 in #17172
- ๐ perf: Index-Bound Word-Prefix Search for Users and Groups by @berry-13 in #16719
- ๐ง perf: Recycle Backend Jest Workers Past 1GB by @berry-13 in #17098
- ๐จ style: Restore Resumable SSE Import Order by @dustinhealy in #17191
- ๐งฑ refactor: Read Message Content Siblings Through the Parts Host by @berry-13 in #17171
- ๐งช refactor: Move Test-Only Helpers Out of Production Modules by @berry-13 in #17139
- โ๏ธ refactor: Remove Dead Helpers, Classes and Dependencies From packages/api by @berry-13 in #17118
- ๐ refactor: Inject the App Services the Steer Hooks Use through a Steer Host by @berry-13 in #17156
- ๐ refactor: Move Resumable Frame Dispatch and Attach Into the Chat Core by @berry-13 in #17129
- ๐ฐ๏ธ refactor: Move the Pane Submission to Jotai in the Chat Package by @berry-13 in #17159
- ๐ฆ refactor: Move the Generation Run Atoms Into the Chat Package by @berry-13 in #17140
- ๐ฉน refactor: Move Resumable Response Patching Into the Chat Core by @berry-13 in #17127
- ๐ refactor: Move Resumable Transport Failure Handling Into the Chat Core by @berry-13 in #17120
- ๐ฐ๏ธ refactor: Move the Submitting Flag to Jotai in the Chat Package by @berry-13 in #17121
- โ๏ธ refactor: Split the Chat Ask Function Into Turn Modules by @berry-13 in #17115
- ๐งฑ refactor: Split the Chat Step Reducer Into Stream Modules by @berry-13 in #17105
- ๐ฆ refactor: Move Steer Queue and Composer State into the Chat Package by @berry-13 in #17155
- ๐ฐ refactor: Move Queue Drain Decisions into the Chat Core by @berry-13 in #17130
- ๐ refactor: Move Resumable Terminal Handoff and Lifecycle Reconcile Into the Chat Core by @berry-13 in #17119
- ๐งญ refactor: Give the Resumable Stream a Core Run and Subscription by @berry-13 in #17117
- ๐งต refactor: Move Turn Message Helpers Into the Chat Core by @berry-13 in #17110
- ๐งฐ refactor: Move Resumable Start Helpers Into the Chat Core by @berry-13 in #17109
- ๐งฎ refactor: Move Token Usage Math Into the Chat Package by @berry-13 in #17106
- ๐ช refactor: Read Mounted Pane Conversations through ChatSettings in Steer Recovery by @berry-13 in #17137
- โ๏ธ refactor: Move the Steer Atoms to Jotai in the Chat Package by @berry-13 in #17135
- ๐งฎ refactor: Lift Stream Steer-Chip Reconciliation into Core Reducers by @berry-13 in #17128
- ๐งฒ refactor: Move Pending Quotes and Manual Skills onto Jotai by @berry-13 in #17126
- ๐๏ธ refactor: Move Queued Send and During-Run Actions out of useSteering by @berry-13 in #17125
- ๐ฎ refactor: Move the Steer POST into useSubmitSteer with Core Helpers by @berry-13 in #17124
- ๐งท refactor: Split Steer Chips, Enqueue and Queued Recovery out of useSteering by @berry-13 in #17123
- ๐ชก refactor: Split Queue Receipts, Rows and Composer Takes out of useSteering by @berry-13 in #17122
- ๐งญ refactor: Move App-Only Conversation and Sharing Hooks Out of hooks/Chat by @berry-13 in #17108
- ๐งญ refactor: Move Steer and Queue Pure Logic into the Chat Core by @berry-13 in #17107
- ๐งฝ refactor: Remove Dead Client Components, Providers and Barrels by @berry-13 in #17116
- ๐ชฆ refactor: Remove Dead Legacy API Modules and Root Tooling by @berry-13 in #17114
- ๐๏ธ refactor: Remove Dead Data Schemas Methods and Data Provider Exports by @berry-13 in #17113
- ๐งน refactor: Remove Dead Client Hooks, Store Modules and Utilities by @berry-13 in #17111
- ๐ refactor: Move Text-Like Message Parts Into @librechat/chat by @berry-13 in #17087
- ๐งฉ refactor: Route Message Parts Through a @librechat/chat Part Dispatcher and Host by @berry-13 in #16976
- ๐ refactor: Draw the Composer Controls With the Shared Button by @berry-13 in #16953
- ๐ refactor: Lift the Step Handler Into a Core reduceStep With an Effects Channel by @berry-13 in #17000
- ๐ฐ refactor: Move the Pure Stream Code into the @librechat/chat Core by @berry-13 in #16979
- ๐ชข refactor: Move Stop Button, Abort Scroll and Submission Start State to Jotai by @berry-13 in #16968
- ๐งฑ refactor: Judge Chat Package Imports on the Resolved Module by @berry-13 in #16975
- ๐งญ refactor: Supply Deployment Config and Auth to Chat Hooks Through ChatSettings by @berry-13 in #16963
- ๐ refactor: Read ChatView's Save-Drafts Setting From the Host Chat Settings by @berry-13 in #16952
- ๐จ style: Quiet Failed Tool Activity by @berry-13 in #16949
- ๐ช refactor: Supply Auto-Expand Tools to Tool Cards From the Message Host by @berry-13 in #16951
- ๐ฆ refactor: Move the Token-Usage Jotai State Into the TokenUsage Feature by @berry-13 in #16950
- ๐ชถ perf: Mount a Sidebar Row's Menu Actions Only Once Its Menu Is Used by @berry-13 in #16948
- ๐งญ refactor: Normalize Model-Authored Artifact Types in One Place by @berry-13 in #16947
- ๐๏ธ refactor: Define the Code Highlight Cadence Default Once by @berry-13 in #16946
- ๐ฑ๏ธ refactor: Hover the Rail Toggle, New Chat and Marketplace Controls in the Nav Role by @berry-13 in #16940
- ๐งญ refactor: Give the Desktop Icon Rail Nav Hover and Selected States by @berry-13 in #16937
- ๐ช refactor: Use the Embedded Input Variant in the Command Popovers by @berry-13 in #16901
- ๐งฑ refactor: Use the Framed Textarea Variant in the Skill Editors by @berry-13 in #16894
- ๐๏ธ refactor: Use Primitive Tones, Variants and Shapes in Remaining Components by @berry-13 in #16872
- ๐งน refactor: Move Inline Styles to Classes Outside Chat and the Side Panel by @berry-13 in #16871
- ๐ฏ refactor: Hold ClickHouse Colors at Their Click UI Values by @berry-13 in #16821
- ๐ฃ style: Show Merged Pull Requests in Purple by @berry-13 in #16882
- ๐งผ refactor: Drop Redundant Design Overrides in the Remaining Side Panels by @berry-13 in #16867
- ๐งน refactor: Drop Redundant Design Overrides in the Agents Panel by @berry-13 in #16866
- ๐๏ธ refactor: Give InputNumber an Option Variant for Setting Values by @berry-13 in #16831
- ๐งน refactor: Use Existing Variants and Drop Redundant Overrides in Nav, Skills and Prompts by @berry-13 in #16868
- ๐งน refactor: Clear Chat Input Design Suppressions Through Existing Variants by @berry-13 in #16863
- ๐งน refactor: Resolve Unknown Classes and Shed Restyle Overrides in Chat Messages by @berry-13 in #16865
- ๐งน refactor: Clear Raw-Color, Unknown-Class and Arbitrary-Value Suppressions by @berry-13 in #16829
- ๐จ refactor: Route Stylesheet Colours Through Theme Variables by @berry-13 in #16823
- ๐งฝ refactor: Drop Redundant Button Overrides in Chat Messages and Input by @berry-13 in #16838
- ๐ refactor: Use the Bare and Wide Button Sizes in the Account Settings Dialogs by @berry-13 in #16834
- ๐ refactor: Give Sign-In Controls Button, Input and Alert Variants by @berry-13 in #16828
- ๐งน refactor: Clear the Raw-Color and Unknown-Class Design Suppressions by @berry-13 in #16825
- ๐งฝ refactor: Drop Classes Primitives Already Set by @berry-13 in #16835
- ๐ท๏ธ refactor: Drop Redundant Label Ink Overrides in Panels by @berry-13 in #16830
- ๐งน refactor: Replace Arbitrary Values in the Agent Builder and Skills by @berry-13 in #16824
- ๐งน refactor: Clear Raw-Color and Unknown-Class Suppressions in Panels by @berry-13 in #16818
- ๐ท๏ธ refactor: Mark Message Text Containers With a Data Attribute by @berry-13 in #16826
- ๐งน refactor: Clear Chat Design Suppressions That Render Nothing by @berry-13 in #16822
- ๐ชถ perf: Load Tool-Call Previews and Fetch Full Parts on Demand by @danny-avila in #16753
- ๐จ style: Compact Queue Buttons and Restyle Projects and Composer Context Rail by @berry-13 in #16772
- โก perf: Cache Package Builds and Make Client Coverage Opt-In by @berry-13 in #16709
- โก perf: Async Local File Saves and Compile Hot-Path Regexes Once by @berry-13 in #16712
- ๐ซ perf: Release Message Histories of Conversations the User Has Left by @danny-avila in #16747
- perf: Skip Unchanged Skills in GitHub Skill Sync by Marco Beretta in 565976be52
- style: Sort Imports In ChatForm And Queue by Marco Beretta in 18a1ecfde9
- refactor: Remove Visible Composer Hint Row And Tips Setting by Marco Beretta in f87fb0dbc6
- ๐ perf: Coalesce Ready Background Completions by Default by Danny Avila in 2b4e5b5acd
- ๐งบ perf: Batch Prompt Group Permission Checks in the Sidebar by @berry-13 in #16710
- ๐๏ธ perf: Cut Serial and Redundant Database Reads by @berry-13 in #16711
- ๐ perf: Trim Per-Token and Per-Render Work in Streaming and Lists by @berry-13 in #16718
- ๐๏ธ refactor: Drop Inline Pointer Styles From Select and Menu Primitives by @berry-13 in #16704
- ๐ช perf: Coalesce Ready Background Completions by @lia-by-librechat[bot] in #16650
- ๐งฐ style: Hover-Revealed Tool Output Copy, Full Output, and a Virtualized My Files Table by @berry-13 in #16640
- โป๏ธ refactor: Native Prompts Behind a Shared Service and Adapter by @AtefBellaaj in #16506
- ๐ท perf: Reduce Browser Work When Sending Documents by @lia-by-librechat[bot] in #16646
- ๐งฉ refactor: Serve Chat Context Through a Facade-Owned Provider by @berry-13 in #16610
- ๐งน refactor: Keep Store Imports Out of the Chat Hooks by @berry-13 in #16620
- ๐๏ธ refactor: Pass the New-Chat Panel Preference Into the Sidebar by @berry-13 in #16605
- ๐๏ธ refactor: Hand Chat Preferences to the Host and the Follow-Up Queue to Jotai by @berry-13 in #16604
- ๐งฉ refactor: Message Parts Host Context by @berry-13 in #16591
- ๐ฆ refactor: Route Chat Send, Stop, Steer and Queue Through the Transport by @berry-13 in #16593
- ๐ refactor: Host-Supplied Chat Transport and Settings in the Contract by @berry-13 in #16592
- โด๏ธ style: Match Canary Theme Class Ordering by Lia in 385a648e17
- โด๏ธ style: Match Theme Class Ordering in Canary Sync by Lia in 70bf641e50
- โก perf: Keep the Mermaid Chunk Off the Boot Path by @berry-13 in #16493
- ๐๏ธ refactor: Supply App-Global Chat Settings From the Host by @berry-13 in #16466
- ๐ถ style: Match Schedule Recovery Theme Formatting by Lia in bb82aee8c3
- ๐ฌ refactor: ChatForm UI redesign with unified palette by @berry-13 in #14473
- ๐ refactor: Drive the Resumable Stream Through the ChatTransport by @berry-13 in #16378
- ๐ถ style: Match CI Tailwind Formatting in Canary Sync by Lia in 57e26fae44
- ๐ชถ style: Quieter Primitives, Shared Panel Headers, and Flat Management Lists by @berry-13 in #16244
- ๐ refactor: Drive useSSE Through the ChatTransport by @berry-13 in #16336
- ๐ refactor: Normalize Stream Events Behind a ChatTransport Type by @berry-13 in #16335
- ๐๏ธ refactor: Read Theme Roles in Prose, Settings Dialog and Composer Surfaces by @berry-13 in #16332
- ๐งฐ refactor: Pure Step Reducer for Tool Call Events by @berry-13 in #16290
- ๐งฎ refactor: Pure Step Reducer Behind useStepHandler by @berry-13 in #16289
- ๐ refactor: Declare the Chat Context Contract by @berry-13 in #16288
- ๐จ style: Semantic Colour Roles for Builder, Tools and Sharing Surfaces by @berry-13 in #16294
- ๐งน refactor: Keep Mongoose Types Out of the Passkey Handler Contract by @berry-13 in #16263
- ๐ refactor: Upgrade the Client to Tailwind v4 by @berry-13 in #15996
- โ๏ธ refactor: Move Policy Links to the Signup Consent by @berry-13 in #16138
- ๐ perf: Coalesce Ready Background Completions by Default by @danny-avila in #16724
- ๐ช perf: Skip Unchanged Skills in GitHub Skill Sync by @berry-13 in #16717
๐งช Tests
- ๐งพ test: Require Every Appearance Key to Be Listed as Documented by @berry-13 in #17357
- ๐งช test: Pin Brand Tokens and Renamed Roles Outside the Color Registry by @berry-13 in #17355
- ๐ฅธ test: Cover Overlapping Web Search Secret Patches by @lia-by-librechat[bot] in #17390
- ๐ test: Control the Code API Retry Budget Clock by @lia-by-librechat[bot] in #17338
- ๐งช test: Keep EndpointService Spec Mocks Complete When the Real API Package Loads by @danny-avila in #17324
- ๐ช test: Mount the Steer Host in the Batch Composer Fixture by @lia-by-librechat[bot] in #17235
- ๐ test: Isolate Empty Panel Cards From Shared Data by @lia-by-librechat[bot] in #17234
- ๐งญ test: Cover ClickHouse Control Boundaries on the Sidebar Surface by @berry-13 in #17197
- ๐ฒ test: Make the ClickHouse Pinned-Pair Check Order-Independent by @berry-13 in #17192
- ๐๏ธ test: Run useIsActiveItem Spec Under jsdom So GC Cannot Drop the Observer by @berry-13 in #17199
- ๐งช test: Spec the First-Sentence Diagnostic Comparison in the Suppression Runner by @berry-13 in #17165
- ๐งช test: Scroll UI-Scale Conversation Rows Into View by @dustinhealy in #17188
- ๐ฏ test: Match the Action Save Toast Once When a Live Region Repeats It by @berry-13 in #17091
- ๐ชค test: Widen the Theme Cache Pin to Joint Fallbacks, Enum Literals and Joint Rules by @berry-13 in #16927
- ๐ test: Retry MCP Reinitialize Past the Circuit Breaker Cooldown in Credential Scenarios by @berry-13 in #17029
- ๐งช test: Drive useChat Through a Substitute Transport for Send, Stop, Steer and Errors by @berry-13 in #16957
- ๐งช test: Apply One Reference Theme Across Radius, Font, Shadow and Spacing by @berry-13 in #16905
- ๐งฌ test: Pin Built-In Theme Output to the Cache Epoch by @berry-13 in #16875
- ๐ test: Stabilize MCP App Link Clicks by @lia-by-librechat[bot] in #16760
- ๐ค test: Cover Alias Frontmatter Keys in the Skill Sync Skip by @berry-13 in #16725
- ๐ฆ test: Define PII Policy and Conformance Fixtures by @lia-by-librechat[bot] in #16726
- ๐ฅ test: Stabilize Host Edit Responsiveness Assertions by @lia-by-librechat[bot] in #16727
- test: Cover Queue Row Actions And The Single Send Control In Scenarios by Marco Beretta in a588339dd7
- test: Cover Every Palette Slot in Repeatable Samples by Lia in 9dfdea13cb
- ๐ฅพ test: Wait for Palette Completion and Stable Quote Geometry by Lia in 37df3c1146
- test: Include i18n Helper in Isolated Static Fixtures by Lia in e19d2dbea1
- ๐ test: Re-Pin Click UI Drift Guard to v0.13.0 and Probe the Checkbox by @berry-13 in #16706
- ๐ฆญ test: Add Scheduled MCP Authorization Contract Fixtures by @lia-by-librechat[bot] in #16645
- ๐ test: Reload Mid-Reply Reattaches and Finishes by @berry-13 in #16598
- ๐งพ test: Complete the Click UI Not-Expressible List by @berry-13 in #16588
- โด๏ธ test: Keep Executor and Timing Callback Adapters Aligned by Lia in 2e0690616f
- ๐งพ test: Enumerate the Click UI Decisions the Theme Cannot Express by @berry-13 in #16544
- โด๏ธ test: Make Passkey Ordering Fixtures Deterministic by Lia in 2d1dfae0c3
- ๐งท test: Count Derived Scrim Tokens as Theme-Owned by @berry-13 in #16512
- ๐งญ test: Pin the ClickHouse Theme to Click UI and Route Focus Through the Ring by @berry-13 in #16461
- โด๏ธ test: Check Code Steers in the Canary Thread by Lia in d98ca2b073
- ๐งช test: Cover MCP App Operation Limits in Authenticated Startup Config by @berry-13 in #16429
- ๐ถ test: Isolate Marketplace Retries and MCP OAuth Ownership by Lia in 733f5e678c
๐ฆ Dependencies, Chores & CI
- ๐ chore: Refresh Publishable Package Versions by @lia-by-librechat[bot] in #17418
- ๐งโ๐ง chore: Refresh Package Versions for v0.8.9-rc1 by @lia-by-librechat[bot] in #17378
- ๐ค chore: Upgrade API and Test Dependencies, Refresh Bun Lockfile by @danny-avila in #17414
- ๐ฆ ci: Throttle Codegraph E2E Votes to One Run per Window by @danny-avila in #17380
- ๐ชท chore: Upgrade DOMPurify and ip-address by @danny-avila in #17379
- ๐ chore: Re-Pin the ClickHouse Theme to Click UI v0.15.0 by @berry-13 in #17356
- ๐ chore: Bump Agents SDK to 4.1.0 by @lia-by-librechat[bot] in #17345
- ๐ฟ chore: Upgrade
sanitize-html, Hono, and MongoDB Memory Server by @danny-avila in #17343 - ๐ณ๏ธ ci: Shard the Codegraph E2E Vote Suite Across Ten Runners by @danny-avila in #17339
- ๐ผ chore: Upgrade Vite to 8.3.5 by @danny-avila in #17337
- ๐ฃ chore: Prepare v0.8.9-rc1 Release by @lia-by-librechat[bot] in #17336
- ๐ chore: Upgrade Node.js to Security Release 24.22.1 by @lia-by-librechat[bot] in #17332
- ๐ณ๏ธ ci: Let Codegraph E2E Vote Runs Finish by @danny-avila in #17325
- ๐ชฆ chore: Retire the DALL-E 3 Tool by @berry-13 in #17205
- ๐ chore: Default OpenAI Image Tools to GPT Image Flare by @lia-by-librechat[bot] in #17014
- ๐ chore: Update
pbkdf2andto-bufferby @danny-avila in #17187 - ๐ chore: Resolve Open Dependabot Security Alerts by @danny-avila in #17016
- โฑ๏ธ ci: Balance Playwright Shards by Recorded Duration by @danny-avila in #17019
- ๐ฅ ci: Type-Check Workspaces with bun check by @berry-13 in #17009
- ๐ฏ a11y: Move Field and Focus Call Sites Onto the Control Roles by @berry-13 in #16929
- ๐ฏ a11y: Hand Focus Back When an Agent Detail Refresh Removes the Focused Control by @berry-13 in #16945
- ๐ a11y: Show Hover-Revealed Actions to the Touchscreen on a 2-in-1 by @berry-13 in #16943
- ๐จ a11y: Draw Every Prompt Category Icon Muted Under ClickHouse by @berry-13 in #16935
- ๐ท๏ธ a11y: Give Prompt Category Icons Their Own Color Role by @berry-13 in #16933
- ๐ a11y: Ink the Dark Default Avatar Glyph at 3:1 on Its Fill by @berry-13 in #16931
- โฟ a11y: Name the Global Focus Outline on Tabs, Table Rows and Dropdown by @berry-13 in #16870
- โฟ a11y: Let Dark Mode Honor Outline Utilities on Focus by @berry-13 in #16861
- ๐งฑ chore: Let Callers Own Spacing on Dialog and Panel Containers by @berry-13 in #16836
- โฟ a11y: Ring Content Rows in a Themeable Focus Role by @berry-13 in #16740
- ๐ช chore: Deprecate Agent Chain Authoring by @lia-by-librechat[bot] in #16745
- โฟ a11y: Stop Agent API Keys Dialog Opening Its Info Card On Focus by @berry-13 in #16735
- ๐ docs: Describe Attached-Workspace Lanes, Sandbox Scratch, and Skill Files in Tool Descriptions by @danny-avila in #16702
- โด๏ธ chore: Bring Canary Up to Date With Dev by @lia-by-librechat in #16457
- ๐ถ chore: Bring Canary Up to Date With Dev by @lia-by-librechat in #16361
- ๐ฒ a11y: Form-Control Outlines Clear 3:1 in Every Palette by @berry-13 in #16377
- ๐ฉ๏ธ ci: Allow More Time for Chrome Startup in Client Build Recovery by @lia-by-librechat in #16330
- ๐งน chore: Remove the Unmounted Files Component Tree by @berry-13 in #16243
- ๐ฅผ ci: Gate MCP Apps on Executed Browser Tests by @lia-by-librechat in #16283
- ๐จ chore: Enforce Design-System Rules With @shadcn/lint by @berry-13 in #15981
- ๐ฆ ci: Remove Legacy GHCR Mirror by @danny-avila in #16585
- ๐ chore: Validate Canary History on Current Dev by @lia-by-librechat[bot] in #16586
๐ Internationalization
New Contributors
- @Alan-Billi made their first contribution in #16675
- @aniketkrs made their first contribution in #17046
- @trois-six made their first contribution in #17307
Full Changelog: v0.8.8...v0.8.9-rc1