v0.8.7-rc1
Pre-release
danny-avila/LibreChatv0.8.7-rc1Jun 15, 2026by danny-avila
AI Summary
This RC focuses on Access, Auth, and MCP hardening, including shared-link ACLs and OpenID role sync. It introduces Agent Skills, Subagents, and Observability tools like Prometheus and OpenTelemetry, alongside GPT-5.5 and Claude Fable 5 support.
Key Highlights
- Shared-link ACLs and stronger access controls
- OpenID role sync and token reuse
- MCP On-Behalf-Of (OBO) support
- Agent Skills and Subagents
- Observability: Prometheus metrics and OpenTelemetry tracing
New Features
- Shared-link granular access control (ACL)
- OpenID Role Sync
- Agent Skills package reusable behavior
- Subagents for delegating specialized work
- Real-Time Context Window & Token Usage Tracking
- Claude Fable 5 and GPT-5.5 Support
Full Release Notes
<!-- https://www.librechat.ai/changelog/v0.8.7-rc1 --> ### ๐๏ธ Highlights - **Access, Auth, and MCP**: Shared-link ACLs, OpenID role sync/token reuse, MCP OBO, request-scoped MCP flows, resumable cleanup, and OAuth/proxy hardening. - **Agents, Skills, and Projects**: Chat projects, skill file authoring tools, deployment/GitHub Skills, scoped sync status, model-spec controls/starters, and marketplace access. - **Safety and Admin**: Configurable message PII filtering and hardened model-spec Subagent controls. - **Observability and Operations**: Auth-isolated RUM proxying with outcome metrics, auth fallback telemetry, opt-in Redis command tracing, Langfuse scores, Node 24 Docker builds, and stronger CI. - **Conversation UX**: Immediate titles, hover timestamps, message-nav scrubbing, stable branches, sanitized shares, deploy recovery, and route reload fixes. - **Providers and Reasoning**: Claude Fable 5, GPT-5.5/frontier defaults, native Anthropic custom endpoints, protected user URLs, provider headers, and Gemini/Imagen/Bedrock fixes. - **Streaming and Performance**: Memoized Markdown streaming, per-tool `onResult`, real-time context, opt-in cost display, scoped token config caches, subagent billing, lazy loading, and `tsdown` builds. <details> <summary><h2>Click to expand Release Notes</h2></summary> ## What's Changed ### โจ Features - ๐ feat: Use SecretInput for Sensitive Fields by [@berry-13](https://github.com/berry-13) in [#12955](https://github.com/danny-avila/LibreChat/pull/12955) - ๐ก feat: Add Authenticated Proxy Mode for Browser RUM Telemetry by [@upman](https://github.com/upman) in [#13464](https://github.com/danny-avila/LibreChat/pull/13464) - ๐ feat: Add On-Behalf-Of (OBO) token exchange support for MCP server connections by [@jcbartle](https://github.com/jcbartle) in [#13429](https://github.com/danny-avila/LibreChat/pull/13429) - ๐ช feat: Add OpenID Role Sync by [@danny-avila](https://github.com/danny-avila) in [#13415](https://github.com/danny-avila/LibreChat/pull/13415) - ๐๏ธ feat: Retain Agent Files During All-Data Retention by [@danny-avila](https://github.com/danny-avila) in [#13477](https://github.com/danny-avila/LibreChat/pull/13477) - ๐ญ feat: Add Credential-Free Playwright Smoke Suite with a Local Mock LLM by [@teresama](https://github.com/teresama) in [#13472](https://github.com/danny-avila/LibreChat/pull/13472) - โก feat: Immediate Conversation Title Generation by [@danny-avila](https://github.com/danny-avila) in [#13395](https://github.com/danny-avila/LibreChat/pull/13395) - ๐ฐ๏ธ feat: Add Auth Fallback Observability by [@danny-avila](https://github.com/danny-avila) in [#13488](https://github.com/danny-avila/LibreChat/pull/13488) - ๐ feat: Add Granular Access Control to Shared Links via ACL System by [@AtefBellaaj](https://github.com/AtefBellaaj) in [#13051](https://github.com/danny-avila/LibreChat/pull/13051) - ๐๏ธ feat: Add Private Chat Projects by [@danny-avila](https://github.com/danny-avila) in [#13467](https://github.com/danny-avila/LibreChat/pull/13467) - ๐๏ธ feat: Add Focus Management and Drag-to-Scrub to MessageNav by [@danny-avila](https://github.com/danny-avila) in [#13497](https://github.com/danny-avila/LibreChat/pull/13497) - ๐๏ธ feat: Add Agent File Authoring Tools by [@danny-avila](https://github.com/danny-avila) in [#13435](https://github.com/danny-avila/LibreChat/pull/13435) - ๐ feat: Improve Skill Authoring Guidance by [@danny-avila](https://github.com/danny-avila) in [#13517](https://github.com/danny-avila/LibreChat/pull/13517) - ๐งญ feat: Scope Model Spec Skills by [@danny-avila](https://github.com/danny-avila) in [#13522](https://github.com/danny-avila/LibreChat/pull/13522) - ๐๏ธ feat: Add Deployment Skill Directory by [@danny-avila](https://github.com/danny-avila) in [#13523](https://github.com/danny-avila/LibreChat/pull/13523) - ๐ช feat: Surface Agent Marketplace in Model Selector by [@danny-avila](https://github.com/danny-avila) in [#13553](https://github.com/danny-avila/LibreChat/pull/13553) - ๐ฑ feat: Support Soft Default Model Spec by [@danny-avila](https://github.com/danny-avila) in [#13554](https://github.com/danny-avila/LibreChat/pull/13554) - โณ feat: Make OpenID Token Reuse Window Configurable by [@pboers1988](https://github.com/pboers1988) in [#13546](https://github.com/danny-avila/LibreChat/pull/13546) - ๐ feat: Surface Message Feedback as Langfuse Scores by [@graphaelli](https://github.com/graphaelli) in [#13544](https://github.com/danny-avila/LibreChat/pull/13544) - ๐งฉ feat: Enable Model Spec Subagents by [@danny-avila](https://github.com/danny-avila) in [#13598](https://github.com/danny-avila/LibreChat/pull/13598) - ๐ก๏ธ feat: Configurable Message PII Filter by [@dustinhealy](https://github.com/dustinhealy) in [#13602](https://github.com/danny-avila/LibreChat/pull/13602) - ๐ feat: Add Claude Fable 5 Support by [@danny-avila](https://github.com/danny-avila) in [#13628](https://github.com/danny-avila/LibreChat/pull/13628) - ๐ฐ๏ธ feat: Add GPT-5.5 + Frontier OpenAI Models, Drop Deprecated Defaults by [@danny-avila](https://github.com/danny-avila) in [#13636](https://github.com/danny-avila/LibreChat/pull/13636) - ๐งฌ feat: Add GitHub Skill Sync by [@danny-avila](https://github.com/danny-avila) in [#13293](https://github.com/danny-avila/LibreChat/pull/13293) - ๐ท๏ธ feat: Surface Model Spec Branding on Landing and Selector by [@danny-avila](https://github.com/danny-avila) in [#13662](https://github.com/danny-avila/LibreChat/pull/13662) - ๐ feat: Real-Time Context Window & Token Usage Tracking by [@danny-avila](https://github.com/danny-avila) in [#13670](https://github.com/danny-avila/LibreChat/pull/13670) - ๐ฌ feat: Report Tool Results Per Call via `onResult` Channel by [@danny-avila](https://github.com/danny-avila) in [#13698](https://github.com/danny-avila/LibreChat/pull/13698) - โ feat: Show Message Timestamps on Hover by [@danny-avila](https://github.com/danny-avila) in [#13709](https://github.com/danny-avila/LibreChat/pull/13709) - ๐ฌ feat: Conversation Starters for Model Specs by [@danny-avila](https://github.com/danny-avila) in [#13710](https://github.com/danny-avila/LibreChat/pull/13710) - ๐พ feat: Persist Context Breakdown & Branch/Total Usage Cost by [@danny-avila](https://github.com/danny-avila) in [#13734](https://github.com/danny-avila/LibreChat/pull/13734) - ๐ธ feat: Per-Agent Endpoint Token Config in Multi-Endpoint Billing by [@danny-avila](https://github.com/danny-avila) in [#13738](https://github.com/danny-avila/LibreChat/pull/13738) - ๐ช feat: Context Gauge UX, Hover Snapshot, Click Breakdown, Currency, Cost-On-By-Default by [@danny-avila](https://github.com/danny-avila) in [#13739](https://github.com/danny-avila/LibreChat/pull/13739) - ๐จ feat: Custom Headers on Built-in Provider Endpoints by [@danny-avila](https://github.com/danny-avila) in [#13742](https://github.com/danny-avila/LibreChat/pull/13742) - ๐ ฐ๏ธ feat: Native Anthropic Provider for Custom Endpoints by [@danny-avila](https://github.com/danny-avila) in [#13748](https://github.com/danny-avila/LibreChat/pull/13748) ### ๐ Fixes - ๐ญ fix: Preserve Custom Endpoint Reasoning Params by [@danny-avila](https://github.com/danny-avila) in [#13447](https://github.com/danny-avila/LibreChat/pull/13447) - ๐ช fix: Apply Isolation Plugin to Distinct Queries by [@danny-avila](https://github.com/danny-avila) in [#13457](https://github.com/danny-avila/LibreChat/pull/13457) - ๐ช fix: Preserve Grouped Tool Expansion During Streaming by [@danny-avila](https://github.com/danny-avila) in [#13462](https://github.com/danny-avila/LibreChat/pull/13462) - ๐ fix: Gate RUM Proxy Route on the RUM_ENABLED Flag by [@upman](https://github.com/upman) in [#13475](https://github.com/danny-avila/LibreChat/pull/13475) - ๐ท๏ธ fix: Prevent Bedrock Cache Tokens from Inflating Completion Count by [@joohan-lee](https://github.com/joohan-lee) in [#13468](https://github.com/danny-avila/LibreChat/pull/13468) - ๐ชค fix: Reload Messages When Reopening a Chat from a Non-Chat Route by [@danny-avila](https://github.com/danny-avila) in [#13501](https://github.com/danny-avila/LibreChat/pull/13501) - ๐ฆ fix: Gate Chat Starts During Readiness by [@danny-avila](https://github.com/danny-avila) in [#13502](https://github.com/danny-avila/LibreChat/pull/13502) - ๐งท fix: Bind Agent File Context to Current Turn by [@danny-avila](https://github.com/danny-avila) in [#13506](https://github.com/danny-avila/LibreChat/pull/13506) - ๐ผ fix: Harden Shared-Link Message Sanitization with an Allowlist by [@danny-avila](https://github.com/danny-avila) in [#13510](https://github.com/danny-avila/LibreChat/pull/13510) - ๐ผ๏ธ fix: Upgrade Framer Motion for Vite 8 Compatibility by [@dlew](https://github.com/dlew) in [#13512](https://github.com/danny-avila/LibreChat/pull/13512) - ๐ชก fix: Handle Missing Skill File Upsert Metadata by [@danny-avila](https://github.com/danny-avila) in [#13520](https://github.com/danny-avila/LibreChat/pull/13520) - ๐ป fix: Clear Project-Scoped Landing When the Selected Project Is Deleted by [@danny-avila](https://github.com/danny-avila) in [#13525](https://github.com/danny-avila/LibreChat/pull/13525) - ๐งญ fix: Restore Empty Skill Allowlist Catalog by [@danny-avila](https://github.com/danny-avila) in [#13526](https://github.com/danny-avila/LibreChat/pull/13526) - ๐ชฆ fix: Add Durable MCP Config Tombstones by [@danny-avila](https://github.com/danny-avila) in [#13534](https://github.com/danny-avila/LibreChat/pull/13534) - ๐ fix: Handle Multiple Concurrent MCP OAuth Login Prompts by [@janluedemann-esome](https://github.com/janluedemann-esome) in [#13200](https://github.com/danny-avila/LibreChat/pull/13200) - ๐ fix: Reuse MCP OAuth Authorization URL by [@danny-avila](https://github.com/danny-avila) in [#13532](https://github.com/danny-avila/LibreChat/pull/13532) - ๐ชช fix: Filter ACL Principal Details by [@danny-avila](https://github.com/danny-avila) in [#13524](https://github.com/danny-avila/LibreChat/pull/13524) - ๐ผ๏ธ fix: Support Known Endpoint Group Icons by [@danny-avila](https://github.com/danny-avila) in [#13542](https://github.com/danny-avila/LibreChat/pull/13542) - ๐ fix: Contain Markdown Table Overflow by [@danny-avila](https://github.com/danny-avila) in [#13543](https://github.com/danny-avila/LibreChat/pull/13543) - ๐ fix: Preserve Provider Document Uploads by [@danny-avila](https://github.com/danny-avila) in [#13550](https://github.com/danny-avila/LibreChat/pull/13550) - ๐ ๏ธ fix: Enable Gemini Mixed Tool Config by [@danny-avila](https://github.com/danny-avila) in [#13538](https://github.com/danny-avila/LibreChat/pull/13538) - ๐ฆ fix: Guard Auth Continuation with Dedicated Limiter by [@danny-avila](https://github.com/danny-avila) in [#13555](https://github.com/danny-avila/LibreChat/pull/13555) - ๐ท๏ธ fix: Categorize Auth Tokens by Flow Type by [@danny-avila](https://github.com/danny-avila) in [#13556](https://github.com/danny-avila/LibreChat/pull/13556) - ๐ fix: Scope Attachment Usage to Request Owner by [@danny-avila](https://github.com/danny-avila) in [#13557](https://github.com/danny-avila/LibreChat/pull/13557) - ๐ fix: Normalize Verification Flow Error Responses by [@danny-avila](https://github.com/danny-avila) in [#13558](https://github.com/danny-avila/LibreChat/pull/13558) - ๐ fix: Reconcile Agent Action Credential Merges by [@danny-avila](https://github.com/danny-avila) in [#13559](https://github.com/danny-avila/LibreChat/pull/13559) - ๐งผ fix: Prevent Shared Link Caching and Strengthen Log Redaction by [@danny-avila](https://github.com/danny-avila) in [#13561](https://github.com/danny-avila/LibreChat/pull/13561) - ๐ฉน fix: Double-Assert Partial Test Fixture in EndpointIcon by [@danny-avila](https://github.com/danny-avila) in [#13567](https://github.com/danny-avila/LibreChat/pull/13567) - ๐ฉน fix: Bump GitNexus to 1.6.5 and Fail-Soft the PR Index Job by [@danny-avila](https://github.com/danny-avila) in [#13569](https://github.com/danny-avila/LibreChat/pull/13569) - ๐ท๏ธ fix: Preserve Generated Conversation Title on Stop by [@danny-avila](https://github.com/danny-avila) in [#13568](https://github.com/danny-avila/LibreChat/pull/13568) - ๐ป fix: Replay MCP OAuth Prompts for Coalesced Connections by [@danny-avila](https://github.com/danny-avila) in [#13565](https://github.com/danny-avila/LibreChat/pull/13565) - ๐ fix: Resolve Env Variables in MCP OAuth URL Fields by [@rene84](https://github.com/rene84) in [#13573](https://github.com/danny-avila/LibreChat/pull/13573) - ๐ฟ fix: Anchor Post-Auth MCP Stream to Submission Message Tree by [@danny-avila](https://github.com/danny-avila) in [#13582](https://github.com/danny-avila/LibreChat/pull/13582) - ๐ง fix: Add Per-User Throttle to 2FA Continuation Attempts by [@danny-avila](https://github.com/danny-avila) in [#13583](https://github.com/danny-avila/LibreChat/pull/13583) - ๐ fix: Preserve Project Scope Through Enforced Model Specs by [@danny-avila](https://github.com/danny-avila) in [#13586](https://github.com/danny-avila/LibreChat/pull/13586) - ๐ช fix: Preserve Model Spec Icons Across Stream Resume and Abort by [@danny-avila](https://github.com/danny-avila) in [#13603](https://github.com/danny-avila/LibreChat/pull/13603) - ๐ง fix: Bound Memory Agent Input by [@danny-avila](https://github.com/danny-avila) in [#13606](https://github.com/danny-avila/LibreChat/pull/13606) - ๐ท fix: Preserve disabled build info flag in loadDefaultInterface by [@ethanlaj](https://github.com/ethanlaj) in [#13608](https://github.com/danny-avila/LibreChat/pull/13608) - โ๏ธ fix: Deduplicate Skill Bodies Across Fresh Primes and History by [@danny-avila](https://github.com/danny-avila) in [#13610](https://github.com/danny-avila/LibreChat/pull/13610) - ๐ fix: Prefer Imagen-Specific Location over Default Google Region by [@pedrojreis](https://github.com/pedrojreis) in [#13613](https://github.com/danny-avila/LibreChat/pull/13613) - ๐ฌ fix: Coalesce Auth Recovery into a Single Refresh Flight by [@danny-avila](https://github.com/danny-avila) in [#13618](https://github.com/danny-avila/LibreChat/pull/13618) - ๐งต fix: Reject Preliminary Parent Follow-Ups by [@danny-avila](https://github.com/danny-avila) in [#13619](https://github.com/danny-avila/LibreChat/pull/13619) - โณ fix: Extend and Decouple MCP OAuth Flow Timeouts by [@danny-avila](https://github.com/danny-avila) in [#13622](https://github.com/danny-avila/LibreChat/pull/13622) - โ fix: Sanitize MCP Tool Schemas for Gemini/Vertex Compatibility by [@danny-avila](https://github.com/danny-avila) in [#13623](https://github.com/danny-avila/LibreChat/pull/13623) - ๐ซ fix: Hide Empty Agents Endpoint from Model Selector by [@danny-avila](https://github.com/danny-avila) in [#13624](https://github.com/danny-avila/LibreChat/pull/13624) - ๐๏ธ fix: Resolve MCP Runtime User and Request Placeholders by [@danny-avila](https://github.com/danny-avila) in [#13626](https://github.com/danny-avila/LibreChat/pull/13626) - ๐ fix: Suppress Expected Speech Synthesis Cancellation Errors by [@upman](https://github.com/upman) in [#13627](https://github.com/danny-avila/LibreChat/pull/13627) - ๐๏ธ fix: Resolve Speech Recognition CJS/ESM Import Shape by [@upman](https://github.com/upman) in [#13631](https://github.com/danny-avila/LibreChat/pull/13631) - ๐ณ๏ธ fix: Guard Sparse Content Parts in Message Nav Preview by [@upman](https://github.com/upman) in [#13632](https://github.com/danny-avila/LibreChat/pull/13632) - ๐๏ธ fix: Stream File Authoring Previews from Partial Tool Args by [@danny-avila](https://github.com/danny-avila) in [#13634](https://github.com/danny-avila/LibreChat/pull/13634) - ๐ฅ fix: ChatGPT Conversation Import Failures by [@danny-avila](https://github.com/danny-avila) in [#13637](https://github.com/danny-avila/LibreChat/pull/13637) - ๐ชถ fix: Prevent Soft Default Model Spec from Overriding User Selections by [@danny-avila](https://github.com/danny-avila) in [#13642](https://github.com/danny-avila/LibreChat/pull/13642) - ๐งญ fix: Mobile Sidebar Navigation on Projects View by [@danny-avila](https://github.com/danny-avila) in [#13647](https://github.com/danny-avila/LibreChat/pull/13647) - ๐ซ fix: Forward User Auth Headers on Model Fetch by [@Ivan-Apro](https://github.com/Ivan-Apro) in [#13616](https://github.com/danny-avila/LibreChat/pull/13616) - ๐ช fix: Align Mobile Sidebar Toggle Gating with JS Breakpoint Across Views by [@danny-avila](https://github.com/danny-avila) in [#13654](https://github.com/danny-avila/LibreChat/pull/13654) - ๐ fix: Sidebar Chat List Width Tracking and Stale Row Measurements by [@danny-avila](https://github.com/danny-avila) in [#13655](https://github.com/danny-avila/LibreChat/pull/13655) - ๐ท fix: Reject Client-Supplied Subagent Configuration by [@danny-avila](https://github.com/danny-avila) in [#13660](https://github.com/danny-avila/LibreChat/pull/13660) - ๐ fix: Carry Request-Scoped MCP Tools into PTC Execution by [@danny-avila](https://github.com/danny-avila) in [#13669](https://github.com/danny-avila/LibreChat/pull/13669) - ๐ fix: Reuse Request-Scoped MCP Connections per Run by [@danny-avila](https://github.com/danny-avila) in [#13673](https://github.com/danny-avila/LibreChat/pull/13673) - ๐ fix: Scan All Message Roles in messageFilter.pii by [@dustinhealy](https://github.com/dustinhealy) in [#13677](https://github.com/danny-avila/LibreChat/pull/13677) - ๐ fix: Auto-Recover from Stale Service Worker Assets After Deploys by [@danny-avila](https://github.com/danny-avila) in [#13686](https://github.com/danny-avila/LibreChat/pull/13686) - ๐ฅ fix: Send First OpenID Audience on Authorization Requests by [@danny-avila](https://github.com/danny-avila) in [#13694](https://github.com/danny-avila/LibreChat/pull/13694) - ๐ fix: Preserve Ephemeral MCP Selections Across Model Switches by [@danny-avila](https://github.com/danny-avila) in [#13697](https://github.com/danny-avila/LibreChat/pull/13697) - ๐ฌ fix: Prevent Viewed Conversations from Re-Arming the Soft Default Spec by [@danny-avila](https://github.com/danny-avila) in [#13699](https://github.com/danny-avila/LibreChat/pull/13699) - ๐ชข fix: Prune Dangling Skill IDs from Agent Allowlists by [@danny-avila](https://github.com/danny-avila) in [#13702](https://github.com/danny-avila/LibreChat/pull/13702) - ๐๏ธ fix: Gate Request-Scoped MCP Servers Out of Persistent Tool Cache by [@danny-avila](https://github.com/danny-avila) in [#13672](https://github.com/danny-avila/LibreChat/pull/13672) - ๐งพ fix: Bill Subagent Child-Run Model Usage in Parent Transactions by [@danny-avila](https://github.com/danny-avila) in [#13683](https://github.com/danny-avila/LibreChat/pull/13683) - ๐ง fix: Honor NO_PROXY for OpenID requests when PROXY is set by [@danny-avila](https://github.com/danny-avila) in [#13716](https://github.com/danny-avila/LibreChat/pull/13716) - ๐ fix: Centralize Outbound Proxy Handling by [@danny-avila](https://github.com/danny-avila) in [#13726](https://github.com/danny-avila/LibreChat/pull/13726) - ๐ฟ fix: Preserve Viewed Branch on Sibling-Tree Churn by [@danny-avila](https://github.com/danny-avila) in [#13732](https://github.com/danny-avila/LibreChat/pull/13732) - ๐จ fix: Gate message hover-reveal controls on hover capability, not width by [@danny-avila](https://github.com/danny-avila) in [#13712](https://github.com/danny-avila/LibreChat/pull/13712) - ๐ fix: Render Web Search Favicons on Raw SERP Results During Streaming by [@danny-avila](https://github.com/danny-avila) in [#13741](https://github.com/danny-avila/LibreChat/pull/13741) - ๐ข fix: Prevent "approximately" tildes from rendering as markdown subscript by [@danny-avila](https://github.com/danny-avila) in [#13743](https://github.com/danny-avila/LibreChat/pull/13743) - ๐ช fix: Correct Context Usage Gauge After Summarization by [@danny-avila](https://github.com/danny-avila) in [#13744](https://github.com/danny-avila/LibreChat/pull/13744) - ๐ fix: Isolate RUM Telemetry Proxy Auth from App Auth by [@danny-avila](https://github.com/danny-avila) in [#13765](https://github.com/danny-avila/LibreChat/pull/13765) - ๐ซท fix: Withhold Anthropic Custom Headers From User URLs by [@danny-avila](https://github.com/danny-avila) in [#13767](https://github.com/danny-avila/LibreChat/pull/13767) - ๐๏ธ fix: Scope Skill Sync Status by [@danny-avila](https://github.com/danny-avila) in [#13771](https://github.com/danny-avila/LibreChat/pull/13771) - ๐๏ธ fix: Scope Token Config Cache by [@danny-avila](https://github.com/danny-avila) in [#13770](https://github.com/danny-avila/LibreChat/pull/13770) - ๐ชข fix: Tie MCP Cleanup To Resumable Runs by [@danny-avila](https://github.com/danny-avila) in [#13769](https://github.com/danny-avila/LibreChat/pull/13769) ### ๐ง Refactoring and Performance - ๐ refactor: Scope Role Cache Keys by Isolation Context by [@danny-avila](https://github.com/danny-avila) in [#13454](https://github.com/danny-avila/LibreChat/pull/13454) - ๐๏ธ refactor: Scope App-Config Override Cache by Isolation Context by [@danny-avila](https://github.com/danny-avila) in [#13455](https://github.com/danny-avila/LibreChat/pull/13455) - ๐ฉป refactor: Replace Opaque OAuth Errors with Structured Failure Diagnostics by [@danny-avila](https://github.com/danny-avila) in [#13471](https://github.com/danny-avila/LibreChat/pull/13471) - ๐ refactor: Agent Avatar Conversation Icons and Streaming Indicators by [@danny-avila](https://github.com/danny-avila) in [#13563](https://github.com/danny-avila/LibreChat/pull/13563) - ๐๏ธ refactor: Prioritize Deployment Skills over Persisted Duplicates by [@danny-avila](https://github.com/danny-avila) in [#13575](https://github.com/danny-avila/LibreChat/pull/13575) - ๐ง perf: Memoize Completed Markdown Blocks During Streaming by [@danny-avila](https://github.com/danny-avila) in [#13576](https://github.com/danny-avila/LibreChat/pull/13576) - โก perf: Migrate data-schemas Build to tsdown with isolatedDeclarations by [@danny-avila](https://github.com/danny-avila) in [#13578](https://github.com/danny-avila/LibreChat/pull/13578) - โก๏ธ refactor: Migrate @librechat/api Build to tsdown by [@danny-avila](https://github.com/danny-avila) in [#13595](https://github.com/danny-avila/LibreChat/pull/13595) - โก refactor: Migrate data-provider Build to tsdown by [@danny-avila](https://github.com/danny-avila) in [#13597](https://github.com/danny-avila/LibreChat/pull/13597) - โก refactor: Migrate @librechat/client Build to tsdown by [@danny-avila](https://github.com/danny-avila) in [#13596](https://github.com/danny-avila/LibreChat/pull/13596) - ๐ฆ chore: Declare runtime deps externalized by tsdown in @librechat/api by [@danny-avila](https://github.com/danny-avila) in [#13600](https://github.com/danny-avila/LibreChat/pull/13600) - ๐ refactor: Attach Message Context to Langfuse Feedback Scores by [@danny-avila](https://github.com/danny-avila) in [#13604](https://github.com/danny-avila/LibreChat/pull/13604) - โ๏ธ refactor: Lazy-load HEIC upload conversion by [@upman](https://github.com/upman) in [#13638](https://github.com/danny-avila/LibreChat/pull/13638) - โ๏ธ refactor: lazy-load React Query Devtools by [@upman](https://github.com/upman) in [#13639](https://github.com/danny-avila/LibreChat/pull/13639) - โ๏ธ refactor: Lazy load locale resources by [@upman](https://github.com/upman) in [#13640](https://github.com/danny-avila/LibreChat/pull/13640) - โ๏ธ refactor: Brotli asset serving behind a feature toggle by [@upman](https://github.com/upman) in [#13641](https://github.com/danny-avila/LibreChat/pull/13641) - ๐คซ refactor: Silent MCP OAuth Refresh on Mid-Session 401 by [@danny-avila](https://github.com/danny-avila) in [#13369](https://github.com/danny-avila/LibreChat/pull/13369) - ๐ก refactor: Gate Noisy Redis OTEL Instrumentation by [@danny-avila](https://github.com/danny-avila) in [#13764](https://github.com/danny-avila/LibreChat/pull/13764) - ๐งพ refactor: Disable Context Cost By Default by [@danny-avila](https://github.com/danny-avila) in [#13768](https://github.com/danny-avila/LibreChat/pull/13768) ### ๐งช Tests - ๐งช test: Add E2E Regression For 2FA framer-motion Crash by [@danny-avila](https://github.com/danny-avila) in [#13513](https://github.com/danny-avila/LibreChat/pull/13513) - ๐ญ test: Run Mock E2E Suite Through createRun With In-Process Fake Model by [@danny-avila](https://github.com/danny-avila) in [#13508](https://github.com/danny-avila/LibreChat/pull/13508) - ๐ฒ test: Add E2E Coverage for Message Tree Streaming by [@danny-avila](https://github.com/danny-avila) in [#13570](https://github.com/danny-avila/LibreChat/pull/13570) - โ ci: Add mock e2e coverage for agents, prompts, MCP, and chat flows by [@teresama](https://github.com/teresama) in [#13589](https://github.com/danny-avila/LibreChat/pull/13589) ### ๐ฆ Dependencies, Chores & CI - ๐ท๏ธ ci: Sync Helm Chart Tags by [@danny-avila](https://github.com/danny-avila) in [#13446](https://github.com/danny-avila/LibreChat/pull/13446) - ๐ณ chore: Upgrade Docker Builds To Node 24 by [@danny-avila](https://github.com/danny-avila) in [#13448](https://github.com/danny-avila/LibreChat/pull/13448) - โ๏ธ ci: Fix Helm Tag Sync Workflow Planning by [@danny-avila](https://github.com/danny-avila) in [#13451](https://github.com/danny-avila/LibreChat/pull/13451) - โก chore: Upgrade Vite For Node 24 by [@danny-avila](https://github.com/danny-avila) in [#13450](https://github.com/danny-avila/LibreChat/pull/13450) - ๐ผ ci: Guard Scoped Model Applies the Isolation Plugin by [@danny-avila](https://github.com/danny-avila) in [#13458](https://github.com/danny-avila/LibreChat/pull/13458) - ๐ชช ci: Fix Helm Tag Sync Git Auth by [@danny-avila](https://github.com/danny-avila) in [#13460](https://github.com/danny-avila/LibreChat/pull/13460) - ๐คซ chore: Quiet Repetitive Log Noise from Balance, CloudFront, and Capability Paths by [@danny-avila](https://github.com/danny-avila) in [#13461](https://github.com/danny-avila/LibreChat/pull/13461) - ๐ refactor: Reduce Frontend Build Warning Noise by [@danny-avila](https://github.com/danny-avila) in [#13463](https://github.com/danny-avila/LibreChat/pull/13463) - ๐ ci: Fix Locize Sync CDN Mode by [@danny-avila](https://github.com/danny-avila) in [#13465](https://github.com/danny-avila/LibreChat/pull/13465) - โก refactor: Change Minifier from 'terser' to 'oxc' in Vite Config by [@danny-avila](https://github.com/danny-avila) in [#13476](https://github.com/danny-avila/LibreChat/pull/13476) - ๐งญ ci: Use System Chrome for Mock E2E by [@danny-avila](https://github.com/danny-avila) in [#13481](https://github.com/danny-avila/LibreChat/pull/13481) - ๐ชง chore: Generalize Project Name Placeholder by [@danny-avila](https://github.com/danny-avila) in [#13514](https://github.com/danny-avila/LibreChat/pull/13514) - ๐ฆ chore: npm audit fix by [@danny-avila](https://github.com/danny-avila) in [#13515](https://github.com/danny-avila/LibreChat/pull/13515) - ๐ชน feat: Collapse Empty Projects Section in the Sidebar by Default by [@danny-avila](https://github.com/danny-avila) in [#13531](https://github.com/danny-avila/LibreChat/pull/13531) - ๐ง chore: Update ESLint config, Import Sorting script, Test Sharding, Bump @librechat/agents by [@danny-avila](https://github.com/danny-avila) in [#13552](https://github.com/danny-avila/LibreChat/pull/13552) - ๐ท ci: Type-check the Client Workspace by [@danny-avila](https://github.com/danny-avila) in [#13560](https://github.com/danny-avila/LibreChat/pull/13560) - ๐ฆ chore: Update Turbo to v2.9.16 by [@danny-avila](https://github.com/danny-avila) in [#13564](https://github.com/danny-avila/LibreChat/pull/13564) - โฌ๏ธ chore: Bump TypeScript to 5.9.3 by [@danny-avila](https://github.com/danny-avila) in [#13584](https://github.com/danny-avila/LibreChat/pull/13584) - ๐ง chore: Enforce isolatedDeclarations in data-schemas tsconfig by [@danny-avila](https://github.com/danny-avila) in [#13593](https://github.com/danny-avila/LibreChat/pull/13593) - ๐ท ci: Add API runtime smoke (boot the production image) to docker-smoke by [@danny-avila](https://github.com/danny-avila) in [#13605](https://github.com/danny-avila/LibreChat/pull/13605) - โ chore: Upgrade @google/genai SDK to ^2.8.0 by [@danny-avila](https://github.com/danny-avila) in [#13625](https://github.com/danny-avila/LibreChat/pull/13625) - ๐ฆ chore: Bump @librechat/agents to v3.2.32 by [@danny-avila](https://github.com/danny-avila) in [#13633](https://github.com/danny-avila/LibreChat/pull/13633) - ๐ฆ chore: Bump jest-junit to v17.0.0 by [@danny-avila](https://github.com/danny-avila) in [`f074bd9`](https://github.com/danny-avila/LibreChat/commit/f074bd9e09) - ๐ฆ chore: Bump @librechat/agents to v3.2.33 by [@danny-avila](https://github.com/danny-avila) in [`e25373d`](https://github.com/danny-avila/LibreChat/commit/e25373d7d6) - ๐ฐ ci: Close Leaked Redis Clients in Cache Integration Tests by [@danny-avila](https://github.com/danny-avila) in [#13649](https://github.com/danny-avila/LibreChat/pull/13649) - ๐ช ci: Shard Windows Frontend Unit Tests by [@danny-avila](https://github.com/danny-avila) in [#13651](https://github.com/danny-avila/LibreChat/pull/13651) - ๐๏ธ ci: Cache Dependencies and Builds in Cache Integration Tests by [@danny-avila](https://github.com/danny-avila) in [#13652](https://github.com/danny-avila/LibreChat/pull/13652) - ๐ค ci: Cache and Authenticate HF Model Downloads in GitNexus Index by [@danny-avila](https://github.com/danny-avila) in [#13653](https://github.com/danny-avila/LibreChat/pull/13653) - โซ ci: Bump GitNexus to 1.6.7 to Fix Embeddings Index Timeout by [@danny-avila](https://github.com/danny-avila) in [#13658](https://github.com/danny-avila/LibreChat/pull/13658) - ๐๏ธ chore: Use Element Access over `any`-Casts in Registry Cache Spec by [@danny-avila](https://github.com/danny-avila) in [#13664](https://github.com/danny-avila/LibreChat/pull/13664) - ๐ฆ chore: Update Turbo package to v2.9.17 by [@danny-avila](https://github.com/danny-avila) in [`eebbde7`](https://github.com/danny-avila/LibreChat/commit/eebbde777a) - ๐งน ci: Relieve disk pressure on GitNexus deploy by [@danny-avila](https://github.com/danny-avila) in [#13666](https://github.com/danny-avila/LibreChat/pull/13666) - ๐ฆ chore: npm audit fix by [@danny-avila](https://github.com/danny-avila) in [#13701](https://github.com/danny-avila/LibreChat/pull/13701) - ๐ช fix: Cross-Platform Absolute-Path Check in tsdown neverBundle Predicates by [@danny-avila](https://github.com/danny-avila) in [#13700](https://github.com/danny-avila/LibreChat/pull/13700) - โจ v0.8.7-rc1 by [@danny-avila](https://github.com/danny-avila) in [#13592](https://github.com/danny-avila/LibreChat/pull/13592) - ๐ chore: Bump Helm chart version to 2.0.6 by [@danny-avila](https://github.com/danny-avila) in [`5986a1c6d2`](https://github.com/danny-avila/LibreChat/commit/5986a1c6d2) ### ๐ Internationalization - ๐ i18n: Update translation.json with latest translations by [@danny-avila](https://github.com/danny-avila) in [#13466](https://github.com/danny-avila/LibreChat/pull/13466), [#13482](https://github.com/danny-avila/LibreChat/pull/13482), [#13505](https://github.com/danny-avila/LibreChat/pull/13505), [#13766](https://github.com/danny-avila/LibreChat/pull/13766) </details> ## New Contributors - [@jcbartle](https://github.com/jcbartle) made their first contribution in [#13429](https://github.com/danny-avila/LibreChat/pull/13429) - [@teresama](https://github.com/teresama) made their first contribution in [#13472](https://github.com/danny-avila/LibreChat/pull/13472) - [@joohan-lee](https://github.com/joohan-lee) made their first contribution in [#13468](https://github.com/danny-avila/LibreChat/pull/13468) - [@graphaelli](https://github.com/graphaelli) made their first contribution in [#13544](https://github.com/danny-avila/LibreChat/pull/13544) - [@rene84](https://github.com/rene84) made their first contribution in [#13573](https://github.com/danny-avila/LibreChat/pull/13573) - [@pedrojreis](https://github.com/pedrojreis) made their first contribution in [#13613](https://github.com/danny-avila/LibreChat/pull/13613) - [@Ivan-Apro](https://github.com/Ivan-Apro) made their first contribution in [#13616](https://github.com/danny-avila/LibreChat/pull/13616) **Full Changelog**: [v0.8.6...v0.8.7-rc1](https://github.com/danny-avila/LibreChat/compare/v0.8.6...v0.8.7-rc1)