v0.8.8-rc2
LibreChat-AI/LibreChatv0.8.8-rc2Sep 3, 2026by danny-avila
Upgrading?
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>
Related Repositories
The AI that really does things. Any OS. Any Platform. The lobster way. ๐ฆ
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
Reverse engineer anything with agents, from app behavior down to native binaries.
The open source coding agent.
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.