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>