v0.8.8-rc2

Pre-release

danny-avila/LibreChatv0.8.8-rc2Sep 3, 2026by danny-avila

AI Summary

This release introduces a comprehensive overhaul of the Agent system with Durable Events, Unified Agent Builder, and experimental plugins. It adds support for cutting-edge AI models like GPT-5.6 and Claude 5.x, alongside significant UI redesigns for Projects and chat search. Security enhancements include stronger SAML/OIDC flows and auditable content filtering.

Key Highlights

  • Unified Agent Builder with standalone Skill authoring and background tools
  • Durable Agent Events with actor mailboxes, receipts, and human pauses
  • New AI models: GPT-5.6, Claude Fable 5.1/5, and Gemini 3.x Flash variants
  • Redesigned Projects with full-message chat search and mobile navigation
  • Experimental Agent Plugins and guarded Code environments

New Features

  • HITL Tool Approval Scaffolding and Runtime
  • Agent Memory as a capability with inline tools
  • Langfuse fanout gateway and collector
  • Claude Sonnet 5 and Opus 5 Support
  • GPT-5.6 reasoning.mode support
  • Background Tool Calls for Agents
  • Mid-Run Steering and Queued Messages
  • Stateful Code Sessions with warm sandboxes
  • Fullscreen artifacts with Mermaid and PowerPoint export
  • Keenable keyless web search and expanded SearXNG controls
  • Nonce-based Content Security Policy (CSP)
  • Auditable source-aware content filtering

Full Release Notes

https://www.librechat.ai/changelog/v0.8.8-rc2

## ๐Ÿž๏ธ Highlights

- Interrupt Agent runs before visible output, steer or queue follow-ups, and recover tool-limited turns
- Optional generated activity groups, live phase cards, and reasoning labels
- Unified Agent Builder with standalone Skill authoring, background tools, intent labels, and Programmatic Tool Calling
- Durable Agent Events, actor mailboxes, receipts, human pauses, and background completion wakeups
- Saved Agent teams, deeper Subagent history, stable event panels, live controls, and automatic parent continuation
- Experimental Agent Plugins and highly experimental Code environments with guarded file and command permissions
- Agent memory isolation and categorized Context Usage with optional cost
- Redesigned Projects, full-message chat search, searchable settings, shortcuts, pinning, and mobile navigation
- Experimental Scheduled Chats with cron, time zones, weekly cadence, and project destinations
- Stable shared links, personal copies, editable long pastes, and attachment-only turns
- Fullscreen artifacts, Mermaid export, PowerPoint templates, and original file downloads
- Keenable keyless web search plus expanded SearXNG and Tavily controls
- Default security headers, opt-in nonce CSP, authenticated local images, Code Interpreter JWTs, and stronger SAML/OIDC flows
- In-app Langfuse connections, tenant fanout, export telemetry, and authorized session links
- Auditable source-aware content filtering, tenant Insights, and encrypted admin configuration
- GPT-5.6, Claude Fable 5.1, Opus 5 and Sonnet 5, Gemini 3.8/3.7/3.6 Flash, and Gemini 3.5 Flash-Lite
- Adaptive streaming, automatic generation protocol v2, Redis failover recovery, and live MCP catalog refresh

<details>
<summary><h2>Click to expand Release Notes</h2></summary>

### โœจ Features

