github danny-avila/LibreChat v0.8.7-rc1

pre-release7 hours ago

๐Ÿž๏ธ 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.

Click to expand Release Notes

What's Changed

โœจ Features

  • ๐Ÿ” feat: Use SecretInput for Sensitive Fields by @berry-13 in #12955
  • ๐Ÿ“ก feat: Add Authenticated Proxy Mode for Browser RUM Telemetry by @upman in #13464
  • ๐Ÿ”’ feat: Add On-Behalf-Of (OBO) token exchange support for MCP server connections by @jcbartle in #13429
  • ๐Ÿชœ feat: Add OpenID Role Sync by @danny-avila in #13415
  • ๐Ÿ—ƒ๏ธ feat: Retain Agent Files During All-Data Retention by @danny-avila in #13477
  • ๐ŸŽญ feat: Add Credential-Free Playwright Smoke Suite with a Local Mock LLM by @teresama in #13472
  • โšก feat: Immediate Conversation Title Generation by @danny-avila in #13395
  • ๐Ÿ›ฐ๏ธ feat: Add Auth Fallback Observability by @danny-avila in #13488
  • ๐Ÿ”— feat: Add Granular Access Control to Shared Links via ACL System by @AtefBellaaj in #13051
  • ๐Ÿ—‚๏ธ feat: Add Private Chat Projects by @danny-avila in #13467
  • ๐ŸŽš๏ธ feat: Add Focus Management and Drag-to-Scrub to MessageNav by @danny-avila in #13497
  • ๐Ÿ—‚๏ธ feat: Add Agent File Authoring Tools by @danny-avila in #13435
  • ๐Ÿ“œ feat: Improve Skill Authoring Guidance by @danny-avila in #13517
  • ๐Ÿงญ feat: Scope Model Spec Skills by @danny-avila in #13522
  • ๐Ÿ—‚๏ธ feat: Add Deployment Skill Directory by @danny-avila in #13523
  • ๐Ÿช feat: Surface Agent Marketplace in Model Selector by @danny-avila in #13553
  • ๐ŸŒฑ feat: Support Soft Default Model Spec by @danny-avila in #13554
  • โณ feat: Make OpenID Token Reuse Window Configurable by @pboers1988 in #13546
  • ๐Ÿ“Š feat: Surface Message Feedback as Langfuse Scores by @graphaelli in #13544
  • ๐Ÿงฉ feat: Enable Model Spec Subagents by @danny-avila in #13598
  • ๐Ÿ›ก๏ธ feat: Configurable Message PII Filter by @dustinhealy in #13602
  • ๐Ÿ“– feat: Add Claude Fable 5 Support by @danny-avila in #13628
  • ๐Ÿ›ฐ๏ธ feat: Add GPT-5.5 + Frontier OpenAI Models, Drop Deprecated Defaults by @danny-avila in #13636
  • ๐Ÿงฌ feat: Add GitHub Skill Sync by @danny-avila in #13293
  • ๐Ÿท๏ธ feat: Surface Model Spec Branding on Landing and Selector by @danny-avila in #13662
  • ๐Ÿ“Š feat: Real-Time Context Window & Token Usage Tracking by @danny-avila in #13670
  • ๐Ÿ“ฌ feat: Report Tool Results Per Call via onResult Channel by @danny-avila in #13698
  • โŒš feat: Show Message Timestamps on Hover by @danny-avila in #13709
  • ๐Ÿ’ฌ feat: Conversation Starters for Model Specs by @danny-avila in #13710
  • ๐Ÿ’พ feat: Persist Context Breakdown & Branch/Total Usage Cost by @danny-avila in #13734
  • ๐Ÿ’ธ feat: Per-Agent Endpoint Token Config in Multi-Endpoint Billing by @danny-avila in #13738
  • ๐Ÿช™ feat: Context Gauge UX, Hover Snapshot, Click Breakdown, Currency, Cost-On-By-Default by @danny-avila in #13739
  • ๐Ÿ“จ feat: Custom Headers on Built-in Provider Endpoints by @danny-avila in #13742
  • ๐Ÿ…ฐ๏ธ feat: Native Anthropic Provider for Custom Endpoints by @danny-avila in #13748

