Skip to content

v0.8.7-rc1

Pre-release
Pre-release

Choose a tag to compare

@danny-avila danny-avila released this 15 Jun 19:38
· 24 commits to main since this release
055585f

🏞️ 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

πŸ› 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