- ๐Ÿ•’ feat: Track terms acceptance timestamp by [@berry-13](/berry-13) in [#10810](/danny-avila/LibreChat/pull/10810)
- ๐Ÿ”„ feat: Continue Shared Conversations as Personal Copies by [@berry-13](/berry-13) in [#13714](/danny-avila/LibreChat/pull/13714)
- ๐Ÿช feat: HITL Tool Approval Scaffolding (Slice A) by [@danny-avila](/danny-avila) in [#12938](/danny-avila/LibreChat/pull/12938)
- ๐Ÿง  feat: Add Memory as an Agent Capability with Inline Tools and Ephemeral Badge by [@danny-avila](/danny-avila) in [#13869](/danny-avila/LibreChat/pull/13869)
- ๐Ÿ“‡ feat: Agent Contact Visibility with Owner Fallback by [@peeeteeer](/peeeteeer) in [#13663](/danny-avila/LibreChat/pull/13663)
- ๐ŸชŸ feat: Faithful Over-Window Context Estimate via Prune Mirror and Overhead Reserve by [@danny-avila](/danny-avila) in [#13959](/danny-avila/LibreChat/pull/13959)
- ๐Ÿชญ feat: Add opt-in Langfuse fanout gateway + collector by [@upman](/upman) in [#13872](/danny-avila/LibreChat/pull/13872)
- ๐Ÿช feat: Human-in-the-Loop Runtime - Tool Approval + Ask-User-Question (Slice B) by [@danny-avila](/danny-avila) in [#13942](/danny-avila/LibreChat/pull/13942)
- ๐Ÿช— feat: Dock-Style Fisheye Nav Rail With Instant Hover Preview by [@danny-avila](/danny-avila) in [#14021](/danny-avila/LibreChat/pull/14021)
- ๐Ÿค– feat: Add Claude Sonnet 5 Support by [@danny-avila](/danny-avila) in [#14042](/danny-avila/LibreChat/pull/14042)
- ๐Ÿฅท feat: Add `showInMenu` Option to Model Specs by [@alexkorep](/alexkorep) in [#14034](/danny-avila/LibreChat/pull/14034)
- ๐Ÿซท feat: Exclude File Authoring Tools From Eager Execution by [@danny-avila](/danny-avila) in [#14051](/danny-avila/LibreChat/pull/14051)
- ๐Ÿช feat: Configurable Tool-Approval Policy via Programmatic Hooks by [@danny-avila](/danny-avila) in [#14025](/danny-avila/LibreChat/pull/14025)
- ๐Ÿงน feat: Eager HITL Checkpoint Cleanup (Expiry + Deletion) & Full-Wiring E2E by [@danny-avila](/danny-avila) in [#14123](/danny-avila/LibreChat/pull/14123)
- ๐Ÿงฐ feat: Redesign Agent Builder with Unified Tools Marketplace, Skills & Orchestration by [@berry-13](/berry-13) in [#13952](/danny-avila/LibreChat/pull/13952)
- ๐Ÿ“ก feat: add rum browser page-load diagnostics by [@upman](/upman) in [#14106](/danny-avila/LibreChat/pull/14106)
- ๐ŸŽš๏ธ feat: Explicit "Use All Skills" Toggle in the Skills Section by [@berry-13](/berry-13) in [#14125](/danny-avila/LibreChat/pull/14125)
- ๐Ÿ™‹ feat: ask_user_question - agent-initiated questions with durable pause/resume by [@danny-avila](/danny-avila) in [#14139](/danny-avila/LibreChat/pull/14139)
- ๐Ÿ—‚๏ธ feat: Per-Agent Memory Partitions by [@danny-avila](/danny-avila) in [#14084](/danny-avila/LibreChat/pull/14084)
- ๐Ÿค– feat: Add GPT-5.6 (Sol/Terra/Luna) OpenAI Models by [@danny-avila](/danny-avila) in [#14206](/danny-avila/LibreChat/pull/14206)
- ๐Ÿชญ feat: support per-run central export suppression by [@upman](/upman) in [#14207](/danny-avila/LibreChat/pull/14207)
- โœจ feat: stateful_code_sessions capability for warm Code API sandbox sessions (experimental) by [@danny-avila](/danny-avila) in [#14150](/danny-avila/LibreChat/pull/14150)
- ๐Ÿง  feat: Add GPT-5.6 reasoning.mode + reasoning.context (Responses API) by [@danny-avila](/danny-avila) in [#14233](/danny-avila/LibreChat/pull/14233)
- ๐Ÿงต feat: Background Tool Calls for Agents & Model Specs by [@danny-avila](/danny-avila) in [#14197](/danny-avila/LibreChat/pull/14197)
- ๐Ÿ—๏ธ feat: Encrypted Langfuse Fanout Config by [@dustinhealy](/dustinhealy) in [#14107](/danny-avila/LibreChat/pull/14107)
- ๐Ÿงญ feat: Mid-Run Steering and Queued Messages for Agent Runs by [@danny-avila](/danny-avila) in [#14220](/danny-avila/LibreChat/pull/14220)
- โ™จ๏ธ feat: Prewarm Stateful Code Sandboxes with Cold-Boot UX Feedback by [@danny-avila](/danny-avila) in [#14239](/danny-avila/LibreChat/pull/14239)
- ๐Ÿ“› feat: Add Client Name Header to Tavily Search Requests by [@manisrinivasan2k1](/manisrinivasan2k1) in [#14082](/danny-avila/LibreChat/pull/14082)
- ๐Ÿ’ฌ feat: Explain Steering & Queuing at Every User-Facing Surface by [@danny-avila](/danny-avila) in [#14260](/danny-avila/LibreChat/pull/14260)
- ๐Ÿ–ผ๏ธ feat: Return Sandbox Images From `read_file` as Viewable Artifacts by [@danny-avila](/danny-avila) in [#14277](/danny-avila/LibreChat/pull/14277)
- feat: add low-noise Redis observability by [@upman](/upman) in [#14309](/danny-avila/LibreChat/pull/14309)
- โœ‹ feat: Add Reclaim-Gated Controls to In-Flight Steers by [@danny-avila](/danny-avila) in [#14321](/danny-avila/LibreChat/pull/14321)
- ๐Ÿซง feat: Float In-Flight Steers Over the Thread with Collapsible Content by [@danny-avila](/danny-avila) in [#14365](/danny-avila/LibreChat/pull/14365)
- โšก feat: Add Gemini 3.6 Flash and Gemini 3.5 Flash-Lite Support by [@danny-avila](/danny-avila) in [#14369](/danny-avila/LibreChat/pull/14369)
- ๐Ÿงต feat: Native Background Execution for Code Interpreter Tools by [@danny-avila](/danny-avila) in [#14386](/danny-avila/LibreChat/pull/14386)
- โœณ๏ธ feat: Claude Opus 5 Support by [@danny-avila](/danny-avila) in [#14422](/danny-avila/LibreChat/pull/14422)
- โฑ๏ธ feat: Configurable HTTP Server Timeouts by [@danny-avila](/danny-avila) in [#14481](/danny-avila/LibreChat/pull/14481)
- ๐Ÿ•ถ feat: Generalize Admin Config Secret Redaction by [@dustinhealy](/dustinhealy) in [#14509](/danny-avila/LibreChat/pull/14509)
- ๐Ÿท๏ธ feat: Activity Groups With Fast-Model Headers by [@danny-avila](/danny-avila) in [#14391](/danny-avila/LibreChat/pull/14391)
- ๐Ÿ—๏ธ feat: Custom Endpoint API Key Encryption via Array Secret Registry by [@danny-avila](/danny-avila) in [#14510](/danny-avila/LibreChat/pull/14510)
- ๐ŸŽฏ feat: Tool Intent Label Capability (tool_intents) by [@danny-avila](/danny-avila) in [#14499](/danny-avila/LibreChat/pull/14499)
- ๐Ÿชข feat: Langfuse Fanout Connection Setting by [@danny-avila](/danny-avila) in [#14108](/danny-avila/LibreChat/pull/14108)
- ๐Ÿ›‘ feat: Preemptive Steer - Backend Interrupt & Steer by [@danny-avila](/danny-avila) in [#14518](/danny-avila/LibreChat/pull/14518)
- ๐ŸŽฏ feat: Per-Tool Intent Labels for Model Specs by [@danny-avila](/danny-avila) in [#14526](/danny-avila/LibreChat/pull/14526)
- โšก feat: Interrupt & Steer, Client by [@danny-avila](/danny-avila) in [#14528](/danny-avila/LibreChat/pull/14528)
- ๐Ÿงต feat: Background-Native Code Execution Tools by [@danny-avila](/danny-avila) in [#14532](/danny-avila/LibreChat/pull/14532)
- ๐ŸŽฏ feat: Render Tool Intent as the Live Tool-Call Label by [@danny-avila](/danny-avila) in [#14536](/danny-avila/LibreChat/pull/14536)
- ๐ŸŽฏ feat: Per-Tool Intent Label Toggles in the Agent Builder by [@danny-avila](/danny-avila) in [#14550](/danny-avila/LibreChat/pull/14550)
- โšก feat: Reliable Interrupt & Steer Escalation and Recovery by [@danny-avila](/danny-avila) in [#14558](/danny-avila/LibreChat/pull/14558)
- ๐Ÿ’ฌ feat: Interim Progress Card for Streaming Q&A Calls by [@danny-avila](/danny-avila) in [#14576](/danny-avila/LibreChat/pull/14576)
- ๐Ÿšฆ feat: Configurable Circuit Breakers for Runaway Streamed Tool Args by [@danny-avila](/danny-avila) in [#14613](/danny-avila/LibreChat/pull/14613)
- โšก feat: Coalesce Redis Streaming Delta Publications into Windowed Batches by [@danny-avila](/danny-avila) in [#14614](/danny-avila/LibreChat/pull/14614)
- ๐Ÿ”’ feat: Add allowedAddresses Exemption to Speech (STT/TTS) and OCR Config Schemas by [@dustinhealy](/dustinhealy) in [#14559](/danny-avila/LibreChat/pull/14559)
- ๐ŸŒŠ feat: Wire Adaptive Stream Smoothing Across Google, Bedrock, and Zero-Disable Semantics by [@danny-avila](/danny-avila) in [#14660](/danny-avila/LibreChat/pull/14660)
- ๐Ÿ”— feat: Admin Panel Link in Settings for Admins by [@dustinhealy](/dustinhealy) in [#14662](/danny-avila/LibreChat/pull/14662)
- ๐Ÿ‘‹ feat: Day-Aware Landing Greeting Schedule by [@berry-13](/berry-13) in [#14633](/danny-avila/LibreChat/pull/14633)
- ๐Ÿ”‘ feat: Refresh-Capable Google Admin OAuth Sessions by [@dustinhealy](/dustinhealy) in [#13832](/danny-avila/LibreChat/pull/13832)
- ๐Ÿ›ก๏ธ feat: Add Batched MCP Authority Proofs by [@danny-avila](/danny-avila) in [#14688](/danny-avila/LibreChat/pull/14688)
- ๐Ÿช feat: Add Claude Hook Compatibility Layer by [@danny-avila](/danny-avila) in [#14412](/danny-avila/LibreChat/pull/14412)
- โ›ถ feat: add fullscreen artifact previews by [@berry-13](/berry-13) in [#14585](/danny-avila/LibreChat/pull/14585)
- ๐Ÿ”Œ feat: Add Agent Plugins (Experimental) by [@danny-avila](/danny-avila) in [#14704](/danny-avila/LibreChat/pull/14704)
- ๐Ÿ”— feat: Shared Conversation Badge and Stable Share Links by [@berry-13](/berry-13) in [#14712](/danny-avila/LibreChat/pull/14712)
- ๐Ÿงœ feat: Open Mermaid Diagrams as Artifacts with SVG/PNG Export by [@berry-13](/berry-13) in [#14713](/danny-avila/LibreChat/pull/14713)
- ๐Ÿชถ feat: Resolve Explicit Subagents Lazily by [@danny-avila](/danny-avila) in [#14714](/danny-avila/LibreChat/pull/14714)
- ๐Ÿ“ก feat: Route Web Search and Scrape Egress through the SSRF-safe Agent by [@dustinhealy](/dustinhealy) in [#14606](/danny-avila/LibreChat/pull/14606)
- ๐ŸŽจ feat: Add Versioned Theme Foundation by [@danny-avila](/danny-avila) in [#14709](/danny-avila/LibreChat/pull/14709)
- ๐Ÿช† feat: Add Parent Activity Phase Summaries by [@danny-avila](/danny-avila) in [#14721](/danny-avila/LibreChat/pull/14721)
- ๐ŸŽจ feat: Refine Client Colors and Sharing Dialogs by [@berry-13](/berry-13) in [#14734](/danny-avila/LibreChat/pull/14734)
- ๐ŸŽ›๏ธ feat: Adopt Composer Density Tokens by [@danny-avila](/danny-avila) in [#14730](/danny-avila/LibreChat/pull/14730)
- ๐Ÿก feat: Batched User Questions With A Single Bounded Answer Form by [@danny-avila](/danny-avila) in [#14737](/danny-avila/LibreChat/pull/14737)
- ๐Ÿช feat: Execute Agent Plugin Command Hooks by [@danny-avila](/danny-avila) in [#14755](/danny-avila/LibreChat/pull/14755)
- ๐Ÿšฃโ€โ™€๏ธ feat: Smooth Streaming Text Fade-In by [@danny-avila](/danny-avila) in [#14757](/danny-avila/LibreChat/pull/14757)
- ๐Ÿชข feat: add Langfuse session links by [@upman](/upman) in [#14776](/danny-avila/LibreChat/pull/14776)
- ๐Ÿ”– feat: Bound Parent Activity Phases With an Exclusive End Index by [@danny-avila](/danny-avila) in [#14768](/danny-avila/LibreChat/pull/14768)
- ๐Ÿ’ฌ style: Unify Message Row Layout and Edit Surfaces by [@berry-13](/berry-13) in [#14770](/danny-avila/LibreChat/pull/14770)
- ๐Ÿ“„ feat: accept PowerPoint template MIME type by [@snapydziuba](/snapydziuba) in [#14761](/danny-avila/LibreChat/pull/14761)
- โšก feat: Add Gemini 3.7 Flash Support by [@danny-avila](/danny-avila) in [#14818](/danny-avila/LibreChat/pull/14818)
- ๐Ÿช„ feat: Smooth Activity Phase Transitions by [@danny-avila](/danny-avila) in [#14832](/danny-avila/LibreChat/pull/14832)
- ๐Ÿ“ฑ style: Reclaim the Assistant Avatar Gutter on Mobile by [@danny-avila](/danny-avila) in [#14836](/danny-avila/LibreChat/pull/14836)
- ๐Ÿ“ฑ style: Consolidate the Mobile Chat Header by [@danny-avila](/danny-avila) in [#14843](/danny-avila/LibreChat/pull/14843)
- โžก๏ธ style: Flush the In-Flight Steer Stack to the Composer Edge by [@danny-avila](/danny-avila) in [#14854](/danny-avila/LibreChat/pull/14854)
- ๐ŸŽจ feat: Color the Context Gauge by Category and Collapse its Breakdown by [@danny-avila](/danny-avila) in [#14855](/danny-avila/LibreChat/pull/14855)
- ๐Ÿ“ feat: Match the Message Column to the Composer by [@berry-13](/berry-13) in [#14851](/danny-avila/LibreChat/pull/14851)
- ๐Ÿš feat: Central Trace Destination Opt-Out for Langfuse by [@danny-avila](/danny-avila) in [#14838](/danny-avila/LibreChat/pull/14838)
- ๐Ÿค feat: Allow Promptless Sends When Files Are Attached by [@i-anubhav-anand](/i-anubhav-anand) in [#13717](/danny-avila/LibreChat/pull/13717)
- ๐Ÿ“ฅ feat: Download Code Blocks as Files by [@i-anubhav-anand](/i-anubhav-anand) in [#13715](/danny-avila/LibreChat/pull/13715)
- ๐Ÿ“ฑ feat: Give the Mobile Nav the Whole Screen by [@danny-avila](/danny-avila) in [#14849](/danny-avila/LibreChat/pull/14849)
- ๐Ÿ’„ style: Align the Overflow Menu's Icons and Ease the Assistant Header by [@danny-avila](/danny-avila) in [#14888](/danny-avila/LibreChat/pull/14888)
- ๐Ÿ—‚๏ธ feat: Display Chat Title in Tab Setting by [@berry-13](/berry-13) in [#14881](/danny-avila/LibreChat/pull/14881)
- ๐Ÿ›ค๏ธ feat: Per-Agent Code Execution Routing With Stateful Session Scopes by [@danny-avila](/danny-avila) in [#14848](/danny-avila/LibreChat/pull/14848)
- ๐Ÿ—‚๏ธ feat: Rework the Projects Dashboard, Sidebar and Scoped Composer by [@berry-13](/berry-13) in [#14866](/danny-avila/LibreChat/pull/14866)
- ๐ŸŽ›๏ธ feat: Consistent Dialogs, Clearer Settings, and a Keyboard Shortcuts Switch by [@berry-13](/berry-13) in [#14882](/danny-avila/LibreChat/pull/14882)
- โฑ๏ธ feat: Show Run-Step Durations On Tool Cards by [@danny-avila](/danny-avila) in [#14892](/danny-avila/LibreChat/pull/14892)
- ๐Ÿ—„๏ธ feat: Record When a Conversation Was Archived by [@berry-13](/berry-13) in [#14863](/danny-avila/LibreChat/pull/14863)
- ๐Ÿ’„ style: Align the Thinking Dot with the Header Icon by [@danny-avila](/danny-avila) in [#14895](/danny-avila/LibreChat/pull/14895)
- ๐Ÿ—œ๏ธ feat: Let Users Toggle Client-Side Image Resizing by [@berry-13](/berry-13) in [#14883](/danny-avila/LibreChat/pull/14883)
- ๐Ÿง  feat: Add Live Reasoning Labels by [@danny-avila](/danny-avila) in [#14893](/danny-avila/LibreChat/pull/14893)
- ๐Ÿ“ฑ feat: Swipe the Mobile Drawer Open and Closed by [@danny-avila](/danny-avila) in [#14902](/danny-avila/LibreChat/pull/14902)
- ๐Ÿ“œ feat: Follow Streaming Args in Tool Detail Panes by [@danny-avila](/danny-avila) in [#14906](/danny-avila/LibreChat/pull/14906)
- ๐Ÿ“‹ feat: Attach Long Pasted Text as a File by [@berry-13](/berry-13) in [#14884](/danny-avila/LibreChat/pull/14884)
- ๐Ÿ—„๏ธ feat: Archive All Chats From Data Controls by [@berry-13](/berry-13) in [#14885](/danny-avila/LibreChat/pull/14885)
- ๐Ÿ›ก๏ธ feat: Let Admins Restrict Stateful Workspace Scopes by [@danny-avila](/danny-avila) in [#14910](/danny-avila/LibreChat/pull/14910)
- ๐ŸŽฌ style: Reveal the Chat on Programmatic Drawer Closes by [@danny-avila](/danny-avila) in [#14930](/danny-avila/LibreChat/pull/14930)
- ๐Ÿ›ฐ๏ธ feat: Execute Generic Agent Trigger Deliveries by [@danny-avila](/danny-avila) in [#14921](/danny-avila/LibreChat/pull/14921)
- ๐Ÿ“ก feat: Add Generic Agent Trigger Dispatch Seam by [@danny-avila](/danny-avila) in [#14916](/danny-avila/LibreChat/pull/14916)
- ๐Ÿ“ฌ feat: Add Durable Agent Trigger Delivery by [@danny-avila](/danny-avila) in [#14925](/danny-avila/LibreChat/pull/14925)
- ๐Ÿชœ style: Step Through Batched Questions One at a Time by [@danny-avila](/danny-avila) in [#14935](/danny-avila/LibreChat/pull/14935)
- ๐Ÿ•ธ๏ธ feat: Run Saved Agent Teams as Subagents by [@danny-avila](/danny-avila) in [#14944](/danny-avila/LibreChat/pull/14944)
- ๐Ÿชข feat: Custom Request Headers For Langfuse by [@danny-avila](/danny-avila) in [#14945](/danny-avila/LibreChat/pull/14945)
- ๐Ÿงต feat: Persist View-Only Subagent Threads by [@danny-avila](/danny-avila) in [#14957](/danny-avila/LibreChat/pull/14957)
- ๐Ÿ’ก feat: add DB-backed admin insights by [@upman](/upman) in [#14898](/danny-avila/LibreChat/pull/14898)
- ๐Ÿ“ feat: Surface Stateful Workspace Downloads by [@danny-avila](/danny-avila) in [#14984](/danny-avila/LibreChat/pull/14984)
- ๐Ÿ›ฐ๏ธ feat: Route Live Subagent Controls Across Replicas by [@danny-avila](/danny-avila) in [#14971](/danny-avila/LibreChat/pull/14971)
- ๐Ÿชƒ feat: Wake Parent Agents on Child Completion by [@danny-avila](/danny-avila) in [#14975](/danny-avila/LibreChat/pull/14975)
- ๐ŸŽ›๏ธ feat: Make Max Subagents Configurable via librechat.yaml by [@berry-13](/berry-13) in [#15023](/danny-avila/LibreChat/pull/15023)
- ๐Ÿ”— feat: Open Footer Site Links in a New Tab by [@berry-13](/berry-13) in [#15019](/danny-avila/LibreChat/pull/15019)
- โฑ๏ธ feat: Run Scheduled Chats Through Durable Agent Triggers by [@danny-avila](/danny-avila) in [#14939](/danny-avila/LibreChat/pull/14939)
- ๐Ÿ•Š๏ธ feat: Yield to Subagent Completion Wakeups by [@danny-avila](/danny-avila) in [#15066](/danny-avila/LibreChat/pull/15066)
- ๐Ÿงพ feat: Sibling Task Manifest for Resumed Parent Runs by [@danny-avila](/danny-avila) in [#15063](/danny-avila/LibreChat/pull/15063)
- ๐Ÿ“œ feat: Add Optional Collapse for Long User Messages by [@berry-13](/berry-13) in [#15034](/danny-avila/LibreChat/pull/15034)
- ๐Ÿ—‚๏ธ feat: Scope Scheduled Chats to Chat Projects by [@danny-avila](/danny-avila) in [#15056](/danny-avila/LibreChat/pull/15056)
- ๐ŸชŸ feat: Read Child Threads Through Their Parent by [@danny-avila](/danny-avila) in [#15073](/danny-avila/LibreChat/pull/15073)
- ๐Ÿ›ฐ๏ธ feat: Show Child Agent Activity in a Side Panel by [@danny-avila](/danny-avila) in [#15075](/danny-avila/LibreChat/pull/15075)
- ๐Ÿ™ˆ feat: Config Option to Hide Response Feedback Buttons by [@berry-13](/berry-13) in [#15085](/danny-avila/LibreChat/pull/15085)
- โœจ feat: Context Gauge Hover Reveal and Breakdown Motion Polish by [@berry-13](/berry-13) in [#15038](/danny-avila/LibreChat/pull/15038)
- ๐Ÿซฅ feat: Add Temporary Chat Empty State and Active Indicator by [@berry-13](/berry-13) in [#15086](/danny-avila/LibreChat/pull/15086)
- ๐ŸŽ›๏ธ feat: Configurable SearXNG Search Options by [@berry-13](/berry-13) in [#14987](/danny-avila/LibreChat/pull/14987)
- ๐Ÿ™‹ feat: Collapse Settled Question Records by Default by [@danny-avila](/danny-avila) in [#15107](/danny-avila/LibreChat/pull/15107)
- ๐ŸชŸ feat: Unify Subagent Activity Panel by [@danny-avila](/danny-avila) in [#15106](/danny-avila/LibreChat/pull/15106)
- ๐Ÿ›‚ feat: Filter Model-Bound Content by Source by [@danny-avila](/danny-avila) in [#14425](/danny-avila/LibreChat/pull/14425)
- ๐Ÿ“จ feat: Add Authenticated Agent Event Ingress by [@danny-avila](/danny-avila) in [#15110](/danny-avila/LibreChat/pull/15110)
- ๐Ÿ“ก feat: Stream Detached Subagent Activity by [@danny-avila](/danny-avila) in [#15111](/danny-avila/LibreChat/pull/15111)
- ๐Ÿ“จ feat: Continue Bound Child Agents from Events by [@danny-avila](/danny-avila) in [#15112](/danny-avila/LibreChat/pull/15112)
- ๐Ÿ–ฅ๏ธ feat: Stream PTC Inner Tool Calls as a CLI-Style Trace by [@danny-avila](/danny-avila) in [#15115](/danny-avila/LibreChat/pull/15115)
- ๐ŸŽš๏ธ feat: Configure Agent Event Runtime in YAML by [@danny-avila](/danny-avila) in [#15128](/danny-avila/LibreChat/pull/15128)
- ๐Ÿชด feat: Fork Completed Subagents Into Continuable Chats by [@danny-avila](/danny-avila) in [#15133](/danny-avila/LibreChat/pull/15133)
- ๐Ÿ“ฑ feat: Offer a Dismissable Strip of Chat Beside the Mobile Drawer by [@berry-13](/berry-13) in [#14990](/danny-avila/LibreChat/pull/14990)
- โฐ feat: Custom Cron Cadence for Scheduled Chats by [@berry-13](/berry-13) in [#15084](/danny-avila/LibreChat/pull/15084)
- ๐Ÿงญ feat: Choose a Schedule's Time Zone by [@berry-13](/berry-13) in [#15119](/danny-avila/LibreChat/pull/15119)
- ๐Ÿ“† feat: Weekly Schedules on Several Days by [@berry-13](/berry-13) in [#15120](/danny-avila/LibreChat/pull/15120)
- ๐Ÿ•ฐ๏ธ feat: Clock Format and Week Start Preferences by [@berry-13](/berry-13) in [#15121](/danny-avila/LibreChat/pull/15121)
- โฑ๏ธ feat: Shared Time Picker for Schedule Times by [@berry-13](/berry-13) in [#15122](/danny-avila/LibreChat/pull/15122)
- ๐Ÿ“‡ feat: Surface Event Child Activity Through a Bounded Parent Index by [@danny-avila](/danny-avila) in [#15142](/danny-avila/LibreChat/pull/15142)
- ๐Ÿชน feat: Shared Empty State for Side Panels by [@berry-13](/berry-13) in [#15123](/danny-avila/LibreChat/pull/15123)
- โฑ๏ธ feat: Show Elapsed Time Under the Streaming Response by [@danny-avila](/danny-avila) in [#15167](/danny-avila/LibreChat/pull/15167)
- ๐Ÿงพ feat: Persist Authoritative Subagent Control Receipts by [@danny-avila](/danny-avila) in [#15168](/danny-avila/LibreChat/pull/15168)
- ๐Ÿชถ feat: Support Non-Persistent Controlled Themes by [@danny-avila](/danny-avila) in [#15170](/danny-avila/LibreChat/pull/15170)
- ๐ŸŽ›๏ธ feat: Expose Authoritative Subagent Controls by [@danny-avila](/danny-avila) in [#15169](/danny-avila/LibreChat/pull/15169)
- ๐Ÿ”Œ feat: Background Execution Toggles for Actions & Plugin Tools by [@danny-avila](/danny-avila) in [#14407](/danny-avila/LibreChat/pull/14407)
- ๐Ÿฆบ feat: Configurable Baseline HTTP Security Headers by [@danny-avila](/danny-avila) in [#14445](/danny-avila/LibreChat/pull/14445)
- ๐Ÿš feat: Nonce-Based Content Security Policy for the SPA Shell by [@danny-avila](/danny-avila) in [#14446](/danny-avila/LibreChat/pull/14446)
- ๐Ÿชข feat: Coalesce Bound Agent Event Bursts by [@danny-avila](/danny-avila) in [#15208](/danny-avila/LibreChat/pull/15208)
- ๐Ÿงพ feat: Track Authoritative Agent Event Outcomes by [@danny-avila](/danny-avila) in [#15213](/danny-avila/LibreChat/pull/15213)
- โœ๏ธ feat: Edit Pasted Text and Clear It on New Chat by [@berry-13](/berry-13) in [#15017](/danny-avila/LibreChat/pull/15017)
- ๐Ÿฉป feat(langfuse): add tenant export telemetry by [@upman](/upman) in [#15247](/danny-avila/LibreChat/pull/15247)
- ๐Ÿชข feat: Resume Bound Event Actors from Checkpoint Forks by [@danny-avila](/danny-avila) in [#15227](/danny-avila/LibreChat/pull/15227)
- ๐Ÿ“ฌ feat: Serialize Bound Actor Event Mailboxes by [@danny-avila](/danny-avila) in [#15260](/danny-avila/LibreChat/pull/15260)
- ๐Ÿงพ feat: Store Durable Event Actor Receipts by [@danny-avila](/danny-avila) in [#15265](/danny-avila/LibreChat/pull/15265)
- ๐Ÿงต feat: Unify Subagent Child Threads by [@danny-avila](/danny-avila) in [#15261](/danny-avila/LibreChat/pull/15261)
- ๐Ÿง… feat: Reveal Subagent Thread History and Event Detail on Demand by [@danny-avila](/danny-avila) in [#15283](/danny-avila/LibreChat/pull/15283)
- ๐Ÿ•ธ๏ธ feat: Complete Keenable Web Search Provider by [@danny-avila](/danny-avila) in [#15288](/danny-avila/LibreChat/pull/15288)
- ๐Ÿชข feat: show Langfuse session link in shared chats by [@upman](/upman) in [#15273](/danny-avila/LibreChat/pull/15273)
- ๐ŸŽผ feat: Unify Agent Turn Execution Behind One Immutable Plan by [@danny-avila](/danny-avila) in [#15296](/danny-avila/LibreChat/pull/15296)
- ๐Ÿซ† feat: Fingerprint Agent Context for Zero-Read Warm Continuation by [@danny-avila](/danny-avila) in [#15299](/danny-avila/LibreChat/pull/15299)
- ๐Ÿค– feat: make Event Actor HITL durable by [@danny-avila](/danny-avila) in [#15305](/danny-avila/LibreChat/pull/15305)
- ๐Ÿช‚ feat: Make Event Actor Detached Actions Durable by [@danny-avila](/danny-avila) in [#15307](/danny-avila/LibreChat/pull/15307)
- ๐Ÿฑ feat: Guide Compaction With a Bounded Semantic Index by [@danny-avila](/danny-avila) in [#15340](/danny-avila/LibreChat/pull/15340)
- ๐Ÿ“ฌ feat: Establish Background Continuation Admission by [@danny-avila](/danny-avila) in [#15348](/danny-avila/LibreChat/pull/15348)
- ๐Ÿ›‘ feat: Cancel MCP Discovery Work at the Caller Deadline by [@danny-avila](/danny-avila) in [#15353](/danny-avila/LibreChat/pull/15353)
- ๐Ÿ›„ feat: Restore Compaction Guidance Across Continuations by [@danny-avila](/danny-avila) in [#15356](/danny-avila/LibreChat/pull/15356)
- ๐Ÿ›Ž๏ธ feat: Wake Agents on Background Tool Completion by [@danny-avila](/danny-avila) in [#15350](/danny-avila/LibreChat/pull/15350)
- ๐Ÿต feat: Continue Late Steers in Warm Agent Runs by [@danny-avila](/danny-avila) in [#15357](/danny-avila/LibreChat/pull/15357)
- ๐Ÿงฉ feat: Collapsible Wake-Up Task Cards and Subagent UI Consistency by [@danny-avila](/danny-avila) in [#15364](/danny-avila/LibreChat/pull/15364)
- ๐Ÿ—ฟ feat: Add Attached Stateful Code Environments by [@danny-avila](/danny-avila) in [#15352](/danny-avila/LibreChat/pull/15352)
- ๐Ÿงฒ feat: Enable Secure Attached Environment Pairing by [@danny-avila](/danny-avila) in [#15355](/danny-avila/LibreChat/pull/15355)
- โœ… feat: Delivery Receipt Checkmarks for Steered Messages by [@danny-avila](/danny-avila) in [#15376](/danny-avila/LibreChat/pull/15376)
- ๐Ÿงณ feat: Register Principal-Owned Code Environments by [@danny-avila](/danny-avila) in [#15365](/danny-avila/LibreChat/pull/15365)
- ๐Ÿง  feat: Retain Subagent Reasoning Like Main Chat and Drop the Running Status Chip by [@danny-avila](/danny-avila) in [#15379](/danny-avila/LibreChat/pull/15379)
- ๐Ÿ“ฌ feat: Move Agent Queued Turns Server-Side by [@danny-avila](/danny-avila) in [#15370](/danny-avila/LibreChat/pull/15370)
- ๐Ÿช— feat: Fold a Live Run's Tool-Call Groups Into the Phase Card by [@danny-avila](/danny-avila) in [#15434](/danny-avila/LibreChat/pull/15434)
- ๐Ÿชถ feat: Enable Standalone Skill Authoring by [@danny-avila](/danny-avila) in [#15480](/danny-avila/LibreChat/pull/15480)
- ๐Ÿ›ซ feat: Enable Self-Service Code Worker Pairing by [@danny-avila](/danny-avila) in [#15367](/danny-avila/LibreChat/pull/15367)
- ๐Ÿ›ž feat: Manage Personal Code Environment Lifecycles by [@danny-avila](/danny-avila) in [#15369](/danny-avila/LibreChat/pull/15369)
- ๐Ÿงบ feat: Preserve Partial Work at Tool Call Limits by [@berry-13](/berry-13) in [#15486](/danny-avila/LibreChat/pull/15486)
- ๐Ÿงค feat: Enforce Safe BYOM Tool Approvals by [@danny-avila](/danny-avila) in [#15503](/danny-avila/LibreChat/pull/15503)
- ๐Ÿ”ญ feat: Audit PII Filter Findings by [@danny-avila](/danny-avila) in [#15508](/danny-avila/LibreChat/pull/15508)
- ๐Ÿ•น๏ธ feat: Configure BYOM Tool Permissions by [@danny-avila](/danny-avila) in [#15504](/danny-avila/LibreChat/pull/15504)
- ๐Ÿ“– feat: Add Claude Fable 5.1 Support by [@danny-avila](/danny-avila) in [#15512](/danny-avila/LibreChat/pull/15512)
- ๐Ÿชช feat: Propagate Tenant to Agent Model Headers by [@dustinhealy](/dustinhealy) in [#15521](/danny-avila/LibreChat/pull/15521)
- โญ๏ธ feat: Honor an Interrupt Before the Model Has Answered by [@danny-avila](/danny-avila) in [#15491](/danny-avila/LibreChat/pull/15491)
- โšก feat: Add Gemini 3.8 Flash Support by [@danny-avila](/danny-avila) in [#15519](/danny-avila/LibreChat/pull/15519)
- ๐ŸงŠ feat: Persist Context Fading Tier Across Agent Runs by [@danny-avila](/danny-avila) in [#15505](/danny-avila/LibreChat/pull/15505)

### ๐Ÿ› Fixes

- ๐Ÿ”‘ fix: Honor User-Provided MCP API Key Instead of Forcing OAuth by [@danny-avila](/danny-avila) in [#13954](/danny-avila/LibreChat/pull/13954)
- ๐Ÿช™ fix: Count Quote Tokens on Message Edit by [@danny-avila](/danny-avila) in [#13958](/danny-avila/LibreChat/pull/13958)
- ๐Ÿ“‹ fix: Route Clipboard Paste Through Upload Options by [@dustinhealy](/dustinhealy) in [#13957](/danny-avila/LibreChat/pull/13957)
- ๐Ÿ“‡ fix: Index sharedlinks updatedAt for Cosmos DB Sorts by [@danny-avila](/danny-avila) in [#13979](/danny-avila/LibreChat/pull/13979)
- ๐Ÿ“‚ fix: Mount Skill Files Under skills/ in Code Interpreter by [@danny-avila](/danny-avila) in [#13961](/danny-avila/LibreChat/pull/13961) and [#13975](/danny-avila/LibreChat/pull/13975)
- ๐ŸชŸ fix: Re-measure Sidebar Chat List on Width Change to Fix Date-Group Spacing by [@danny-avila](/danny-avila) in [#13981](/danny-avila/LibreChat/pull/13981)
- ๐Ÿ“ fix: Make create_file Missing-Content Error Truncation-Aware by [@danny-avila](/danny-avila) in [#14043](/danny-avila/LibreChat/pull/14043)
- fix: use `logAxiosError` at the RAG file_search/context call sites by [@mawburn](/mawburn) in [#14014](/danny-avila/LibreChat/pull/14014)
- fix: `stripHeavyErrorFields` Winston format (defense-in-depth) by [@mawburn](/mawburn) in [#14018](/danny-avila/LibreChat/pull/14018)
- ๐Ÿ“ฅ fix: Download Original File From Artifact Preview Panel for Office Documents by [@berry-13](/berry-13) in [#14026](/danny-avila/LibreChat/pull/14026)
- ๐Ÿ”ฅ fix: Firebase CDN Initialization Under tsdown CJS Interop by [@jakacenta](/jakacenta) in [#14046](/danny-avila/LibreChat/pull/14046)
- fix: preserve role SHARE permissions across boot in initializeRoles by [@mawburn](/mawburn) in [#14022](/danny-avila/LibreChat/pull/14022)
- fix: bound peak memory of concurrent base64 attachment encoding by [@mawburn](/mawburn) in [#14023](/danny-avila/LibreChat/pull/14023)
- ๐Ÿ“ง fix: Add .eml (message/rfc822) Support to File Upload by [@Zirkonium88](/Zirkonium88) in [#13989](/danny-avila/LibreChat/pull/13989)
- ๐Ÿšช fix: Support Admin Redirect Detection for Same-Origin Subpaths by [@arjunvijay24](/arjunvijay24) in [#14040](/danny-avila/LibreChat/pull/14040)
- ๐Ÿฉน fix: Coerce Stringified `edit_file` Edits (JSON-in-JSON) by [@danny-avila](/danny-avila) in [#14056](/danny-avila/LibreChat/pull/14056)
- ๐Ÿง  fix: Apply Bedrock thinking config to bare inference-profile model IDs by [@danny-avila](/danny-avila) in [#14054](/danny-avila/LibreChat/pull/14054)
- ๐Ÿง  fix: Default Bedrock thinking `maxTokens` to model max output by [@danny-avila](/danny-avila) in [#14058](/danny-avila/LibreChat/pull/14058)
- fix: stop the artifact-edit retry loop on unrecoverable 400s by [@mawburn](/mawburn) in [#14060](/danny-avila/LibreChat/pull/14060)
- ๐ŸŽฃ fix: Surface Resumable Stream Start Errors by [@danny-avila](/danny-avila) in [#14072](/danny-avila/LibreChat/pull/14072)
- ๐Ÿงฏ fix: Harden Principals Cache Invalidation and Lock-Wait Paths by [@danny-avila](/danny-avila) in [#14120](/danny-avila/LibreChat/pull/14120)
- ๐Ÿ fix: Ignore Finalized SSE Transport Errors by [@danny-avila](/danny-avila) in [#14114](/danny-avila/LibreChat/pull/14114)
- fix: fall back to `_id` for user id in `createSafeUser` by [@mawburn](/mawburn) in [#14083](/danny-avila/LibreChat/pull/14083)
- ๐ŸŒ fix: guard IME composition on Enter in prompt name/labels and dynamic tag inputs by [@mahirhir](/mahirhir) in [#13996](/danny-avila/LibreChat/pull/13996)
- ๐Ÿ—„๏ธ fix: Return Cached Transaction-Support Value on Cache Hit by [@Osamaali313](/Osamaali313) in [#13999](/danny-avila/LibreChat/pull/13999)
- ๐Ÿง  fix: Format Reasoning Exports by [@danny-avila](/danny-avila) in [#14116](/danny-avila/LibreChat/pull/14116)
- ๐Ÿงฎ fix: Prevent String Corruption of Numeric Agent Model Parameters by [@danny-avila](/danny-avila) in [#14119](/danny-avila/LibreChat/pull/14119)
- ๐Ÿงข fix: Raise Claude Sonnet 4.6 Output Cap by [@danny-avila](/danny-avila) in [#14115](/danny-avila/LibreChat/pull/14115)
- ๐Ÿงต fix: Preserve Fenced Markdown Artifacts by [@danny-avila](/danny-avila) in [#14121](/danny-avila/LibreChat/pull/14121)
- ๐Ÿ”’ fix: Prevent Role Grants on Shared Links by [@danny-avila](/danny-avila) in [#14137](/danny-avila/LibreChat/pull/14137)
- ๐Ÿค fix: Exclude Provider Secrets from HITL Pending Actions by [@danny-avila](/danny-avila) in [#14136](/danny-avila/LibreChat/pull/14136)
- โณ fix: Defer MCP Connection for Request-Scoped Placeholders on Reinitialize by [@danny-avila](/danny-avila) in [#14148](/danny-avila/LibreChat/pull/14148)
- ๐Ÿงท fix: Align Agent File Attachment Ownership by [@danny-avila](/danny-avila) in [#14149](/danny-avila/LibreChat/pull/14149)
- ๐ŸงŠ fix: Include Conversation Starters in Agent View and List Responses by [@serhiizghama](/serhiizghama) in [#14142](/danny-avila/LibreChat/pull/14142)
- โ™Š fix: Resolve Local JSON Pointer Refs & Sanitize Tool Search Schema for Gemini by [@usnavy13](/usnavy13) in [#14161](/danny-avila/LibreChat/pull/14161)
- ๐Ÿ›ก๏ธ fix: Guard HITL checkpoint size against MongoDB 16MB limit by [@danny-avila](/danny-avila) in [#14157](/danny-avila/LibreChat/pull/14157)
- ๐Ÿ”ก fix: Normalize Email Case When Issuing Verification Tokens by [@VictorEPlus](/VictorEPlus) in [#14172](/danny-avila/LibreChat/pull/14172)
- ๐Ÿชœ fix: Apply Recursion Limit Config to Subagents by [@danny-avila](/danny-avila) in [#14185](/danny-avila/LibreChat/pull/14185)
- ๐Ÿ’‚ fix: Enforce ALLOW_EMAIL_LOGIN on the Backend Login Route by [@lurkerCha](/lurkerCha) in [#14180](/danny-avila/LibreChat/pull/14180)
- ๐Ÿงฉ fix: Allow `compatibility` Field in Skill Frontmatter by [@danny-avila](/danny-avila) in [#14189](/danny-avila/LibreChat/pull/14189)
- ๐Ÿ“Ž fix: Translate Finite `supportedMimeTypes` Allowlists to Picker Accept by [@danny-avila](/danny-avila) in [#14186](/danny-avila/LibreChat/pull/14186)
- ๐Ÿช† fix: Serve Nested Skill Files Through a Wildcard Route by [@danny-avila](/danny-avila) in [#14191](/danny-avila/LibreChat/pull/14191)
- ๐Ÿƒ fix: Attach Request-Scoped MCP Servers From the Builder via the `mcp_all` Wildcard by [@adamscross04](/adamscross04) in [#14177](/danny-avila/LibreChat/pull/14177)
- ๐Ÿ” fix: Sync Conversation Title Updates to MeiliSearch by [@danny-avila](/danny-avila) in [#14223](/danny-avila/LibreChat/pull/14223)
- ๐Ÿ‘ป fix: Guard Redis Stream Resume Against Disposed HITL Graph by [@danny-avila](/danny-avila) in [#14258](/danny-avila/LibreChat/pull/14258)
- ๐Ÿค fix: Discover MCP OAuth Exchange Methods by [@danny-avila](/danny-avila) in [#14256](/danny-avila/LibreChat/pull/14256)
- ๐Ÿ‘‹ fix: Terminate Streamable HTTP MCP Sessions on Teardown by [@danny-avila](/danny-avila) in [#14252](/danny-avila/LibreChat/pull/14252)
- ๐Ÿ—‚๏ธ fix: Route read_file Through the Stateful Code Session by [@danny-avila](/danny-avila) in [#14259](/danny-avila/LibreChat/pull/14259)
- ๐Ÿ’ญ fix: Default GPT-5.6 Reasoning Requests to Responses API by [@jomspk](/jomspk) in [#14232](/danny-avila/LibreChat/pull/14232)
- ๐Ÿ”– fix: Preserve Ephemeral Agent Params and Identity for ask_user_question Resume by [@jjhidalgar-celonis](/jjhidalgar-celonis) in [#14254](/danny-avila/LibreChat/pull/14254)
- ๐ŸŽซ fix: Strip Reserved Fields From Bedrock `additionalModelRequestFields` by [@danny-avila](/danny-avila) in [#14246](/danny-avila/LibreChat/pull/14246)
- ๐Ÿ“ฑ fix: Single-Tap Select for Pinned Agents, Model Specs & Models on Touch by [@danny-avila](/danny-avila) in [#14272](/danny-avila/LibreChat/pull/14272)
- ๐Ÿงฝ fix: Clear Deleted Chats From Message Cache by [@danny-avila](/danny-avila) in [#14270](/danny-avila/LibreChat/pull/14270)
- ๐ŸงŸ fix: Prevent Drained Steer From Re-Queuing After Run-End Race by [@danny-avila](/danny-avila) in [#14276](/danny-avila/LibreChat/pull/14276)
- ๐Ÿ™‹ fix: Await `ask_user_question` Tool Factory in `loadTools` by [@danny-avila](/danny-avila) in [#14291](/danny-avila/LibreChat/pull/14291)
- ๐Ÿงท fix: Flush Pending File Deletion on Unmount by [@danny-avila](/danny-avila) in [#14293](/danny-avila/LibreChat/pull/14293)
- ๐Ÿ™‹ fix: Stop Answered `ask_user_question` Card From Reopening Its Popover by [@danny-avila](/danny-avila) in [#14297](/danny-avila/LibreChat/pull/14297)
- ๐Ÿ”’ fix: Scope, Cap, and De-Execute the In-Flight Steer Stack by [@danny-avila](/danny-avila) in [#14310](/danny-avila/LibreChat/pull/14310)
- ๐Ÿ“ฑ fix: Don't Connect the Favorites Drag Source on Touch Pointers by [@danny-avila](/danny-avila) in [#14312](/danny-avila/LibreChat/pull/14312)
- ๐Ÿงต fix: Harden Request-Scoped MCP Lifecycle by [@danny-avila](/danny-avila) in [#14342](/danny-avila/LibreChat/pull/14342)
- ๐Ÿช† fix: Build RAG-API Chart Before Parent to Bundle PostgreSQL Dependency by [@Aho-Bakaa](/Aho-Bakaa) in [#14262](/danny-avila/LibreChat/pull/14262)
- ๐Ÿšช fix: Keep Owners From Being Locked Out of Their Own Resource When Sharing by [@danny-avila](/danny-avila) in [#14347](/danny-avila/LibreChat/pull/14347)
- ๐Ÿš fix: Route Admin-Configured Document Types to RAG /text on Agent Upload by [@danny-avila](/danny-avila) in [#14345](/danny-avila/LibreChat/pull/14345)
- ๐ŸŽŸ๏ธ fix: Claim Idempotency Keys to Dedup Retried Generation Requests and Prevent Double Billing by [@danny-avila](/danny-avila) in [#14344](/danny-avila/LibreChat/pull/14344)
- ๐Ÿง  fix: Restore Agent Memory Scope Control in Unified Builder by [@danny-avila](/danny-avila) in [#14292](/danny-avila/LibreChat/pull/14292)
- ๐Ÿ›Ÿ fix: Keep File Uploads Alive With SSE Heartbeats by [@MarcAmick](/MarcAmick) in [#14295](/danny-avila/LibreChat/pull/14295)
- ๐Ÿงฉ fix: Preserve Deployment Skill IDs on Agents by [@danny-avila](/danny-avila) in [#14368](/danny-avila/LibreChat/pull/14368)
- ๐Ÿงญ fix: Keep Message Nav Chevrons Working on In-Thread Steers by [@danny-avila](/danny-avila) in [#14377](/danny-avila/LibreChat/pull/14377)
- ๐Ÿค fix: Withhold MCP OAuth Headers From Untrusted Preconfigured Discovery by [@danny-avila](/danny-avila) in [#14379](/danny-avila/LibreChat/pull/14379)
- ๐Ÿ”— fix: Preserve resource owner access when sharing (key share diff by stable id) by [@jomspk](/jomspk) in [#14317](/danny-avila/LibreChat/pull/14317)
- ๐Ÿช† fix: Preserve Nested Subagent Delegation by [@danny-avila](/danny-avila) in [#14392](/danny-avila/LibreChat/pull/14392)
- โœ‹ fix: Enable Submit on First Tool-Approval Decision by [@danny-avila](/danny-avila) in [#14393](/danny-avila/LibreChat/pull/14393)
- ๐ŸŽž๏ธ fix: Surface Clear Error for Unprocessable Gemini YouTube Videos by [@danny-avila](/danny-avila) in [#14396](/danny-avila/LibreChat/pull/14396)
- ๐Ÿ“Œ fix: Pin Scroll-to-Bottom Rib in Message Nav by [@danny-avila](/danny-avila) in [#14397](/danny-avila/LibreChat/pull/14397)
- ๐Ÿซ™ fix: Preserve Loaded Message Content When Resume Snapshot Is Empty by [@danny-avila](/danny-avila) in [#14399](/danny-avila/LibreChat/pull/14399)
- ๐ŸŽฏ fix: Correct Off-by-One Rail Scrub After Pinning the Terminus by [@danny-avila](/danny-avila) in [#14409](/danny-avila/LibreChat/pull/14409)
- โ™พ๏ธ fix: Preserve Resumable Stream Ordering Across Turns by [@danny-avila](/danny-avila) in [#14411](/danny-avila/LibreChat/pull/14411)
- ๐Ÿงฉ fix: Harden Agent Skill Lifecycles End to End by [@danny-avila](/danny-avila) in [#14429](/danny-avila/LibreChat/pull/14429)
- ๐Ÿ“ง fix: Restore `invite-user` CLI by [@unsnow-iac](/unsnow-iac) in [#14436](/danny-avila/LibreChat/pull/14436)
- ๐Ÿ”— fix: Resolve MCP Tool-Key Boundary Against Configured Server Names by [@danny-avila](/danny-avila) in [#14448](/danny-avila/LibreChat/pull/14448)
- ๐Ÿƒ fix: Strip $-Prefixed Schema Keywords Before Persisting MCP Tool Params by [@danny-avila](/danny-avila) in [#14464](/danny-avila/LibreChat/pull/14464)
- ๐Ÿ”— fix: Render Shared Links Containing Steers by [@danny-avila](/danny-avila) in [#14480](/danny-avila/LibreChat/pull/14480)
- ๐Ÿ”’ fix: Bound `/files/usage` TTL Hold Instead of Clearing It by [@danny-avila](/danny-avila) in [#14470](/danny-avila/LibreChat/pull/14470)
- ๐Ÿค fix: Filter Admin Config Reads by Section-Scoped Read Capability by [@dustinhealy](/dustinhealy) in [#14472](/danny-avila/LibreChat/pull/14472)
- ๐Ÿƒ fix: Amazon DocumentDB Compatibility for Pipeline-Form Updates by [@danny-avila](/danny-avila) in [#14495](/danny-avila/LibreChat/pull/14495)
- ๐Ÿ›ก๏ธ fix: validate message feedback payloads by [@upman](/upman) in [#14500](/danny-avila/LibreChat/pull/14500)
- ๐Ÿงฉ fix: Apply Every Entry of Multi-Part Stream Deltas by [@danny-avila](/danny-avila) in [#14502](/danny-avila/LibreChat/pull/14502)
- ๐Ÿท๏ธ fix: Re-attribute Agent Content After In-Thread Steers by [@danny-avila](/danny-avila) in [#14497](/danny-avila/LibreChat/pull/14497)
- ๐ŸŽฏ fix: Keep Run Steps and Labels in One Index Space After a Resume Sync by [@danny-avila](/danny-avila) in [#14516](/danny-avila/LibreChat/pull/14516)
- ๐Ÿชถ fix: Yield Soft Default Model Spec to Agent Picks in Picker-Only Deployments by [@danny-avila](/danny-avila) in [#14515](/danny-avila/LibreChat/pull/14515)
- ๐ŸชŸ fix: Surface MCP Initialization Errors by [@danny-avila](/danny-avila) in [#14529](/danny-avila/LibreChat/pull/14529)
- ๐Ÿชƒ fix: Resolve User Vars Before the First Post-OAuth Reconnect by [@schumajs](/schumajs) in [#14538](/danny-avila/LibreChat/pull/14538)
- ๐Ÿ”’ fix: Remove Owner Email from Agent `owner_contact` Fallback by [@danny-avila](/danny-avila) in [#14541](/danny-avila/LibreChat/pull/14541)
- ๐Ÿ“„ fix: Filter Non-PDF Documents on the Anthropic Encode Path by [@danny-avila](/danny-avila) in [#14535](/danny-avila/LibreChat/pull/14535)
- ๐ŸŽฏ fix: Exact Ask-Question Attribution via Interrupt tool_call_id by [@danny-avila](/danny-avila) in [#14539](/danny-avila/LibreChat/pull/14539)
- ๐Ÿงน fix: Clean Up MCP OAuth State Mappings on Uninstall + Reject Superseded Callbacks by [@danny-avila](/danny-avila) in [#14549](/danny-avila/LibreChat/pull/14549)
- ๐Ÿง  fix: Preserve Deferred Tool Schemas Across HITL Resume by [@danny-avila](/danny-avila) in [#14552](/danny-avila/LibreChat/pull/14552)
- ๐Ÿฆ— fix: Ignore Sequenced Redis Events Without SSE Subscribers by [@danny-avila](/danny-avila) in [#14557](/danny-avila/LibreChat/pull/14557)
- ๐Ÿ”— fix: Normalize MCP Tool Keys at Every Producer, Resolve Raw Names via Aliases by [@danny-avila](/danny-avila) in [#14553](/danny-avila/LibreChat/pull/14553)
- ๐Ÿข fix: Preserve Tenant Context for Partial Response Saves on Disconnect by [@danny-avila](/danny-avila) in [#14567](/danny-avila/LibreChat/pull/14567)
- ๐Ÿฆ— fix: Deliver Abort Acknowledgements on Zero-Subscriber Replicas by [@danny-avila](/danny-avila) in [#14569](/danny-avila/LibreChat/pull/14569)
- ๐Ÿท๏ธ fix: Skip Title Generation for Preempt-Incomplete Turns by [@danny-avila](/danny-avila) in [#14571](/danny-avila/LibreChat/pull/14571)
- ๐Ÿชง fix: Guard Admin OAuth Routes When Providers Are Not Configured by [@cyphercodes](/cyphercodes) in [#14507](/danny-avila/LibreChat/pull/14507)
- ๐Ÿ”— fix: Resolve Relative Skill Markdown Links by [@berry-13](/berry-13) in [#14586](/danny-avila/LibreChat/pull/14586)
- ๐Ÿงญ fix: Drop v6-Only MemoryRouter future Prop from Skill Markdown Spec by [@danny-avila](/danny-avila) in [#14588](/danny-avila/LibreChat/pull/14588)
- ๐Ÿชช fix: Strip Unresolved Header Placeholders at Final Resolution by [@danny-avila](/danny-avila) in [#14595](/danny-avila/LibreChat/pull/14595)
- ๐Ÿ”’ fix: Single-Flight MCP OAuth Token Refresh per User/Server by [@danny-avila](/danny-avila) in [#14596](/danny-avila/LibreChat/pull/14596)
- ๐Ÿชบ fix: Keep Preempt-Abandoned Siblings Nested, Make Message Tree Order-Robust by [@danny-avila](/danny-avila) in [#14587](/danny-avila/LibreChat/pull/14587)
- โŒจ๏ธ fix: Honor `defaultPrevented` in Global Shortcut Dispatch by [@danny-avila](/danny-avila) in [#14570](/danny-avila/LibreChat/pull/14570)
- ๐Ÿชข fix: Bind MCP OAuth Secrets to Trusted Endpoints by [@danny-avila](/danny-avila) in [#14578](/danny-avila/LibreChat/pull/14578)
- โš“ fix: Bind Action Servers to Metadata Ports by [@danny-avila](/danny-avila) in [#14575](/danny-avila/LibreChat/pull/14575)
- ๐Ÿงฑ fix: Enforce Agent Runtime File Trust Boundaries by [@danny-avila](/danny-avila) in [#14577](/danny-avila/LibreChat/pull/14577)
- ๐Ÿ“ fix: Scope Skill Command Query to Text Before the Caret by [@danny-avila](/danny-avila) in [#14604](/danny-avila/LibreChat/pull/14604)
- ๐Ÿงฌ fix: Resolve URL-Named Model Spec to Its Full Preset on Cold Load by [@danny-avila](/danny-avila) in [#14610](/danny-avila/LibreChat/pull/14610)
- โœ‚๏ธ fix: Truncate Overflowing Activity and Intent Labels in Chat UI by [@danny-avila](/danny-avila) in [#14607](/danny-avila/LibreChat/pull/14607)
- ๐Ÿšฆ fix: Bound, Single-Flight, and Retry Skill File Priming Uploads by [@danny-avila](/danny-avila) in [#14611](/danny-avila/LibreChat/pull/14611)
- ๐Ÿงน fix: Exclude Mongo ID From Conversation Updates by [@danny-avila](/danny-avila) in [#14631](/danny-avila/LibreChat/pull/14631)
- โ™ฟ๏ธ a11y: improve keyboard operability, focus retention, and accessible naming by [@berry-13](/berry-13) in [#14600](/danny-avila/LibreChat/pull/14600)
- ๐Ÿš fix: Localized Guidance for Model-Not-Found Errors by [@danny-avila](/danny-avila) in [`557c22d102`](/danny-avila/LibreChat/commit/557c22d10240a66a068584f1098c54a436c4dcc8)
- ๐Ÿ›ก๏ธ fix: Run message-filter PII patterns on a linear-time regex engine (ReDoS) by [@dustinhealy](/dustinhealy) in [#14554](/danny-avila/LibreChat/pull/14554)
- ๐Ÿชข fix: disable central fanout media uploads for langfuse by [@upman](/upman) in [#14642](/danny-avila/LibreChat/pull/14642)
- ๐Ÿงญ fix: Fail Closed When Expected MCP Tools Are Unavailable by [@danny-avila](/danny-avila) in [#14646](/danny-avila/LibreChat/pull/14646)
- ๐Ÿ›‚ fix: Honor Claude Document Limits Through Inference Gateways by [@danny-avila](/danny-avila) in [#14650](/danny-avila/LibreChat/pull/14650)
- ๐ŸŽŸ๏ธ fix: Reconcile MCP OAuth Readiness Across Pods by [@danny-avila](/danny-avila) in [#14629](/danny-avila/LibreChat/pull/14629)
- ๐ŸŒŠ fix: Preserve Custom Endpoint `streamRate` When `endpoints.all` Is Defined by [@danny-avila](/danny-avila) in [#14645](/danny-avila/LibreChat/pull/14645)
- ๐Ÿ” fix: Preserve Structured JWT Auth Context by [@danny-avila](/danny-avila) in [#14652](/danny-avila/LibreChat/pull/14652)
- โฑ๏ธ fix: Compile admin file-config MIME patterns on a linear-time engine (ReDoS) by [@dustinhealy](/dustinhealy) in [#14555](/danny-avila/LibreChat/pull/14555)
- ๐Ÿ›ก๏ธ fix: SSRF-Guard Speech (STT/TTS) and OCR Outbound Requests at Connect Time by [@dustinhealy](/dustinhealy) in [#14560](/danny-avila/LibreChat/pull/14560)
- ๐Ÿ” fix: Re-Arm Soft Default When a Stored Agent No Longer Resolves by [@danny-avila](/danny-avila) in [#14664](/danny-avila/LibreChat/pull/14664)
- ๐Ÿ”— fix: Prevent duplicate share rows from clobbering pending role edits (dedupe adds by stable id) by [@jomspk](/jomspk) in [#14655](/danny-avila/LibreChat/pull/14655)
- ๐Ÿ›Ÿ fix: Stop Agents When Code Resources Cannot Recover by [@danny-avila](/danny-avila) in [#14651](/danny-avila/LibreChat/pull/14651)
- โ™ฟ fix: Restore WCAG AA Contrast for Text Tokens & Hide Edit Action While Streaming by [@danny-avila](/danny-avila) in [#14677](/danny-avila/LibreChat/pull/14677)
- ๐Ÿฉน fix: Keep Edit Action Fully Hidden While Streaming by [@danny-avila](/danny-avila) in [#14687](/danny-avila/LibreChat/pull/14687)
- ๐Ÿ“ก fix: Refresh MCP Tools After List-Changed Notifications by [@danny-avila](/danny-avila) in [#14686](/danny-avila/LibreChat/pull/14686)
- ๐Ÿงฌ fix: Rebind Request Context After Remote Agent Auth by [@danny-avila](/danny-avila) in [#14685](/danny-avila/LibreChat/pull/14685)
- ๐Ÿงญ fix: Make MCP Catalog Redis Cluster-Safe by [@danny-avila](/danny-avila) in [#14717](/danny-avila/LibreChat/pull/14717)
- ๐Ÿงฌ fix: Normalize Legacy MCP Null Headers by [@danny-avila](/danny-avila) in [#14720](/danny-avila/LibreChat/pull/14720)
- ๐Ÿ“ fix: Consistent Export Filenames Across Formats by [@lidonius1122](/lidonius1122) in [#14708](/danny-avila/LibreChat/pull/14708)
- ๐Ÿงท fix: Safely Recover Runtime MCP OAuth Rejections by [@danny-avila](/danny-avila) in [#14684](/danny-avila/LibreChat/pull/14684)
- ๐Ÿช† fix: Rebase Activity Phase Bounds over Sparse Content by [@danny-avila](/danny-avila) in [#14729](/danny-avila/LibreChat/pull/14729)
- ๐Ÿ“Ž fix: Re-enable Send After File Upload by [@danny-avila](/danny-avila) in [#14727](/danny-avila/LibreChat/pull/14727)
- ๐Ÿ“ธ fix: Guard Screenshot Export Against Main-Thread Freezes by [@danny-avila](/danny-avila) in [#14733](/danny-avila/LibreChat/pull/14733)
- ๐Ÿ” fix: Preserve Plugin MCP Provenance Through Registry Storage by [@danny-avila](/danny-avila) in [#14744](/danny-avila/LibreChat/pull/14744)
- ๐Ÿงญ fix: Re-Anchor Parent Activity Phase Bounds by [@danny-avila](/danny-avila) in [#14741](/danny-avila/LibreChat/pull/14741)
- ๐Ÿงท fix: Preserve Elicitation Answers Across Aborts by [@danny-avila](/danny-avila) in [#14745](/danny-avila/LibreChat/pull/14745)
- ๐Ÿ“ก fix: Preserve Redis Abort Terminal Delivery by [@danny-avila](/danny-avila) in [#14749](/danny-avila/LibreChat/pull/14749)
- โŒจ๏ธ fix: allow file upload shortcut when editing by [@likeabas](/likeabas) in [#14764](/danny-avila/LibreChat/pull/14764)
- ๐Ÿ›Ÿ fix: Isolate Invalid Skills During GitHub Sync by [@berry-13](/berry-13) in [#14735](/danny-avila/LibreChat/pull/14735)
- ๐ŸŽ™๏ธ fix: Align Speech Engine Configuration With Runtime by [@berry-13](/berry-13) in [#14736](/danny-avila/LibreChat/pull/14736)
- ๐Ÿงฉ fix: Normalize Malformed MCP Required Schemas by [@danny-avila](/danny-avila) in [#14771](/danny-avila/LibreChat/pull/14771)
- ๐Ÿงพ fix: Honor Disabled Transactions on the Token-Count Fallback Path by [@jtodaroii](/jtodaroii) in [#14774](/danny-avila/LibreChat/pull/14774)
- ๐Ÿ›ฐ๏ธ fix: Attach Request-Scoped MCP Servers by [@danny-avila](/danny-avila) in [#14780](/danny-avila/LibreChat/pull/14780)
- ๐Ÿ“ฑ fix: Show Quote Popup for Block Selections and on Touch Devices by [@danny-avila](/danny-avila) in [#14777](/danny-avila/LibreChat/pull/14777)
- ๐Ÿช‘ fix: Rebase Activity Phase Bounds Onto Compacted Content and Unskip the MCPManager Suite by [@danny-avila](/danny-avila) in [#14782](/danny-avila/LibreChat/pull/14782)
- ๐Ÿ”– fix: Split Activity Phases at Substantial Text by [@danny-avila](/danny-avila) in [#14785](/danny-avila/LibreChat/pull/14785)
- ๐Ÿ–Œ๏ธ style: Use correct text colour for answer textarea in dark mode by [@lizzykerrigan](/lizzykerrigan) in [#14791](/danny-avila/LibreChat/pull/14791)
- ๐Ÿฉน fix: Restore the `@librechat/api` Build and Remove Legacy Code by [@danny-avila](/danny-avila) in [#14808](/danny-avila/LibreChat/pull/14808)
- ๐Ÿฉน fix: apply agent updates that match the newest version entry by [@mihidumh](/mihidumh) in [#14810](/danny-avila/LibreChat/pull/14810)
- ๐Ÿ’ฌ style: Right-Align In-Flight Steer Bubbles to the Message UI by [@danny-avila](/danny-avila) in [#14814](/danny-avila/LibreChat/pull/14814)
- ๐Ÿ”Œ fix: Preserve MCP `serverInstructions` Declaration Through Inspection by [@danny-avila](/danny-avila) in [#14815](/danny-avila/LibreChat/pull/14815)
- ๐Ÿ”Œ fix: Recover Quietly From Stale MCP SSE Stream Conflicts by [@danny-avila](/danny-avila) in [#14816](/danny-avila/LibreChat/pull/14816)
- ๐Ÿ“Ž fix: Alias Shell Script MIME Variants to `application/x-sh` by [@danny-avila](/danny-avila) in [#14817](/danny-avila/LibreChat/pull/14817)
- ๐Ÿชข fix(langfuse): mark provider-backed agent traces by [@upman](/upman) in [#14833](/danny-avila/LibreChat/pull/14833)
- ๐Ÿ”” fix: Report Agent Saves That Reuse the Newest Version Entry by [@berry-13](/berry-13) in [#14824](/danny-avila/LibreChat/pull/14824)
- ๐Ÿ˜๏ธ fix: Scope OpenID User Cache Keys to Signed User Identity by [@danny-avila](/danny-avila) in [#14837](/danny-avila/LibreChat/pull/14837)
- โšก fix: avoid modal attachment menu overhead by [@danny-avila](/danny-avila) in [#14847](/danny-avila/LibreChat/pull/14847)
- โฌ‡๏ธ fix: Keep Scroll-to-Bottom Clear of the In-Flight Steer Stack by [@danny-avila](/danny-avila) in [#14844](/danny-avila/LibreChat/pull/14844)
- ๐Ÿ› fix: Give the Header's Sidebar Toggle Its Own Test Id by [@danny-avila](/danny-avila) in [#14850](/danny-avila/LibreChat/pull/14850)
- fix: copy only assistant response text by [@berry-13](/berry-13) in [#14853](/danny-avila/LibreChat/pull/14853)
- ๐ŸŒ— fix: Keep Code Block Header Visible in User Messages by [@berry-13](/berry-13) in [#14856](/danny-avila/LibreChat/pull/14856)
- ๐Ÿ“ fix: Size the Model Picker to Its Content by [@berry-13](/berry-13) in [#14859](/danny-avila/LibreChat/pull/14859)
- ๐Ÿฉบ fix: Render Stopped Run Steps From Explicit Status by [@danny-avila](/danny-avila) in [#14871](/danny-avila/LibreChat/pull/14871)
- ๐Ÿ“ก fix: Publish App-Level MCP Tool Catalogs Without a Reserved Revision by [@danny-avila](/danny-avila) in [#14858](/danny-avila/LibreChat/pull/14858)
- ๐Ÿงฉ fix: Normalize MCP UI Resource Rendering by [@danny-avila](/danny-avila) in [#14868](/danny-avila/LibreChat/pull/14868)
- ๐ŸŽ™๏ธ fix: Prefer Compatible Formats for External STT Recording by [@berry-13](/berry-13) in [#14864](/danny-avila/LibreChat/pull/14864)
- ๐Ÿ“‹ fix: Stop the Copy Button From Clobbering the Clipboard by [@berry-13](/berry-13) in [#14876](/danny-avila/LibreChat/pull/14876)
- ๐Ÿฉน fix: Stop Archived and Shared Chats Dialogs Crashing on Open by [@berry-13](/berry-13) in [#14886](/danny-avila/LibreChat/pull/14886)
- ๐Ÿท๏ธ fix: Model Spec Menu Label and Agent Avatar Fallbacks by [@danny-avila](/danny-avila) in [#14887](/danny-avila/LibreChat/pull/14887)
- ๐Ÿ”™ fix: Stop Stacking History Entries on New-Chat Param Changes by [@danny-avila](/danny-avila) in [#14891](/danny-avila/LibreChat/pull/14891)
- ๐Ÿ“Œ fix: Fetch Pinned Chats Independently of the Chats List by [@berry-13](/berry-13) in [#14860](/danny-avila/LibreChat/pull/14860)
- ๐Ÿ•ฐ๏ธ fix: Stop Pinning and Archiving From Counting as Chat Activity by [@berry-13](/berry-13) in [#14861](/danny-avila/LibreChat/pull/14861)
- ๐ŸชŸ fix: Resolve Context Windows and Pricing for Newer Model Families by [@berry-13](/berry-13) in [#14877](/danny-avila/LibreChat/pull/14877)
- ๐Ÿ–ฑ๏ธ fix: Reveal Message Metadata on Hover, Not on Click by [@berry-13](/berry-13) in [#14900](/danny-avila/LibreChat/pull/14900)
- ๐Ÿท๏ธ fix: Persist the Ephemeral Agent's Display Label as Sender by [@danny-avila](/danny-avila) in [#14899](/danny-avila/LibreChat/pull/14899)
- ๐Ÿงฉ fix: Align Tenant and MCP Configuration Resolution by [@danny-avila](/danny-avila) in [#14904](/danny-avila/LibreChat/pull/14904)
- ๐ŸŒ‰ fix: Preserve Missing Locize Translations by [@danny-avila](/danny-avila) in [#14917](/danny-avila/LibreChat/pull/14917)
- ๐Ÿ” fix: Repair Locize PR Authentication by [@danny-avila](/danny-avila) in [#14918](/danny-avila/LibreChat/pull/14918)
- ๐Ÿ“š fix: Keep English Source Repository-Owned by [@danny-avila](/danny-avila) in [#14920](/danny-avila/LibreChat/pull/14920)
- ๐Ÿš fix: Preserve Endpoint Routing on HITL Resume Replay by [@danny-avila](/danny-avila) in [#14948](/danny-avila/LibreChat/pull/14948)
- ๐ŸŒ fix: Scrollable Language Dropdown in Shared Chat Settings by [@berry-13](/berry-13) in [#14954](/danny-avila/LibreChat/pull/14954)
- ๐Ÿ”’ fix: Hide Sensitive Input in Reset-Password CLI by [@jacksonriding](/jacksonriding) in [#14923](/danny-avila/LibreChat/pull/14923)
- ๐Ÿ’ป fix(agents): require Code Interpreter for programmatic MCP tools by [@upman](/upman) in [#14977](/danny-avila/LibreChat/pull/14977)
- ๐Ÿชช fix: Preserve Stored Access Token Expiry Over ID Token Exp by [@dustinhealy](/dustinhealy) in [#14982](/danny-avila/LibreChat/pull/14982)
- ๐Ÿชข fix: Harden Langfuse Media Upload Targets by [@upman](/upman) in [#14974](/danny-avila/LibreChat/pull/14974)
- ๐Ÿ™‹ fix: Free the Composer When a Question Pause Collapses by [@danny-avila](/danny-avila) in [#15011](/danny-avila/LibreChat/pull/15011)
- ๐Ÿ›‚ fix: Preserve OpenID Re-Auth Errors Through MCP Tool Error Classification by [@dustinhealy](/dustinhealy) in [#15010](/danny-avila/LibreChat/pull/15010)
- ๐Ÿช‚ fix: Land Navigation Auto-Scroll on the Rendered Thread by [@danny-avila](/danny-avila) in [#15014](/danny-avila/LibreChat/pull/15014)
- ๐Ÿ“Ž fix: Never Let a Stalled Attachment Disable the Composer by [@danny-avila](/danny-avila) in [#15013](/danny-avila/LibreChat/pull/15013)
- ๐Ÿชช fix: Preserve Detached Subagent Owner Context by [@danny-avila](/danny-avila) in [#15015](/danny-avila/LibreChat/pull/15015)
- โœ‚๏ธ fix(agents): warn when skill descriptions are truncated in the model catalog by [@putramkti](/putramkti) in [#14878](/danny-avila/LibreChat/pull/14878)
- ๐Ÿ”“ fix: Unblock Detached Subagent Preparation by [@danny-avila](/danny-avila) in [#15016](/danny-avila/LibreChat/pull/15016)
- โ™ฟ fix: Keep Portaled Dropdown Menus Clickable Inside Modal Dialogs by [@berry-13](/berry-13) in [#15026](/danny-avila/LibreChat/pull/15026)
- โ™ฟ fix: Resolve axe Violations in Sidebar, Tools Dropdown and Footer by [@jtodaroii](/jtodaroii) in [#14979](/danny-avila/LibreChat/pull/14979)
- ๐ŸŽก fix: Scheduled Chat Slot Accounting and Reconciliation Rotation by [@danny-avila](/danny-avila) in [#15040](/danny-avila/LibreChat/pull/15040)
- ๐Ÿ—“๏ธ fix: Hide Unsupported Schedule Variables by [@danny-avila](/danny-avila) in [#15053](/danny-avila/LibreChat/pull/15053)
- ๐Ÿงต fix: Hide Child Threads From Navigation by [@danny-avila](/danny-avila) in [#15041](/danny-avila/LibreChat/pull/15041)
- ๐Ÿ›‘ fix: Confirm Scheduled Stops and Separate Terminal Scheduler Failure from Startup by [@danny-avila](/danny-avila) in [#15051](/danny-avila/LibreChat/pull/15051)
- ๐Ÿงต fix: Close Child-Thread Read and Search-Cleanup Gaps by [@danny-avila](/danny-avila) in [#15055](/danny-avila/LibreChat/pull/15055)
- ๐Ÿ“ฑ fix: Recover the Stream After a Mobile Tab is Backgrounded by [@danny-avila](/danny-avila) in [#15050](/danny-avila/LibreChat/pull/15050)
- ๐Ÿ›Ÿ fix: Report Skill Sync Files Whose Paths Cannot Be Mirrored by [@danny-avila](/danny-avila) in [#15067](/danny-avila/LibreChat/pull/15067)
- ๐Ÿ”ญ fix: Attach to Runs This Pane Did Not Start by [@danny-avila](/danny-avila) in [#15074](/danny-avila/LibreChat/pull/15074)
- ๐Ÿชช fix: Support MCP Server Titles With Hyphens by [@danny-avila](/danny-avila) in [#15094](/danny-avila/LibreChat/pull/15094)
- ๐Ÿ“„ fix: Serve Stored Text for "Upload as Text" File Downloads by [@lidonius1122](/lidonius1122) in [#14723](/danny-avila/LibreChat/pull/14723)
- ๐Ÿชข fix: Preserve Response Identity and Branch During Resumable SSE Sync by [@Falenos](/Falenos) in [#14788](/danny-avila/LibreChat/pull/14788)
- โœ‚๏ธ fix: Strip Redundant Server-Name Prefixes from MCP Tool Keys by [@dustinhealy](/dustinhealy) in [#14732](/danny-avila/LibreChat/pull/14732)
- ๐Ÿชก fix: Thread Parent Message ID Through MCP Request-Scoped Bodies by [@danny-avila](/danny-avila) in [#15095](/danny-avila/LibreChat/pull/15095)
- ๐Ÿ–ผ๏ธ fix: Restore Shared Subagent Activity as a Read-Only View by [@danny-avila](/danny-avila) in [#15108](/danny-avila/LibreChat/pull/15108)
- ๐Ÿงฏ fix: Prevent Quote Popup Update Loop by [@danny-avila](/danny-avila) in [#15113](/danny-avila/LibreChat/pull/15113)
- ๐Ÿšฆ fix: Restrict Programmatic Tool Execution Maps by [@danny-avila](/danny-avila) in [#15105](/danny-avila/LibreChat/pull/15105)
- ๐Ÿ›‚ fix: Preserve Legacy Assistant Attribution by [@danny-avila](/danny-avila) in [#15118](/danny-avila/LibreChat/pull/15118)
- ๐Ÿงพ fix: Report Complete Agents API Usage by [@danny-avila](/danny-avila) in [#15127](/danny-avila/LibreChat/pull/15127)
- ๐Ÿ“ fix: Size Agent Builder Tool and Skill Rows by [@berry-13](/berry-13) in [#15134](/danny-avila/LibreChat/pull/15134)
- ๐Ÿซ‚ fix: Route Subagent Activity Through the Chat Renderer by [@danny-avila](/danny-avila) in [#15137](/danny-avila/LibreChat/pull/15137)
- ๐Ÿงช fix: Mock the Parent Subagent Index Handler in Convos Route Tests by [@danny-avila](/danny-avila) in [#15146](/danny-avila/LibreChat/pull/15146)
- ๐Ÿชถ fix: Polish Event Subagent Activity by [@danny-avila](/danny-avila) in [#15152](/danny-avila/LibreChat/pull/15152)
- ๐Ÿ“ญ fix: Detect Agent List Pages in `useHasData` by [@jomspk](/jomspk) in [#15156](/danny-avila/LibreChat/pull/15156)
- ๐ŸŽฝ fix: Commit Subagent Roster Selections to Form State by [@danny-avila](/danny-avila) in [#15154](/danny-avila/LibreChat/pull/15154)
- ๐Ÿฉน fix: Restore Provider Typing Against the Agents SDK Declarations by [@danny-avila](/danny-avila) in [#15161](/danny-avila/LibreChat/pull/15161)
- ๐Ÿ•ฏ๏ธ fix: Decay Violation Scores With a Configurable TTL by [@danny-avila](/danny-avila) in [#15153](/danny-avila/LibreChat/pull/15153)
- ๐Ÿฅ fix: Compare TOTP Codes in Constant Time by [@pacocartones](/pacocartones) in [#15157](/danny-avila/LibreChat/pull/15157)
- ๐Ÿงณ fix: Port Subagent Control Receipt Writes to DocumentDB-Safe Operators by [@danny-avila](/danny-avila) in [#15171](/danny-avila/LibreChat/pull/15171)
- โœ‚๏ธ fix: Unclip the Share Dialog's Public Role Menu by [@danny-avila](/danny-avila) in [#15177](/danny-avila/LibreChat/pull/15177)
- ๐Ÿงฎ fix: Currency-Safe Single-Dollar LaTeX via Micromark Tokenizer by [@danny-avila](/danny-avila) in [#15181](/danny-avila/LibreChat/pull/15181)
- ๐Ÿซ— fix: Drain Quoted Excerpts Into Mid-Run Steering by [@danny-avila](/danny-avila) in [#15175](/danny-avila/LibreChat/pull/15175)
- ๐Ÿ“Œ fix: Keep the Settled Turn Mounted Through Final Content Compaction by [@danny-avila](/danny-avila) in [#15186](/danny-avila/LibreChat/pull/15186)
- ๐Ÿชข fix: Persist Failed Agent Turns Before Error Publication by [@danny-avila](/danny-avila) in [#14118](/danny-avila/LibreChat/pull/14118)
- ๐Ÿ“ fix: Set the Elapsed Reading on the Column Its Neighbors Share by [@danny-avila](/danny-avila) in [#15195](/danny-avila/LibreChat/pull/15195)
- ๐Ÿงพ fix: Honor Disabled Transactions on the Abort Paths by [@jtodaroii](/jtodaroii) in [#15099](/danny-avila/LibreChat/pull/15099)
- ๐Ÿฅ› fix: Drop Stale Saved Model Defaults in Builder Forms by [@upman](/upman) in [#15179](/danny-avila/LibreChat/pull/15179)
- ๐Ÿงพ fix: Honor Disabled Transactions on the Assistants Usage Path by [@jtodaroii](/jtodaroii) in [#15100](/danny-avila/LibreChat/pull/15100)
- ๐ŸŽ›๏ธ fix: Withhold the Seeded Model Catalogue Until Models Resolve by [@berry-13](/berry-13) in [#15035](/danny-avila/LibreChat/pull/15035)
- ๐Ÿ•ถ๏ธ fix: Unhide Event Subagent Names on the Dark Surface by [@danny-avila](/danny-avila) in [#15206](/danny-avila/LibreChat/pull/15206)
- ๐Ÿ›‘ fix: Separate Agent Event Backpressure From User Bans by [@danny-avila](/danny-avila) in [#15200](/danny-avila/LibreChat/pull/15200)
- โณ fix: Anchor Resumed Elapsed Time at the Generation's Real Start by [@danny-avila](/danny-avila) in [#15204](/danny-avila/LibreChat/pull/15204)
- ๐Ÿง  fix: Correct Memory Token Accounting by [@danny-avila](/danny-avila) in [#15224](/danny-avila/LibreChat/pull/15224)
- ๐ŸŽข fix: Restore Schedule Dialog Scrolling So Save Stays Reachable by [@danny-avila](/danny-avila) in [#15225](/danny-avila/LibreChat/pull/15225)
- ๐Ÿ—„๏ธ fix: support DocumentDB aggregations for insights by [@upman](/upman) in [#15226](/danny-avila/LibreChat/pull/15226)
- ๐Ÿ” fix: Rerun a Message the Editor Has Not Changed by [@berry-13](/berry-13) in [#15212](/danny-avila/LibreChat/pull/15212)
- ๐Ÿงฎ fix: Render Google Settings From the Shared Schema and Bound Them Per Model by [@berry-13](/berry-13) in [#14989](/danny-avila/LibreChat/pull/14989)
- ๐Ÿง  fix: Apply the Configured Reasoning Effort to Summarization by [@danny-avila](/danny-avila) in [#15232](/danny-avila/LibreChat/pull/15232)
- ๐Ÿงข fix: Bound Tokenizer Work Per Input by [@danny-avila](/danny-avila) in [#15246](/danny-avila/LibreChat/pull/15246)
- ๐Ÿ”ฃ fix: Escape SPA Language Attribute by [@danny-avila](/danny-avila) in [#15248](/danny-avila/LibreChat/pull/15248)
- ๐Ÿชบ fix: Heal MCP HITL Aliases Through Nested Subagents by [@danny-avila](/danny-avila) in [#15258](/danny-avila/LibreChat/pull/15258)
- ๐Ÿงข fix: Cap Batched HITL Answers Before PII and Moderation by [@danny-avila](/danny-avila) in [#15257](/danny-avila/LibreChat/pull/15257)
- ๐Ÿ–‡๏ธ fix: Bind Model-Spec Authorization to the Loaded Agent by [@danny-avila](/danny-avila) in [#15256](/danny-avila/LibreChat/pull/15256)
- ๐Ÿ“ฎ fix: Screen User-Supplied Structured Tool Endpoints by [@danny-avila](/danny-avila) in [#15253](/danny-avila/LibreChat/pull/15253)
- ๐Ÿชช fix: Preserve SAML NameID Bindings by [@danny-avila](/danny-avila) in [#15254](/danny-avila/LibreChat/pull/15254)
- ๐Ÿงฌ fix: Harden SAML Identity Binding by [@danny-avila](/danny-avila) in [#15264](/danny-avila/LibreChat/pull/15264)
- ๐Ÿ›— fix: Anchor Message Nav Gestures to One Measured Rib Layout by [@danny-avila](/danny-avila) in [#15272](/danny-avila/LibreChat/pull/15272)
- ๐ŸŒ fix: Expose Gemini Models to Vertex AI Agents by [@danny-avila](/danny-avila) in [#15234](/danny-avila/LibreChat/pull/15234)
- ๐Ÿฅซ fix: Refuse to Boot on Retired JWT Secret Defaults by [@danny-avila](/danny-avila) in [#15282](/danny-avila/LibreChat/pull/15282)
- ๐Ÿ“Œ fix: Keep Pinned Chats Pinned Through a New Turn by [@berry-13](/berry-13) in [#15230](/danny-avila/LibreChat/pull/15230)
- ๐Ÿงท fix: Verify Scheduled HITL State Before Pausing by [@danny-avila](/danny-avila) in [#15284](/danny-avila/LibreChat/pull/15284)
- โ™Ÿ๏ธ fix: Settle First Bound Actor Events by [@danny-avila](/danny-avila) in [#15300](/danny-avila/LibreChat/pull/15300)
- ๐ŸŽฐ fix: Merge Message Provenance With Compare-and-Swap Retries by [@danny-avila](/danny-avila) in [#15304](/danny-avila/LibreChat/pull/15304)
- ๐Ÿงต fix: Retry Shared Links After Message Persistence Gaps by [@danny-avila](/danny-avila) in [#15306](/danny-avila/LibreChat/pull/15306)
- ๐ŸŽซ fix: Exclude System Tenant Sentinel from Code API JWT Claims by [@danny-avila](/danny-avila) in [#15316](/danny-avila/LibreChat/pull/15316)
- ๐Ÿชช fix: Reject ID Tokens as the OpenID Bearer Reuse Access Token by [@danny-avila](/danny-avila) in [#15317](/danny-avila/LibreChat/pull/15317)
- ๐Ÿ•ฐ๏ธ fix: Guard `expires_in` So a Token Response Cannot Outlive Its Credential by [@danny-avila](/danny-avila) in [#15321](/danny-avila/LibreChat/pull/15321)
- ๐Ÿชง fix: Advertise Detached Event Actor Support from the Generation Store by [@danny-avila](/danny-avila) in [#15322](/danny-avila/LibreChat/pull/15322)
- ๐Ÿชช fix: Admit Confirmed Generation Retries Before Message Limits by [@danny-avila](/danny-avila) in [#15341](/danny-avila/LibreChat/pull/15341)
- ๐Ÿซ€ fix: Reconcile Completed Runs Behind Apparently Open Streams on Foreground by [@danny-avila](/danny-avila) in [#15342](/danny-avila/LibreChat/pull/15342)
- ๐Ÿบ fix: Stop Routine MCP Teardowns From Failing Concurrent Tool Calls by [@danny-avila](/danny-avila) in [#15333](/danny-avila/LibreChat/pull/15333)
- ๐Ÿ“ญ fix: Drop Empty Summary Parts Before Persistence by [@danny-avila](/danny-avila) in [#15338](/danny-avila/LibreChat/pull/15338)
- ๐Ÿ”’ fix: Refresh MCP OBO Tokens From the Live OpenID Session by [@danny-avila](/danny-avila) in [#15334](/danny-avila/LibreChat/pull/15334)
- ๐Ÿ‘” fix: Route Flux Finetuned Endpoints Regardless of Action by [@AyushCipher](/AyushCipher) in [#15336](/danny-avila/LibreChat/pull/15336)
- ๐Ÿชญ fix: Settle Parent Phase Cards Without Replaying the Entrance Fold by [@danny-avila](/danny-avila) in [#15345](/danny-avila/LibreChat/pull/15345)
- ๐Ÿ”Š fix: Autoplay Latest Message for Browser TTS and short responses by [@danny-avila](/danny-avila) in [#15347](/danny-avila/LibreChat/pull/15347)
- ๐Ÿ”„ fix: Recover Missing MCP Marketplace Catalogs by [@dustinhealy](/dustinhealy) in [#15323](/danny-avila/LibreChat/pull/15323)
- ๐Ÿ›Ž๏ธ fix: Enroll Remote Agent Runs in the Generation Lifecycle by [@danny-avila](/danny-avila) in [#15349](/danny-avila/LibreChat/pull/15349)
- โฑ๏ธ fix: Bound MCP Tool Discovery With a Caller Deadline by [@danny-avila](/danny-avila) in [#15346](/danny-avila/LibreChat/pull/15346)
- ๐Ÿงบ fix: Skip Oversized and Duplicate Files Instead of the Whole Batch by [@danny-avila](/danny-avila) in [#15358](/danny-avila/LibreChat/pull/15358)
- fix: log config-blocked MCP recovery at debug instead of error by [@danny-avila](/danny-avila) in [#15360](/danny-avila/LibreChat/pull/15360)
- ๐Ÿ•๏ธ fix: Restore Code Environments From Runtime Config by [@danny-avila](/danny-avila) in [#15373](/danny-avila/LibreChat/pull/15373)
- ๐Ÿ“œ fix: Resolve MCP Server Instructions for Startup-Deferred Servers by [@danny-avila](/danny-avila) in [#15361](/danny-avila/LibreChat/pull/15361)
- ๐Ÿงณ fix: Carry Stateful Environments Through Runtime Config by [@danny-avila](/danny-avila) in [#15374](/danny-avila/LibreChat/pull/15374)
- ๐Ÿƒ fix: Restore Amazon DocumentDB Compatibility Across Trigger and Subagent Writes by [@danny-avila](/danny-avila) in [#15375](/danny-avila/LibreChat/pull/15375)
- ๐Ÿงช fix: Align Detached Activity E2E With the Removed Running Chip by [@danny-avila](/danny-avila) in [#15382](/danny-avila/LibreChat/pull/15382)
- ๐ŸชŸ fix: Keep the Subagent Panel Steady and Honest Across Event Deliveries by [@danny-avila](/danny-avila) in [#15387](/danny-avila/LibreChat/pull/15387)
- ๐Ÿƒ fix: Send a Pure Inclusion Projection From the Legacy Receipt Sweep by [@danny-avila](/danny-avila) in [#15390](/danny-avila/LibreChat/pull/15390)
- ๐ŸŽ›๏ธ fix: Settle New Turns at the Bottom, Steady Status Dots, and Elapsed Time in the Panel by [@danny-avila](/danny-avila) in [#15394](/danny-avila/LibreChat/pull/15394)
- ๐Ÿ–๏ธ fix: Honor Agent Image Detail Settings by [@danny-avila](/danny-avila) in [#15407](/danny-avila/LibreChat/pull/15407)
- ๐Ÿช fix: Keep Tool Flyouts in View by [@alexsr1](/alexsr1) in [#15404](/danny-avila/LibreChat/pull/15404)
- ๐Ÿงฐ fix: Keep File-Backed Agent Capabilities and Their Saved Tools in Agreement by [@danny-avila](/danny-avila) in [#15418](/danny-avila/LibreChat/pull/15418)
- ๐Ÿงท fix: Attach to a Continuation the Finished Run Left Behind by [@danny-avila](/danny-avila) in [#15414](/danny-avila/LibreChat/pull/15414)
- ๐Ÿ•ฐ๏ธ fix: Anchor Temporal Prompt Variables to Turn Start by [@danny-avila](/danny-avila) in [#15419](/danny-avila/LibreChat/pull/15419)
- ๐Ÿงท fix: Fence Server-Admitted Queue Boundaries by [@danny-avila](/danny-avila) in [#15393](/danny-avila/LibreChat/pull/15393)
- ๐Ÿงด fix: Strip LangChain URLs From Provider Errors by [@danny-avila](/danny-avila) in [#15421](/danny-avila/LibreChat/pull/15421)
- ๐Ÿงฟ fix: Restore Shared IP Limits for Generation Retries by [@danny-avila](/danny-avila) in [#15427](/danny-avila/LibreChat/pull/15427)
- ๐Ÿซ€ fix: Expire Aborted Background Tool Leases by [@danny-avila](/danny-avila) in [#15428](/danny-avila/LibreChat/pull/15428)
- ๐Ÿงบ fix: Funnel MCP Catalog Work Through a Shared Gate by [@danny-avila](/danny-avila) in [#15429](/danny-avila/LibreChat/pull/15429)
- ๐Ÿ” fix: Redirect OAuth Browser Navigations Instead of Rendering JSON by [@berry-13](/berry-13) in [#15440](/danny-avila/LibreChat/pull/15440)
- ๐ŸŽฏ fix: Keep the Thinking Label on the Lightbulb's Axis While Shimmering by [@danny-avila](/danny-avila) in [#15437](/danny-avila/LibreChat/pull/15437)
- ๐Ÿ–ผ๏ธ fix: Give a Phase's Files Their Own Media Row by [@danny-avila](/danny-avila) in [#15435](/danny-avila/LibreChat/pull/15435)
- ๐Ÿงฉ fix: Scope Each Image's Digest Artifacts to Its Own Manifest Merge by [@danny-avila](/danny-avila) in [#15444](/danny-avila/LibreChat/pull/15444)
- ๐Ÿ›„ fix: Refresh Stale Skill File References by [@putramkti](/putramkti) in [#15413](/danny-avila/LibreChat/pull/15413)
- ๐Ÿฉน fix: Stop the Subagent Composer Unmounting, and Give It Main Chat's Shape by [@danny-avila](/danny-avila) in [#15448](/danny-avila/LibreChat/pull/15448)
- ๐Ÿ—‚๏ธ fix: Resolve Code Interpreter Destination Collisions by [@danny-avila](/danny-avila) in [#15449](/danny-avila/LibreChat/pull/15449)
- ๐Ÿงฒ fix: Draw OpenID Refresh Lookups Into System Context by [@danny-avila](/danny-avila) in [#15451](/danny-avila/LibreChat/pull/15451)
- ๐Ÿšฆ fix: Downgrade Stale Generation Fence Telemetry by [@danny-avila](/danny-avila) in [#15452](/danny-avila/LibreChat/pull/15452)
- ๐Ÿ–ผ๏ธ fix: Stop Reporting a Failed Sandbox Image Read as an Unreadable Format by [@danny-avila](/danny-avila) in [#15453](/danny-avila/LibreChat/pull/15453)
- ๐Ÿช„ fix: Reuse Downloaded Artifacts for Image Reads by [@danny-avila](/danny-avila) in [#15454](/danny-avila/LibreChat/pull/15454)
- ๐Ÿช‚ fix: Preserve Subscribers Through Terminal Handoffs by [@danny-avila](/danny-avila) in [#15462](/danny-avila/LibreChat/pull/15462)
- ๐Ÿซด fix: Hand Composer Focus Back After Upload Dialogs by [@danny-avila](/danny-avila) in [#15469](/danny-avila/LibreChat/pull/15469)
- ๐Ÿ“Ž fix: Keep SharePoint Picker Selections While Navigating by [@danny-avila](/danny-avila) in [#15389](/danny-avila/LibreChat/pull/15389)
- ๐Ÿ” fix: Keep OpenID Metadata Out of Logs and Traces by [@danny-avila](/danny-avila) in [#15470](/danny-avila/LibreChat/pull/15470)
- ๐ŸŽ–๏ธ fix: Apply Fallback Role on Group Overage by [@danny-avila](/danny-avila) in [#15472](/danny-avila/LibreChat/pull/15472)
- ๐Ÿ›„ fix: Reclaim Pending MCP OAuth Prompts on Resume by [@danny-avila](/danny-avila) in [#15471](/danny-avila/LibreChat/pull/15471)
- ๐Ÿšฎ fix: Replace Backtracking LangChain Error Regexes by [@danny-avila](/danny-avila) in [#15473](/danny-avila/LibreChat/pull/15473)
- ๐Ÿงซ fix: Contain Detached Tool Output by [@danny-avila](/danny-avila) in [#15476](/danny-avila/LibreChat/pull/15476)
- ๐Ÿ—ฟ fix: Bound Background Task Retention by [@danny-avila](/danny-avila) in [#15477](/danny-avila/LibreChat/pull/15477)
- ๐Ÿงถ fix: Preserve Multi-Agent Tool Call History by [@danny-avila](/danny-avila) in [#15468](/danny-avila/LibreChat/pull/15468)
- ๐Ÿงฒ fix: Anchor Memory Partitions to Accessible Agents by [@danny-avila](/danny-avila) in [#15475](/danny-avila/LibreChat/pull/15475)
- ๐Ÿซฅ fix: Clear Hidden MCP Chat Selections by [@danny-avila](/danny-avila) in [#14159](/danny-avila/LibreChat/pull/14159)
- ๐Ÿ”‘ fix: Decode Action OAuth Credentials After Decryption by [@lidonius1122](/lidonius1122) in [#14698](/danny-avila/LibreChat/pull/14698)
- ๐Ÿ›ž fix: Roll Overflow Tenant Labels Into Aggregate Metrics by [@danny-avila](/danny-avila) in [#15474](/danny-avila/LibreChat/pull/15474)
- ๐Ÿšง fix: Narrow Chat MCP Selections to What the Picker May Offer by [@danny-avila](/danny-avila) in [#15478](/danny-avila/LibreChat/pull/15478)
- ๐Ÿ”Ž fix: Respect Search Page Limits in MeiliSearch Queries by [@csdivad](/csdivad) in [#15482](/danny-avila/LibreChat/pull/15482)
- ๐Ÿงณ fix: Carry Custom Endpoint Names Through Chat URLs by [@abhishekbiswas772](/abhishekbiswas772) in [#15424](/danny-avila/LibreChat/pull/15424)
- ๐Ÿ” fix: Include Message-Matched Conversations in Sidebar Search by [@csdivad](/csdivad) in [#15483](/danny-avila/LibreChat/pull/15483)
- ๐Ÿ”„ fix: Reindex MeiliSearch Documents After Indexed-Projection Changes by [@csdivad](/csdivad) in [#15484](/danny-avila/LibreChat/pull/15484)
- ๐Ÿงถ fix: Untangle Parallel Subagent Descriptor Paths by [@danny-avila](/danny-avila) in [#15492](/danny-avila/LibreChat/pull/15492)
- ๐Ÿšข fix: Reconnect Keyv Redis After Replica Failover by [@danny-avila](/danny-avila) in [#15502](/danny-avila/LibreChat/pull/15502)
- ๐Ÿซฑ fix: Keep Polling Through Queued Run Handoffs by [@danny-avila](/danny-avila) in [#15509](/danny-avila/LibreChat/pull/15509)
- ๐Ÿ›‘ fix: Forward Run Abort Signal to Foreground Tool Calls by [@danny-avila](/danny-avila) in [#15517](/danny-avila/LibreChat/pull/15517)
- ๐Ÿซ™ fix: Drop Blank Content Blocks From Promptless Sends by [@danny-avila](/danny-avila) in [#15530](/danny-avila/LibreChat/pull/15530)

### ๐Ÿ”ง Refactoring and Performance

- ๐Ÿ›ซ refactor: Promote Generation Protocol V2 Automatically by [@danny-avila](/danny-avila) in [#15324](/danny-avila/LibreChat/pull/15324)
- ๐ŸŽ  refactor: Route Every Event Actor Turn Through One Lifecycle by [@danny-avila](/danny-avila) in [#15325](/danny-avila/LibreChat/pull/15325)
- ๐Ÿชฉ style: Shimmer Live Reasoning Labels and Timers by [@danny-avila](/danny-avila) in [#15431](/danny-avila/LibreChat/pull/15431)
- โœ”๏ธ style: Anchor the Applied Steer Receipt and Name Tool Calls in Its Interrupt Copy by [@danny-avila](/danny-avila) in [#15450](/danny-avila/LibreChat/pull/15450)
- ๐Ÿงต refactor: Give the Subagent Panel One Composer and Main Chat's Metrics by [@danny-avila](/danny-avila) in [#15436](/danny-avila/LibreChat/pull/15436)
- ๐Ÿ† perf: Build Dev Branch Images on Native ARM and Cheapen Asset Brotli by [@danny-avila](/danny-avila) in [#15441](/danny-avila/LibreChat/pull/15441)

- โ™ป๏ธ refactor: Compute Context Gauge Client-Side, Drop Projection Endpoint by [@danny-avila](/danny-avila) in [#13953](/danny-avila/LibreChat/pull/13953)
- ๐Ÿชฃ refactor: Rate-Limit Token Routes and Cap Remote File Downloads by [@danny-avila](/danny-avila) in [#13978](/danny-avila/LibreChat/pull/13978)
- ๐Ÿฆฅ perf: Lazy-Load Agent Version History in Editor by [@danny-avila](/danny-avila) in [#13977](/danny-avila/LibreChat/pull/13977)
- ๐Ÿ›— perf: Fetch Pinned Agents Directly Past the Global Agents Map by [@danny-avila](/danny-avila) in [#13972](/danny-avila/LibreChat/pull/13972)
- โšก perf: memoize FavoritesList and BookmarkNav to prevent re-renders during streaming by [@berry-13](/berry-13) in [#14011](/danny-avila/LibreChat/pull/14011)
- ๐Ÿ—บ๏ธ refactor: Light Up In-Viewport Ribs at Rest in Message Nav by [@danny-avila](/danny-avila) in [#14041](/danny-avila/LibreChat/pull/14041)
- โšก perf: Minimize group membership query in principal resolution by [@danny-avila](/danny-avila) in [#14055](/danny-avila/LibreChat/pull/14055)
- โšก perf: Skip Role Route Capability Probe for Own and Default Roles by [@danny-avila](/danny-avila) in [#14073](/danny-avila/LibreChat/pull/14073)
- ๐Ÿชญ refactor: safe structured failure logging for langfuse fanout gateway by [@upman](/upman) in [#14050](/danny-avila/LibreChat/pull/14050)
- ๐Ÿ“‰ perf: Skip Redundant Permission Queries on MCP Servers List by [@danny-avila](/danny-avila) in [#14077](/danny-avila/LibreChat/pull/14077)
- โšก perf: Persist HITL checkpoints only on pause (lazy checkpointer) by [@danny-avila](/danny-avila) in [#14024](/danny-avila/LibreChat/pull/14024)
- ๐Ÿ—ƒ๏ธ perf: Cache Group Memberships for ACL Principal Resolution by [@danny-avila](/danny-avila) in [#14075](/danny-avila/LibreChat/pull/14075)
- โš™๏ธ perf: reduce first-load MongoDB round trips by [@upman](/upman) in [#14101](/danny-avila/LibreChat/pull/14101)
- ๐ŸŽฏ style: Center Scroll-to-Bottom Rib in Message Nav Rail by [@danny-avila](/danny-avila) in [#14151](/danny-avila/LibreChat/pull/14151)
- ๐Ÿ“‰ perf: cache OpenID JWT user documents by [@upman](/upman) in [#14187](/danny-avila/LibreChat/pull/14187)
- ๐Ÿ“‰ perf: start message queries before file map loads by [@upman](/upman) in [#14188](/danny-avila/LibreChat/pull/14188)
- ๐Ÿชœ style: Adjust rib dimensions and button sizes in `MessageNav` by [@danny-avila](/danny-avila) in [#14234](/danny-avila/LibreChat/pull/14234)
- ๐Ÿชœ style: Center scroll-to-bottom marker in MessageNav by [@danny-avila](/danny-avila) in [#14238](/danny-avila/LibreChat/pull/14238)
- ๐Ÿ›ž style: Reveal the Steered "?" on Message Hover/Focus by [@danny-avila](/danny-avila) in [#14271](/danny-avila/LibreChat/pull/14271)
- ๐Ÿ™Š refactor: Clarify Ask Question Schema Errors and Retry Guidance by [@danny-avila](/danny-avila) in [#14279](/danny-avila/LibreChat/pull/14279)
- ๐Ÿ’ฌ refactor: Anchor In-Flight Steers Above the Composer by [@danny-avila](/danny-avila) in [#14308](/danny-avila/LibreChat/pull/14308)
- โšก perf: Halve Per-Delta Redis Round Trips in Resumable Streams by [@danny-avila](/danny-avila) in [#14313](/danny-avila/LibreChat/pull/14313)
- ๐Ÿงญ refactor: `web_search` Description on When To Search vs Answer Directly by [@joshbla](/joshbla) in [#13930](/danny-avila/LibreChat/pull/13930)
- ๐Ÿงท perf: Stabilize Mutation-Dependent Memos in Chat Hooks by [@danny-avila](/danny-avila) in [#14328](/danny-avila/LibreChat/pull/14328)
- ๐Ÿšฐ perf: Suppress No-Op Conversation Writes and Widen-Proof Atom Subscriptions by [@danny-avila](/danny-avila) in [#14329](/danny-avila/LibreChat/pull/14329)
- ๐Ÿ” refactor: Surface primary OpenID JWT failure reason in auth failure log by [@danny-avila](/danny-avila) in [#14346](/danny-avila/LibreChat/pull/14346)
- ๐Ÿงญ perf: Warm Conversation Switches with Single-Navigation Focus Intent by [@danny-avila](/danny-avila) in [#14334](/danny-avila/LibreChat/pull/14334)
- ๐Ÿงน perf: Share Voices Store, Gate Timestamp Ticker, Stabilize Greeting Springs by [@danny-avila](/danny-avila) in [#14335](/danny-avila/LibreChat/pull/14335)
- ๐ŸŽž๏ธ perf: Coalesce Streaming Delta Cache Writes Per Animation Frame by [@danny-avila](/danny-avila) in [#14332](/danny-avila/LibreChat/pull/14332)
- ๐ŸŽ›๏ธ perf: Narrow Composer Subscriptions to Streaming State by [@danny-avila](/danny-avila) in [#14333](/danny-avila/LibreChat/pull/14333)
- ๐Ÿงฌ perf: Memoize Message Spine and Isolate Scroll-Button State by [@danny-avila](/danny-avila) in [#14330](/danny-avila/LibreChat/pull/14330)
- ๐ŸชŸ perf: Virtualize Search Results and Stop the Per-Query Remount by [@danny-avila](/danny-avila) in [#14352](/danny-avila/LibreChat/pull/14352)
- โšก perf: Reduce Agent Chat Startup Latency by [@danny-avila](/danny-avila) in [#14423](/danny-avila/LibreChat/pull/14423)
- ๐Ÿ’ฌ refactor: Raise `ask_user_question` Option Label Cap to 280 Chars by [@danny-avila](/danny-avila) in [#14491](/danny-avila/LibreChat/pull/14491)
- ๐Ÿชข refactor: Move Agent Execution Seam Before Initialization by [@danny-avila](/danny-avila) in [#14581](/danny-avila/LibreChat/pull/14581)
- ๐Ÿ“‰ perf: Bound Early Event Buffering for Detached Generations by [@danny-avila](/danny-avila) in [#14612](/danny-avila/LibreChat/pull/14612)
- ๐ŸŽจ refactor: adopt the `@librechat/client` design system (semantic color tokens + component migration) by [@berry-13](/berry-13) in [#13879](/danny-avila/LibreChat/pull/13879)
- ๐Ÿงฉ refactor: Shared UI Design System Tokens by [@danny-avila](/danny-avila) in [#14670](/danny-avila/LibreChat/pull/14670)
- โšก perf: Agent List and Model Selector at Scale by [@berry-13](/berry-13) in [#14601](/danny-avila/LibreChat/pull/14601)
- ๐Ÿงญ refactor: make the side panels behave the same way by [@berry-13](/berry-13) in [#14695](/danny-avila/LibreChat/pull/14695)
- ๐Ÿซง refactor: Fading Pre-Response Dot, Legacy Cursor CSS Removed by [@danny-avila](/danny-avila) in [#14772](/danny-avila/LibreChat/pull/14772)
- ๐Ÿงฑ refactor: Require Broad Config Management for Base Field Mutations by [@danny-avila](/danny-avila) in [#14775](/danny-avila/LibreChat/pull/14775)
- ๐Ÿ–๏ธ refactor: Typed Console Colors and Hardened Script Helpers by [@danny-avila](/danny-avila) in [#14778](/danny-avila/LibreChat/pull/14778)
- ๐Ÿงฑ refactor: Make Activity Phase Anchor Construction Exhaustive by [@danny-avila](/danny-avila) in [#14805](/danny-avila/LibreChat/pull/14805)
- ๐Ÿงญ refactor: Resolve Activity Phase Position Once Per Boundary by [@danny-avila](/danny-avila) in [#14807](/danny-avila/LibreChat/pull/14807)
- ๐Ÿงฉ refactor: Extend Step Status To Remaining Cards; Separate Cancelled From Failed by [@danny-avila](/danny-avila) in [#14873](/danny-avila/LibreChat/pull/14873)
- ๐ŸŽฏ refactor: Infer Agents Endpoint for Model Specs Naming an Agent by [@danny-avila](/danny-avila) in [#14889](/danny-avila/LibreChat/pull/14889)
- โšก perf: Flip the Pinned Flag Without a Full Conversation Save by [@berry-13](/berry-13) in [#14862](/danny-avila/LibreChat/pull/14862)
- โšก perf: Optimize First Load of Large Conversations by [@danny-avila](/danny-avila) in [#14901](/danny-avila/LibreChat/pull/14901)
- ๐Ÿท๏ธ refactor: Keep Agent Conversations From Revealing Model Labels by [@danny-avila](/danny-avila) in [#14909](/danny-avila/LibreChat/pull/14909)
- ๐Ÿฅš refactor: Default Agents to Preferred Stateful Workspace Scope by [@danny-avila](/danny-avila) in [#14908](/danny-avila/LibreChat/pull/14908)
- ๐Ÿ“ฑ perf: Instant Mobile View Switching + Uniform Sidebar Toggle by [@danny-avila](/danny-avila) in [#14913](/danny-avila/LibreChat/pull/14913)
- ๐Ÿงฉ refactor: Resolve Tool-Card State Once by [@danny-avila](/danny-avila) in [#14934](/danny-avila/LibreChat/pull/14934)
- โœจ refactor: Presets, Skills Motion and Model Selector Polish by [@berry-13](/berry-13) in [#14953](/danny-avila/LibreChat/pull/14953)
- ๐Ÿงฒ refactor: Consolidate Claude Prompt Cache and Context Checks by [@danny-avila](/danny-avila) in [#15008](/danny-avila/LibreChat/pull/15008)
- ๐Ÿ”Œ refactor: Extract Git Repository Adapter From Skill Sync by [@danny-avila](/danny-avila) in [#15052](/danny-avila/LibreChat/pull/15052)
- ๐Ÿ”€ perf: Swap the Transcript With the URL on Conversation Switch by [@danny-avila](/danny-avila) in [#15054](/danny-avila/LibreChat/pull/15054)
- โšก perf: Warm Feature Catalogs in the Background After First Paint by [@berry-13](/berry-13) in [#15047](/danny-avila/LibreChat/pull/15047)
- ๐Ÿ‡ refactor: Decouple Meilisearch From Document Saves by [@danny-avila](/danny-avila) in [#15109](/danny-avila/LibreChat/pull/15109)
- ๐Ÿงฎ perf: Enable Agent Context Count Reuse by [@danny-avila](/danny-avila) in [#15130](/danny-avila/LibreChat/pull/15130)
- โšก perf: Cut Serial Round Trips and a 100ms Admission Stall from Chat Turns by [@danny-avila](/danny-avila) in [#15138](/danny-avila/LibreChat/pull/15138)
- โšก perf: Append Saved Message Ids Instead of Rebuilding the Conversation Array by [@danny-avila](/danny-avila) in [#15141](/danny-avila/LibreChat/pull/15141)
- โšก perf: Plain-JSON Memory Cache and an Idle Backoff for the Trigger Poll by [@danny-avila](/danny-avila) in [#15144](/danny-avila/LibreChat/pull/15144)
- โšก perf: Build the Memory Message Copy Only When Something Reads It by [@danny-avila](/danny-avila) in [#15164](/danny-avila/LibreChat/pull/15164)
- ๐Ÿ–ผ๏ธ refactor: Consolidate Provider Icons Into a Single Registry by [@berry-13](/berry-13) in [#15148](/danny-avila/LibreChat/pull/15148)
- ๐Ÿ‡ perf: Bound MCP Agent Access Scan by MCP Referencing Agents and Share the Read-Through Cache by [@berry-13](/berry-13) in [#15028](/danny-avila/LibreChat/pull/15028)
- โšก perf: Avoid Parallel Full and Paged Prompt Loading on Startup by [@berry-13](/berry-13) in [#15031](/danny-avila/LibreChat/pull/15031)
- ๐ŸŽŸ๏ธ refactor: Require Credentials for Local Image Access by Default by [@danny-avila](/danny-avila) in [#15252](/danny-avila/LibreChat/pull/15252)
- ๐Ÿ”‡ refactor: Quiet Framework Logging in Unit Tests by [@danny-avila](/danny-avila) in [#15363](/danny-avila/LibreChat/pull/15363)
- ๐ŸŽป refactor: Orchestrate Agent Runs Through a Request-Free Host by [@danny-avila](/danny-avila) in [#15366](/danny-avila/LibreChat/pull/15366)
- ๐Ÿงฌ perf: Evolve Compaction Guidance on Warm Turns by [@danny-avila](/danny-avila) in [#15371](/danny-avila/LibreChat/pull/15371)
- ๐Ÿ•ฏ๏ธ style: Settle the Applied Steer Receipt Once the Response Is Done by [@danny-avila](/danny-avila) in [#15377](/danny-avila/LibreChat/pull/15377)
- ๐Ÿ”Œ refactor: Give the Subagent Surface a Host Seam and Its Own Jotai State by [@danny-avila](/danny-avila) in [#15455](/danny-avila/LibreChat/pull/15455)

### ๐Ÿงช Tests

- ๐Ÿ“ test: Guard Web Search Description Length by [@danny-avila](/danny-avila) in [#14044](/danny-avila/LibreChat/pull/14044)
- ๐Ÿ›‚ test: Cover Tool Approval Workflows End to End by [@danny-avila](/danny-avila) in [#14427](/danny-avila/LibreChat/pull/14427)
- ๐Ÿงญ test: Cover Agent Handoffs End to End by [@danny-avila](/danny-avila) in [#14428](/danny-avila/LibreChat/pull/14428)
- ๐Ÿงช test: Reasoning-Stream Render Perf Benchmark via react-scan by [@danny-avila](/danny-avila) in [#14494](/danny-avila/LibreChat/pull/14494)
- ๐ŸŽ›๏ธ test: Guard Multi-Steer Injection Across Tool Boundaries by [@danny-avila](/danny-avila) in [#14498](/danny-avila/LibreChat/pull/14498)
- ๐Ÿงช test: Run mock E2E against Redis in shards by [@danny-avila](/danny-avila) in [#14551](/danny-avila/LibreChat/pull/14551)
- ๐ŸŽฒ test: Replace Microtask Timing Assumptions in Client Specs by [@berry-13](/berry-13) in [#14653](/danny-avila/LibreChat/pull/14653)
- ๐Ÿ˜ test: refresh FerretDB harness, registry-derived models, bulkWrite coverage by [@danny-avila](/danny-avila) in [#14679](/danny-avila/LibreChat/pull/14679)
- test(mcp): mock static tool startup sync by [@danny-avila](/danny-avila) in [#14711](/danny-avila/LibreChat/pull/14711)
- ๐Ÿงช test(e2e): add Bombadil property exploration by [@upman](/upman) in [#14462](/danny-avila/LibreChat/pull/14462)
- ๐Ÿงพ test: Pin the Transactions Config Wiring on the Fallback Path by [@danny-avila](/danny-avila) in [#14779](/danny-avila/LibreChat/pull/14779)
- โฒ๏ธ test: Give ServerConfigsDB Mongo Hooks a 60s Timeout Budget by [@danny-avila](/danny-avila) in [#14831](/danny-avila/LibreChat/pull/14831)
- ๐Ÿ›ฐ๏ธ test: Prove Cross-Replica Subagent Delivery by [@danny-avila](/danny-avila) in [#15064](/danny-avila/LibreChat/pull/15064)
- ๐ŸŽฌ test: Cover Detached Subagent Activity Lifecycle by [@danny-avila](/danny-avila) in [#15117](/danny-avila/LibreChat/pull/15117)
- ๐Ÿงซ test: Lock Subagent File Context Propagation by [@danny-avila](/danny-avila) in [#15126](/danny-avila/LibreChat/pull/15126)
- โฑ๏ธ test: Stabilize Meilisearch Retry Cleanup Assertion by [@danny-avila](/danny-avila) in [#15129](/danny-avila/LibreChat/pull/15129)
- โฑ๏ธ test: Make Active Item Observer Assertions Deterministic by [@berry-13](/berry-13) in [#15147](/danny-avila/LibreChat/pull/15147)
- ๐ŸŽฌ test: Record-Once/Replay-Forever Model Fixtures for Mock E2E by [@danny-avila](/danny-avila) in [#15210](/danny-avila/LibreChat/pull/15210)
- ๐Ÿƒ test: Sweep Every DB Schema Method Against a Live Engine by [@danny-avila](/danny-avila) in [#15392](/danny-avila/LibreChat/pull/15392)
- ๐Ÿชข test: Prove MCP OAuth Resume End to End by [@danny-avila](/danny-avila) in [#15485](/danny-avila/LibreChat/pull/15485)
- ๐Ÿ—œ test: Clamp Recursive Child Inputs to Builder Types by [@danny-avila](/danny-avila) in [#15498](/danny-avila/LibreChat/pull/15498)
- ๐Ÿ“ฑ test: Add Mobile Chat Performance Benchmark by [@danny-avila](/danny-avila) in [#15510](/danny-avila/LibreChat/pull/15510)

### ๐Ÿ“ฆ Dependencies, Chores & CI

- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.2.52 by [@danny-avila](/danny-avila) in [#13939](/danny-avila/LibreChat/pull/13939)
- โฌ†๏ธ chore: Migrate off deprecated @ariakit/react-core to @ariakit/react-components by [@danny-avila](/danny-avila) in [#13940](/danny-avila/LibreChat/pull/13940)
- ๐Ÿงช ci: Resolve DataTable test infinite re-render by [@danny-avila](/danny-avila) in [#13947](/danny-avila/LibreChat/pull/13947)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.2.54 by [@danny-avila](/danny-avila) in [#14035](/danny-avila/LibreChat/pull/14035)
- ๐Ÿ”„ chore: Bump `@librechat/agents` to v3.2.55 by [@danny-avila](/danny-avila) in [`954caef3a3`](/danny-avila/LibreChat/commit/954caef3a35dabec2e5d5b56ae78ea5349c4721f)
- ๐Ÿงช ci: De-flake ConversationsSection Memoization Spec on Slow Runners by [@danny-avila](/danny-avila) in [#14071](/danny-avila/LibreChat/pull/14071)
- ๐Ÿงท chore: Expose Retain Recent Summarization Config by [@danny-avila](/danny-avila) in [#14134](/danny-avila/LibreChat/pull/14134)
- ๐Ÿ“ฆ chore: bump langfuse fanout Go dependencies by [@upman](/upman) in [#14126](/danny-avila/LibreChat/pull/14126)
- โญ docs: update Star History section by [@berry-13](/berry-13) in [#14198](/danny-avila/LibreChat/pull/14198)
- ๐Ÿ“ฆ chore: Update `@librechat/agents` to v3.2.62 by [@danny-avila](/danny-avila) in [#14235](/danny-avila/LibreChat/pull/14235)
- ๐Ÿ“ฆ chore: Update `@librechat/agents` to v3.2.65 by [@danny-avila](/danny-avila) in [#14263](/danny-avila/LibreChat/pull/14263)
- ๐Ÿงน chore: Prune Dangling Images After deployed-update Pull by [@danny-avila](/danny-avila) in [#14269](/danny-avila/LibreChat/pull/14269)
- ๐Ÿฝ๏ธ chore: Drop Pending Composer Draft When Steering or Queuing by [@danny-avila](/danny-avila) in [#14289](/danny-avila/LibreChat/pull/14289)
- ๐Ÿงฉ chore: Prebundle Node Polyfills for Buffer, Process, and Global in Vite `optimizeDeps` by [@danny-avila](/danny-avila) in [#14354](/danny-avila/LibreChat/pull/14354)
- ๐Ÿ“ฆ chore: Update `@librechat/agents` to v3.2.66 & `npm audit fix` by [@danny-avila](/danny-avila) in [#14361](/danny-avila/LibreChat/pull/14361)
- ๐Ÿงพ ci: Skip Workflows for Markdown-Only Changes by [@danny-avila](/danny-avila) in [#14378](/danny-avila/LibreChat/pull/14378)
- ๐Ÿ“ฆ chore: Update `@librechat/agents` to v3.2.68 by [@danny-avila](/danny-avila) in [#14380](/danny-avila/LibreChat/pull/14380)
- ๐Ÿšฆ ci: Gate Playwright Runs to Maintainers by [@danny-avila](/danny-avila) in [#14385](/danny-avila/LibreChat/pull/14385)
- ๐ŸŽญ ci: Scope Playwright Runs to Relevant Changes by [@danny-avila](/danny-avila) in [#14388](/danny-avila/LibreChat/pull/14388)
- ๐Ÿƒ chore: Bump Mongoose to 8.24.1 to Patch Prototype Pollution by [@danny-avila](/danny-avila) in [#14461](/danny-avila/LibreChat/pull/14461)
- ๐Ÿ—บ๏ธ chore: Bump PostCSS to 8.5.18 to Patch Source Map Traversal by [@danny-avila](/danny-avila) in [#14463](/danny-avila/LibreChat/pull/14463)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.3.4 by [@danny-avila](/danny-avila) in [#14482](/danny-avila/LibreChat/pull/14482)
- ๐Ÿ‚ chore: Prune Deprecated Packages From the Dependency Tree by [@danny-avila](/danny-avila) in [#14483](/danny-avila/LibreChat/pull/14483)
- ๐ŸŒฏ chore: Retire Rollup-Era devDependencies After tsdown Migration by [@danny-avila](/danny-avila) in [#14496](/danny-avila/LibreChat/pull/14496)
- ๐Ÿ“ฆ chore: Bump @librechat/agents to v3.3.5 by [@danny-avila](/danny-avila) in [#14506](/danny-avila/LibreChat/pull/14506)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.3.8 by [@danny-avila](/danny-avila) in [#14525](/danny-avila/LibreChat/pull/14525)
- ๐Ÿงช chore: Add the Activity-Label Prose Eval Harness by [@danny-avila](/danny-avila) in [#14527](/danny-avila/LibreChat/pull/14527)
- ๐ŸŸฆ chore: Convert Activity-Label Eval Harness to TypeScript by [@danny-avila](/danny-avila) in [#14530](/danny-avila/LibreChat/pull/14530)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.3.9 by [@danny-avila](/danny-avila) in [#14548](/danny-avila/LibreChat/pull/14548)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.3.11 by [@danny-avila](/danny-avila) in [#14562](/danny-avila/LibreChat/pull/14562)
- ๐Ÿ“ฆ chore: update `sanitize-html` to latest by [@danny-avila](/danny-avila) in [#14573](/danny-avila/LibreChat/pull/14573)
- ๐ŸŒ€ ci: Deterministic Circular Dependency Checks by [@danny-avila](/danny-avila) in [#14579](/danny-avila/LibreChat/pull/14579)
- ๐Ÿ”’ chore: Upgrade react-router-dom to v7.18.2 (security) by [@danny-avila](/danny-avila) in [#14582](/danny-avila/LibreChat/pull/14582)
- ๐Ÿงช ci: Settle to render-idle before ConversationsSection memo baselines by [@danny-avila](/danny-avila) in [#14590](/danny-avila/LibreChat/pull/14590)
- ๐Ÿงน chore: Migrate Legacy Duplicate Code Files Blocking Dedupe Index by [@danny-avila](/danny-avila) in [#14593](/danny-avila/LibreChat/pull/14593)
- ๐Ÿ“ฆ chore: npm audit by [@danny-avila](/danny-avila) in [#14640](/danny-avila/LibreChat/pull/14640)
- ๐Ÿ›ฐ๏ธ chore: bump `@librechat/agents` to v3.4.0, cover streamed subagent results e2e by [@danny-avila](/danny-avila) in [#14647](/danny-avila/LibreChat/pull/14647)
- ๐Ÿซ† chore: Remove Published Credential Defaults by [@danny-avila](/danny-avila) in [#14680](/danny-avila/LibreChat/pull/14680)
- ๐Ÿ‹ chore: add opt-in alternative local stack experiments by [@danny-avila](/danny-avila) in [#14678](/danny-avila/LibreChat/pull/14678)
- โš™๏ธ ci: Bump GitHub Actions to Node.js 24 Runtimes by [@berry-13](/berry-13) in [#14689](/danny-avila/LibreChat/pull/14689)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.4.2 and `npm audit` by [@danny-avila](/danny-avila) in [#14702](/danny-avila/LibreChat/pull/14702)
- ๐Ÿšฆ ci: Reduce GitHub Actions Runner Pressure by [@berry-13](/berry-13) in [#14716](/danny-avila/LibreChat/pull/14716)
- ๐Ÿงฉ ci: Close Workflow Path-Filter Gaps by [@danny-avila](/danny-avila) in [#14728](/danny-avila/LibreChat/pull/14728)
- ๐Ÿ›ป ci: Move the ESLint Config Sweep Into Its Own Job by [@danny-avila](/danny-avila) in [#14742](/danny-avila/LibreChat/pull/14742)
- ๐Ÿงท ci: Enforce Durable Agent Finalization for E2E tests by [@danny-avila](/danny-avila) in [#14740](/danny-avila/LibreChat/pull/14740)
- ๐Ÿชถ chore: Aggregate Empty MCP Tool Logs by [@danny-avila](/danny-avila) in [#14767](/danny-avila/LibreChat/pull/14767)
- ๐Ÿ“ฆ chore: Update `@librechat/agents` to v3.4.6 by [@danny-avila](/danny-avila) in [#14781](/danny-avila/LibreChat/pull/14781)
- ๐ŸŒ ci: Harden Locize Translation Sync by [@danny-avila](/danny-avila) in [#14784](/danny-avila/LibreChat/pull/14784)
- ๐Ÿ”Œ chore: Bump the MCP SDK to 1.30.0 and Parse Content-Type Instead of Searching It by [@danny-avila](/danny-avila) in [#14820](/danny-avila/LibreChat/pull/14820)
- ci: gate the e2e activity-phase DOM assertions on the persisted phase by [@danny-avila](/danny-avila) in [#14821](/danny-avila/LibreChat/pull/14821)
- ๐Ÿš€ chore: Prepare v0.8.8-rc1 by [@danny-avila](/danny-avila) in [#14394](/danny-avila/LibreChat/pull/14394)
- ๐Ÿงน ci: Remove Obsolete Test Server Workflow by [@danny-avila](/danny-avila) in [#14823](/danny-avila/LibreChat/pull/14823)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.5.1 by [@danny-avila](/danny-avila) in [#14830](/danny-avila/LibreChat/pull/14830)
- ๐ŸŽ๏ธ ci: Focus Redis E2E Coverage by [@danny-avila](/danny-avila) in [#14842](/danny-avila/LibreChat/pull/14842)
- ๐Ÿ‘ท ci: Stop Optional Playwright Fonts From Failing E2E by [@danny-avila](/danny-avila) in [#14852](/danny-avila/LibreChat/pull/14852)
- ๐Ÿ›‚ ci: Grant Multi-Convo Permission in E2E Mock Config by [@danny-avila](/danny-avila) in [#14839](/danny-avila/LibreChat/pull/14839)
- โš“ ci: Settle the E2E Reply Before the Double-Click Quote by [@danny-avila](/danny-avila) in [#14840](/danny-avila/LibreChat/pull/14840)
- โฌ†๏ธ chore: Bump `@librechat/agents` to v3.6.0 by [@danny-avila](/danny-avila) in [#14890](/danny-avila/LibreChat/pull/14890)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.6.2 by [@danny-avila](/danny-avila) in [#14905](/danny-avila/LibreChat/pull/14905)
- โฑ๏ธ ci: Give the E2E Redis Transport Lane Its Own Timing Budget by [@danny-avila](/danny-avila) in [#14907](/danny-avila/LibreChat/pull/14907)
- ๐Ÿงญ fix: Repair Locize Translation Validation by [@danny-avila](/danny-avila) in [#14911](/danny-avila/LibreChat/pull/14911)
- ๐Ÿ›ก๏ธ fix: Validate Translation Contracts Against English by [@danny-avila](/danny-avila) in [#14914](/danny-avila/LibreChat/pull/14914)
- ๐Ÿ”ญ ci: Codegraph Test-Selection Probe (Observe-Only) by [@danny-avila](/danny-avila) in [#14936](/danny-avila/LibreChat/pull/14936)
- ๐Ÿฉน ci: Codegraph Probe Summary Rendering by [@danny-avila](/danny-avila) in [#14942](/danny-avila/LibreChat/pull/14942)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.6.3 by [@danny-avila](/danny-avila) in [#14941](/danny-avila/LibreChat/pull/14941)
- ๐Ÿ—ณ๏ธ ci: Codegraph E2E Vote Runs on Dev Merges (Observe-Only) by [@danny-avila](/danny-avila) in [#14947](/danny-avila/LibreChat/pull/14947)
- ๐Ÿฉน ci: Quote Colon in Codegraph Votes Workflow (Invalid YAML) by [@danny-avila](/danny-avila) in [#14952](/danny-avila/LibreChat/pull/14952)
- ๐Ÿ—ณ๏ธ ci: Vote on Fail-Open Merges Too (Tiers Are Bridge-Derived) by [@danny-avila](/danny-avila) in [#14969](/danny-avila/LibreChat/pull/14969)
- ๐Ÿช™ chore: GPT-5.6 Terra and Luna Token Cost Rates by [@afuetterer](/afuetterer) in [#14964](/danny-avila/LibreChat/pull/14964)
- ๐Ÿงฏ ci: Disarm the Graceful-Shutdown Force-Exit Timer on Test Reset by [@danny-avila](/danny-avila) in [#14972](/danny-avila/LibreChat/pull/14972)
- ๐Ÿชข ci: Prevent Playwright Apt Lock Leakage by [@danny-avila](/danny-avila) in [#14993](/danny-avila/LibreChat/pull/14993)
- ๐Ÿšš chore: Bump `@librechat/agents` to v3.6.8 For Token, Trace, and Stream Fixes by [@danny-avila](/danny-avila) in [#15012](/danny-avila/LibreChat/pull/15012)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.6.9 by [@danny-avila](/danny-avila) in [#15037](/danny-avila/LibreChat/pull/15037)
- ๐Ÿ“ docs: Make CLAUDE.md Portable and Restore AGENTS.md Parity by [@alebgl77](/alebgl77) in [#15046](/danny-avila/LibreChat/pull/15046)
- ๐ŸŽž๏ธ ci: Fix Playwright ffmpeg Install Hang and Cache the Download by [@danny-avila](/danny-avila) in [#15065](/danny-avila/LibreChat/pull/15065)
- ๐Ÿงฌ chore: Upgrade Redis Dependencies to Dodge the ElastiCache BigInt Cursor by [@danny-avila](/danny-avila) in [#15068](/danny-avila/LibreChat/pull/15068)
- ๐Ÿช™ chore: Update GPT-5.6 Sol Token Cost Rates by [@usnavy13](/usnavy13) in [#15114](/danny-avila/LibreChat/pull/15114)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.6.12 by [@danny-avila](/danny-avila) in [#15125](/danny-avila/LibreChat/pull/15125)
- ๐Ÿƒ ci: Cache MongoDB Memory-Server Binaries in Backend Test Jobs by [@danny-avila](/danny-avila) in [#15131](/danny-avila/LibreChat/pull/15131)
- โ›ฉ๏ธ ci: Gate Backend Jest on Codegraph Selection (Stage 1) by [@danny-avila](/danny-avila) in [#15132](/danny-avila/LibreChat/pull/15132)
- ๐Ÿ”ฅ chore: Bump `@librechat/agents` to v3.6.14 by [@danny-avila](/danny-avila) in [#15135](/danny-avila/LibreChat/pull/15135)
- ๐ŸŽญ ci: Gate Playwright Lanes and Docker Smokes on Codegraph Selection (Stage 2) by [@danny-avila](/danny-avila) in [#15136](/danny-avila/LibreChat/pull/15136)
- ๐Ÿงน chore: Sort Client Imports Left Behind by the Import Order Gate by [@berry-13](/berry-13) in [#15139](/danny-avila/LibreChat/pull/15139)
- ๐ŸŽ๏ธ chore: Bump `@librechat/agents` to v3.6.15 by [@danny-avila](/danny-avila) in [#15140](/danny-avila/LibreChat/pull/15140)
- ๐Ÿ—ณ๏ธ ci: Log the Exact Spec List in Codegraph E2E Votes by [@danny-avila](/danny-avila) in [#15143](/danny-avila/LibreChat/pull/15143)
- ๐ŸŽจ ci: Gate Frontend Jest on Codegraph Selection (Stage 1.5) by [@danny-avila](/danny-avila) in [#15145](/danny-avila/LibreChat/pull/15145)
- ๐Ÿงฉ chore: Bump Agents SDK to v3.6.16 by [@danny-avila](/danny-avila) in [#15151](/danny-avila/LibreChat/pull/15151)
- ๐Ÿฅธ chore: Resolve Agents SDK Path Aliases That Masked Backend Types by [@danny-avila](/danny-avila) in [#15160](/danny-avila/LibreChat/pull/15160)
- ๐Ÿ“ˆ chore: Bump Agents SDK to v3.7.0 by [@danny-avila](/danny-avila) in [#15163](/danny-avila/LibreChat/pull/15163)
- ๐ŸŽฐ ci: Vote on the Full Mock Suite to End Phantom Spec Trials by [@danny-avila](/danny-avila) in [#15162](/danny-avila/LibreChat/pull/15162)
- ๐Ÿ“ ci: Pin the Votes Ledger Results JSON to an Absolute Path by [@danny-avila](/danny-avila) in [#15166](/danny-avila/LibreChat/pull/15166)
- ๐ŸŽ“ ci: Graduated E2E Spec Skipping, Wired Dark Until Armed by [@danny-avila](/danny-avila) in [#15172](/danny-avila/LibreChat/pull/15172)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.7.1 by [@danny-avila](/danny-avila) in [#15176](/danny-avila/LibreChat/pull/15176)
- ๐ŸŽจ style: Set Question Popover and Subagent Panel on the Sidebar Surface by [@danny-avila](/danny-avila) in [#15201](/danny-avila/LibreChat/pull/15201)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.7.2 by [@danny-avila](/danny-avila) in [`6284139f18`](/danny-avila/LibreChat/commit/6284139f1816bfa54f108ba154c6e4a58f0e2a34)
- ๐Ÿ“ฆ chore: bump `axios` to v1.20.0, `@librechat/agents` to v3.7.4 by [@danny-avila](/danny-avila) in [#15285](/danny-avila/LibreChat/pull/15285)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.7.5 by [@danny-avila](/danny-avila) in [`ab2c0d5362`](/danny-avila/LibreChat/commit/ab2c0d5362e87eb1643598d71efd818f396af8d8)
- ๐Ÿชฅ chore: Run CI's Static Checks on Each Commit's Diff by [@danny-avila](/danny-avila) in [#15303](/danny-avila/LibreChat/pull/15303)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.7.8 by [@danny-avila](/danny-avila) in [#15337](/danny-avila/LibreChat/pull/15337)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.7.10 by [@danny-avila](/danny-avila) in [#15378](/danny-avila/LibreChat/pull/15378)
- ๐Ÿ”’ chore: bump `google.golang.org/grpc` to v1.82.2 (GHSA-hrxh-6v49-42gf) by [@danny-avila](/danny-avila) in [#15383](/danny-avila/LibreChat/pull/15383)
- ๐Ÿ“ฆ chore: bump `vite` to v8.2.2 by [@danny-avila](/danny-avila) in [#15384](/danny-avila/LibreChat/pull/15384)
- โœ๏ธ chore: Clarify That Interrupting a Steer Does Not Interrupt Reasoning by [@danny-avila](/danny-avila) in [#15386](/danny-avila/LibreChat/pull/15386)
- ๐Ÿงœโ€โ™€๏ธ chore: Bump `mermaid` to v11.17.2 and `dompurify` to v3.4.14 by [@danny-avila](/danny-avila) in [#15405](/danny-avila/LibreChat/pull/15405)
- ๐Ÿ“ฆ chore: Bump Packages from LibreChat SCA Audit by [@danny-avila](/danny-avila) in [#15410](/danny-avila/LibreChat/pull/15410)
- ๐Ÿ›— chore: Elevate `@librechat/agents` to 3.7.11 and `multer` to 2.3.0 by [@danny-avila](/danny-avila) in [#15409](/danny-avila/LibreChat/pull/15409)
- ๐Ÿ‘ ci: Cancel the Playwright E2E Gate With Its Run by [@danny-avila](/danny-avila) in [#15415](/danny-avila/LibreChat/pull/15415)
- ๐ŸŽฏ ci: Retarget Pull Requests Opened Against `main` to `dev` by [@danny-avila](/danny-avila) in [#15416](/danny-avila/LibreChat/pull/15416)
- ๐Ÿซ‚ ci: Unify Docker Image Publishing Workflows by [@danny-avila](/danny-avila) in [#15447](/danny-avila/LibreChat/pull/15447)
- ๐Ÿ—ฟ chore: Upgrade gRPC to Prevent Receive Buffer Exhaustion by [@danny-avila](/danny-avila) in [#15493](/danny-avila/LibreChat/pull/15493)
- ๐Ÿงด chore: Refresh Sanitizer and Selector Parser Dependencies by [@danny-avila](/danny-avila) in [#15494](/danny-avila/LibreChat/pull/15494)
- ๐Ÿช› chore: Align Vite Build Config With Native ESM by [@danny-avila](/danny-avila) in [#15495](/danny-avila/LibreChat/pull/15495)
- ๐Ÿ“ฆ chore: bump `@librechat/agents` to v3.7.17 by [@danny-avila](/danny-avila) in [#15531](/danny-avila/LibreChat/pull/15531), including [an upstream fix](/danny-avila/agents/pull/500) by [@dustinhealy](/dustinhealy) that propagates ambiguous context-window-or-output gateway errors without compacting conversation history

### ๐ŸŒ Internationalization

- ๐ŸŒ i18n: Update translation.json with latest translations by [@danny-avila](/danny-avila) in [#14053](/danny-avila/LibreChat/pull/14053)
- ๐ŸŒ i18n: Update translation.json with latest translations by [@danny-avila](/danny-avila) in [#14070](/danny-avila/LibreChat/pull/14070)
- ๐ŸŒ i18n: Localize Token Balance Error Message by [@Philipp-Voss](/Philipp-Voss) in [#14169](/danny-avila/LibreChat/pull/14169)
- ๐ŸŒ i18n: Update translation.json with latest translations by [@danny-avila](/danny-avila) in [#14266](/danny-avila/LibreChat/pull/14266)
- ๐ŸŒ i18n: Update translation.json with latest translations by [@danny-avila](/danny-avila) in [#14307](/danny-avila/LibreChat/pull/14307)
- ๐ŸŒ i18n: Update translation.json with latest translations by [@danny-avila](/danny-avila) in [#14376](/danny-avila/LibreChat/pull/14376)
- ๐ŸŒ i18n: Update translation.json with latest translations by [@danny-avila](/danny-avila) in [#14406](/danny-avila/LibreChat/pull/14406)
- ๐ŸŒ i18n: Update translation.json with latest translations by [@danny-avila](/danny-avila) in [#14460](/danny-avila/LibreChat/pull/14460)
- ๐ŸŒ i18n: Update translation.json with latest translations by [@danny-avila](/danny-avila) in [#14598](/danny-avila/LibreChat/pull/14598)
- ๐ŸŒ i18n: Update translation.json with latest translations by [@danny-avila](/danny-avila) in [#14739](/danny-avila/LibreChat/pull/14739)
- ๐ŸŒ chore: Restore English Localization Source Values by [@danny-avila](/danny-avila) in [#14743](/danny-avila/LibreChat/pull/14743)
- ๐ŸŒ i18n: Update translation.json with latest translations by [@github-actions](/apps/github-actions) in [#14919](/danny-avila/LibreChat/pull/14919)

## New Contributors

- [@alexkorep](/alexkorep) made their first contribution in [#14034](/danny-avila/LibreChat/pull/14034)
- [@jakacenta](/jakacenta) made their first contribution in [#14046](/danny-avila/LibreChat/pull/14046)
- [@Zirkonium88](/Zirkonium88) made their first contribution in [#13989](/danny-avila/LibreChat/pull/13989)
- [@arjunvijay24](/arjunvijay24) made their first contribution in [#14040](/danny-avila/LibreChat/pull/14040)
- [@mahirhir](/mahirhir) made their first contribution in [#13996](/danny-avila/LibreChat/pull/13996)
- [@Osamaali313](/Osamaali313) made their first contribution in [#13999](/danny-avila/LibreChat/pull/13999)
- [@Philipp-Voss](/Philipp-Voss) made their first contribution in [#14169](/danny-avila/LibreChat/pull/14169)
- [@VictorEPlus](/VictorEPlus) made their first contribution in [#14172](/danny-avila/LibreChat/pull/14172)
- [@adamscross04](/adamscross04) made their first contribution in [#14177](/danny-avila/LibreChat/pull/14177)
- [@manisrinivasan2k1](/manisrinivasan2k1) made their first contribution in [#14082](/danny-avila/LibreChat/pull/14082)
- [@jomspk](/jomspk) made their first contribution in [#14232](/danny-avila/LibreChat/pull/14232)
- [@jjhidalgar-celonis](/jjhidalgar-celonis) made their first contribution in [#14254](/danny-avila/LibreChat/pull/14254)
- [@Aho-Bakaa](/Aho-Bakaa) made their first contribution in [#14262](/danny-avila/LibreChat/pull/14262)
- [@joshbla](/joshbla) made their first contribution in [#13930](/danny-avila/LibreChat/pull/13930)
- [@unsnow-iac](/unsnow-iac) made their first contribution in [#14436](/danny-avila/LibreChat/pull/14436)
- [@schumajs](/schumajs) made their first contribution in [#14538](/danny-avila/LibreChat/pull/14538)
- [@cyphercodes](/cyphercodes) made their first contribution in [#14507](/danny-avila/LibreChat/pull/14507)
- [@likeabas](/likeabas) made their first contribution in [#14764](/danny-avila/LibreChat/pull/14764)
- [@jtodaroii](/jtodaroii) made their first contribution in [#14774](/danny-avila/LibreChat/pull/14774)
- [@lizzykerrigan](/lizzykerrigan) made their first contribution in [#14791](/danny-avila/LibreChat/pull/14791)
- [@mihidumh](/mihidumh) made their first contribution in [#14810](/danny-avila/LibreChat/pull/14810)
- [@snapydziuba](/snapydziuba) made their first contribution in [#14761](/danny-avila/LibreChat/pull/14761)
- [@jacksonriding](/jacksonriding) made their first contribution in [#14923](/danny-avila/LibreChat/pull/14923)
- [@afuetterer](/afuetterer) made their first contribution in [#14964](/danny-avila/LibreChat/pull/14964)
- [@putramkti](/putramkti) made their first contribution in [#14878](/danny-avila/LibreChat/pull/14878)
- [@alebgl77](/alebgl77) made their first contribution in [#15046](/danny-avila/LibreChat/pull/15046)
- [@pacocartones](/pacocartones) made their first contribution in [#15157](/danny-avila/LibreChat/pull/15157)
- [@AyushCipher](/AyushCipher) made their first contribution in [#15336](/danny-avila/LibreChat/pull/15336)
- [@alexsr1](/alexsr1) made their first contribution in [#15404](/danny-avila/LibreChat/pull/15404)

**Full Changelog**: [v0.8.7...v0.8.8-rc2](/danny-avila/LibreChat/compare/v0.8.7...v0.8.8-rc2)

</details>