๐Ÿ› Fixes

  • ๐Ÿ’ญ fix: Preserve Custom Endpoint Reasoning Params by @danny-avila in #13447
  • ๐Ÿช fix: Apply Isolation Plugin to Distinct Queries by @danny-avila in #13457
  • ๐Ÿช fix: Preserve Grouped Tool Expansion During Streaming by @danny-avila in #13462
  • ๐Ÿ›‚ fix: Gate RUM Proxy Route on the RUM_ENABLED Flag by @upman in #13475
  • ๐Ÿท๏ธ fix: Prevent Bedrock Cache Tokens from Inflating Completion Count by @joohan-lee in #13468
  • ๐Ÿชค fix: Reload Messages When Reopening a Chat from a Non-Chat Route by @danny-avila in #13501
  • ๐Ÿšฆ fix: Gate Chat Starts During Readiness by @danny-avila in #13502
  • ๐Ÿงท fix: Bind Agent File Context to Current Turn by @danny-avila in #13506
  • ๐Ÿ’ผ fix: Harden Shared-Link Message Sanitization with an Allowlist by @danny-avila in #13510
  • ๐Ÿ–ผ๏ธ fix: Upgrade Framer Motion for Vite 8 Compatibility by @dlew in #13512
  • ๐Ÿชก fix: Handle Missing Skill File Upsert Metadata by @danny-avila in #13520
  • ๐Ÿ‘ป fix: Clear Project-Scoped Landing When the Selected Project Is Deleted by @danny-avila in #13525
  • ๐Ÿงญ fix: Restore Empty Skill Allowlist Catalog by @danny-avila in #13526
  • ๐Ÿชฆ fix: Add Durable MCP Config Tombstones by @danny-avila in #13534
  • ๐Ÿ” fix: Handle Multiple Concurrent MCP OAuth Login Prompts by @janluedemann-esome in #13200
  • ๐Ÿ” fix: Reuse MCP OAuth Authorization URL by @danny-avila in #13532
  • ๐Ÿชช fix: Filter ACL Principal Details by @danny-avila in #13524
  • ๐Ÿ–ผ๏ธ fix: Support Known Endpoint Group Icons by @danny-avila in #13542
  • ๐Ÿ“Š fix: Contain Markdown Table Overflow by @danny-avila in #13543
  • ๐Ÿ“Ž fix: Preserve Provider Document Uploads by @danny-avila in #13550
  • ๐Ÿ› ๏ธ fix: Enable Gemini Mixed Tool Config by @danny-avila in #13538
  • ๐Ÿšฆ fix: Guard Auth Continuation with Dedicated Limiter by @danny-avila in #13555
  • ๐Ÿท๏ธ fix: Categorize Auth Tokens by Flow Type by @danny-avila in #13556
  • ๐Ÿ“Ž fix: Scope Attachment Usage to Request Owner by @danny-avila in #13557
  • ๐Ÿ›‚ fix: Normalize Verification Flow Error Responses by @danny-avila in #13558
  • ๐Ÿ”€ fix: Reconcile Agent Action Credential Merges by @danny-avila in #13559
  • ๐Ÿงผ fix: Prevent Shared Link Caching and Strengthen Log Redaction by @danny-avila in #13561
  • ๐Ÿฉน fix: Double-Assert Partial Test Fixture in EndpointIcon by @danny-avila in #13567
  • ๐Ÿฉน fix: Bump GitNexus to 1.6.5 and Fail-Soft the PR Index Job by @danny-avila in #13569
  • ๐Ÿท๏ธ fix: Preserve Generated Conversation Title on Stop by @danny-avila in #13568
  • ๐Ÿ“ป fix: Replay MCP OAuth Prompts for Coalesced Connections by @danny-avila in #13565
  • ๐Ÿ” fix: Resolve Env Variables in MCP OAuth URL Fields by @rene84 in #13573
  • ๐ŸŒฟ fix: Anchor Post-Auth MCP Stream to Submission Message Tree by @danny-avila in #13582
  • ๐Ÿšง fix: Add Per-User Throttle to 2FA Continuation Attempts by @danny-avila in #13583
  • ๐Ÿ“Œ fix: Preserve Project Scope Through Enforced Model Specs by @danny-avila in #13586
  • ๐Ÿชž fix: Preserve Model Spec Icons Across Stream Resume and Abort by @danny-avila in #13603
  • ๐Ÿง  fix: Bound Memory Agent Input by @danny-avila in #13606
  • ๐Ÿ‘ท fix: Preserve disabled build info flag in loadDefaultInterface by @ethanlaj in #13608
  • โœ‚๏ธ fix: Deduplicate Skill Bodies Across Fresh Primes and History by @danny-avila in #13610
  • ๐ŸŒ fix: Prefer Imagen-Specific Location over Default Google Region by @pedrojreis in #13613
  • ๐Ÿ›ฌ fix: Coalesce Auth Recovery into a Single Refresh Flight by @danny-avila in #13618
  • ๐Ÿงต fix: Reject Preliminary Parent Follow-Ups by @danny-avila in #13619
  • โณ fix: Extend and Decouple MCP OAuth Flow Timeouts by @danny-avila in #13622
  • โ™Š fix: Sanitize MCP Tool Schemas for Gemini/Vertex Compatibility by @danny-avila in #13623
  • ๐Ÿšซ fix: Hide Empty Agents Endpoint from Model Selector by @danny-avila in #13624
  • ๐Ÿ—๏ธ fix: Resolve MCP Runtime User and Request Placeholders by @danny-avila in #13626
  • ๐Ÿ”‡ fix: Suppress Expected Speech Synthesis Cancellation Errors by @upman in #13627
  • ๐ŸŽ™๏ธ fix: Resolve Speech Recognition CJS/ESM Import Shape by @upman in #13631
  • ๐Ÿ•ณ๏ธ fix: Guard Sparse Content Parts in Message Nav Preview by @upman in #13632
  • ๐ŸŽž๏ธ fix: Stream File Authoring Previews from Partial Tool Args by @danny-avila in #13634
  • ๐Ÿ“ฅ fix: ChatGPT Conversation Import Failures by @danny-avila in #13637
  • ๐Ÿชถ fix: Prevent Soft Default Model Spec from Overriding User Selections by @danny-avila in #13642
  • ๐Ÿงญ fix: Mobile Sidebar Navigation on Projects View by @danny-avila in #13647
  • ๐ŸŽซ fix: Forward User Auth Headers on Model Fetch by @Ivan-Apro in #13616
  • ๐Ÿšช fix: Align Mobile Sidebar Toggle Gating with JS Breakpoint Across Views by @danny-avila in #13654
  • ๐Ÿ“ fix: Sidebar Chat List Width Tracking and Stale Row Measurements by @danny-avila in #13655
  • ๐Ÿšท fix: Reject Client-Supplied Subagent Configuration by @danny-avila in #13660
  • ๐ŸŽ’ fix: Carry Request-Scoped MCP Tools into PTC Execution by @danny-avila in #13669
  • ๐Ÿš fix: Reuse Request-Scoped MCP Connections per Run by @danny-avila in #13673
  • ๐Ÿ”’ fix: Scan All Message Roles in messageFilter.pii by @dustinhealy in #13677
  • ๐Ÿ›Ÿ fix: Auto-Recover from Stale Service Worker Assets After Deploys by @danny-avila in #13686
  • ๐Ÿฅ‡ fix: Send First OpenID Audience on Authorization Requests by @danny-avila in #13694
  • ๐Ÿ”Œ fix: Preserve Ephemeral MCP Selections Across Model Switches by @danny-avila in #13697
  • ๐Ÿ›ฌ fix: Prevent Viewed Conversations from Re-Arming the Soft Default Spec by @danny-avila in #13699
  • ๐Ÿชข fix: Prune Dangling Skill IDs from Agent Allowlists by @danny-avila in #13702
  • ๐Ÿ—„๏ธ fix: Gate Request-Scoped MCP Servers Out of Persistent Tool Cache by @danny-avila in #13672
  • ๐Ÿงพ fix: Bill Subagent Child-Run Model Usage in Parent Transactions by @danny-avila in #13683
  • ๐Ÿ”ง fix: Honor NO_PROXY for OpenID requests when PROXY is set by @danny-avila in #13716
  • ๐ŸŒ fix: Centralize Outbound Proxy Handling by @danny-avila in #13726
  • ๐ŸŒฟ fix: Preserve Viewed Branch on Sibling-Tree Churn by @danny-avila in #13732
  • ๐ŸŽจ fix: Gate message hover-reveal controls on hover capability, not width by @danny-avila in #13712
  • ๐Ÿ” fix: Render Web Search Favicons on Raw SERP Results During Streaming by @danny-avila in #13741
  • ๐Ÿ”ข fix: Prevent "approximately" tildes from rendering as markdown subscript by @danny-avila in #13743
  • ๐Ÿช™ fix: Correct Context Usage Gauge After Summarization by @danny-avila in #13744
  • ๐Ÿ“ˆ fix: Isolate RUM Telemetry Proxy Auth from App Auth by @danny-avila in #13765
  • ๐Ÿซท fix: Withhold Anthropic Custom Headers From User URLs by @danny-avila in #13767
  • ๐Ÿ˜๏ธ fix: Scope Skill Sync Status by @danny-avila in #13771
  • ๐Ÿ—‚๏ธ fix: Scope Token Config Cache by @danny-avila in #13770
  • ๐Ÿชข fix: Tie MCP Cleanup To Resumable Runs by @danny-avila in #13769

