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)