๐๏ธ 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, andtsdownbuilds.
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
onResultChannel 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
- ๐ท๏ธ ci: Sync Helm Chart Tags by @danny-avila in #13446
- ๐ณ chore: Upgrade Docker Builds To Node 24 by @danny-avila in #13448
- โ๏ธ ci: Fix Helm Tag Sync Workflow Planning by @danny-avila in #13451
- โก chore: Upgrade Vite For Node 24 by @danny-avila in #13450
- ๐ผ ci: Guard Scoped Model Applies the Isolation Plugin by @danny-avila in #13458
- ๐ชช ci: Fix Helm Tag Sync Git Auth by @danny-avila in #13460
- ๐คซ chore: Quiet Repetitive Log Noise from Balance, CloudFront, and Capability Paths by @danny-avila in #13461
- ๐ refactor: Reduce Frontend Build Warning Noise by @danny-avila in #13463
- ๐ ci: Fix Locize Sync CDN Mode by @danny-avila in #13465
- โก refactor: Change Minifier from 'terser' to 'oxc' in Vite Config by @danny-avila in #13476
- ๐งญ ci: Use System Chrome for Mock E2E by @danny-avila in #13481
- ๐ชง chore: Generalize Project Name Placeholder by @danny-avila in #13514
- ๐ฆ chore: npm audit fix by @danny-avila in #13515
- ๐ชน feat: Collapse Empty Projects Section in the Sidebar by Default by @danny-avila in #13531
- ๐ง chore: Update ESLint config, Import Sorting script, Test Sharding, Bump @librechat/agents by @danny-avila in #13552
- ๐ท ci: Type-check the Client Workspace by @danny-avila in #13560
- ๐ฆ chore: Update Turbo to v2.9.16 by @danny-avila in #13564
- โฌ๏ธ chore: Bump TypeScript to 5.9.3 by @danny-avila in #13584
- ๐ง chore: Enforce isolatedDeclarations in data-schemas tsconfig by @danny-avila in #13593
- ๐ท ci: Add API runtime smoke (boot the production image) to docker-smoke by @danny-avila in #13605
- โ chore: Upgrade @google/genai SDK to ^2.8.0 by @danny-avila in #13625
- ๐ฆ chore: Bump @librechat/agents to v3.2.32 by @danny-avila in #13633
- ๐ฆ chore: Bump jest-junit to v17.0.0 by @danny-avila in
f074bd9 - ๐ฆ chore: Bump @librechat/agents to v3.2.33 by @danny-avila in
e25373d - ๐ฐ ci: Close Leaked Redis Clients in Cache Integration Tests by @danny-avila in #13649
- ๐ช ci: Shard Windows Frontend Unit Tests by @danny-avila in #13651
- ๐๏ธ ci: Cache Dependencies and Builds in Cache Integration Tests by @danny-avila in #13652
- ๐ค ci: Cache and Authenticate HF Model Downloads in GitNexus Index by @danny-avila in #13653
- โซ ci: Bump GitNexus to 1.6.7 to Fix Embeddings Index Timeout by @danny-avila in #13658
- ๐๏ธ chore: Use Element Access over
any-Casts in Registry Cache Spec by @danny-avila in #13664 - ๐ฆ chore: Update Turbo package to v2.9.17 by @danny-avila in
eebbde7 - ๐งน ci: Relieve disk pressure on GitNexus deploy by @danny-avila in #13666
- ๐ฆ chore: npm audit fix by @danny-avila in #13701
- ๐ช fix: Cross-Platform Absolute-Path Check in tsdown neverBundle Predicates by @danny-avila in #13700
- โจ v0.8.7-rc1 by @danny-avila in #13592
- ๐ chore: Bump Helm chart version to 2.0.6 by @danny-avila in
5986a1c6d2
๐ Internationalization
- ๐ i18n: Update translation.json with latest translations by @danny-avila in #13466, #13482, #13505, #13766
New Contributors
- @jcbartle made their first contribution in #13429
- @teresama made their first contribution in #13472
- @joohan-lee made their first contribution in #13468
- @graphaelli made their first contribution in #13544
- @rene84 made their first contribution in #13573
- @pedrojreis made their first contribution in #13613
- @Ivan-Apro made their first contribution in #13616
Full Changelog: v0.8.6...v0.8.7-rc1