๐Ÿ”ง Refactoring and Performance

  • ๐Ÿ‘‘ refactor: Scope Role Cache Keys by Isolation Context by @danny-avila in #13454
  • ๐ŸŽ›๏ธ refactor: Scope App-Config Override Cache by Isolation Context by @danny-avila in #13455
  • ๐Ÿฉป refactor: Replace Opaque OAuth Errors with Structured Failure Diagnostics by @danny-avila in #13471
  • ๐Ÿƒ refactor: Agent Avatar Conversation Icons and Streaming Indicators by @danny-avila in #13563
  • ๐Ÿ›๏ธ refactor: Prioritize Deployment Skills over Persisted Duplicates by @danny-avila in #13575
  • ๐ŸงŠ perf: Memoize Completed Markdown Blocks During Streaming by @danny-avila in #13576
  • โšก perf: Migrate data-schemas Build to tsdown with isolatedDeclarations by @danny-avila in #13578
  • โšก๏ธ refactor: Migrate @librechat/api Build to tsdown by @danny-avila in #13595
  • โšก refactor: Migrate data-provider Build to tsdown by @danny-avila in #13597
  • โšก refactor: Migrate @librechat/client Build to tsdown by @danny-avila in #13596
  • ๐Ÿ“ฆ chore: Declare runtime deps externalized by tsdown in @librechat/api by @danny-avila in #13600
  • ๐Ÿ“‹ refactor: Attach Message Context to Langfuse Feedback Scores by @danny-avila in #13604
  • โš™๏ธ refactor: Lazy-load HEIC upload conversion by @upman in #13638
  • โš™๏ธ refactor: lazy-load React Query Devtools by @upman in #13639
  • โš™๏ธ refactor: Lazy load locale resources by @upman in #13640
  • โš™๏ธ refactor: Brotli asset serving behind a feature toggle by @upman in #13641
  • ๐Ÿคซ refactor: Silent MCP OAuth Refresh on Mid-Session 401 by @danny-avila in #13369
  • ๐Ÿ“ก refactor: Gate Noisy Redis OTEL Instrumentation by @danny-avila in #13764
  • ๐Ÿงพ refactor: Disable Context Cost By Default by @danny-avila in #13768

๐Ÿงช Tests

  • ๐Ÿงช test: Add E2E Regression For 2FA framer-motion Crash by @danny-avila in #13513
  • ๐ŸŽญ test: Run Mock E2E Suite Through createRun With In-Process Fake Model by @danny-avila in #13508
  • ๐ŸŒฒ test: Add E2E Coverage for Message Tree Streaming by @danny-avila in #13570
  • โœ… ci: Add mock e2e coverage for agents, prompts, MCP, and chat flows by @teresama in #13589

๐Ÿ“ฆ Dependencies, Chores & CI

๐ŸŒ Internationalization

New Contributors

Full Changelog: v0.8.6...v0.8.7-rc1

Don't miss a new LibreChat release

NewReleases is sending notifications on new releases.