## danny-avila/LibreChat — v0.8.6…v0.8.7-rc1

_176+ commits._

### Features
- **🧬 feat: Add GitHub Skill Sync (#13293)** (197a1dc)
- **✅ ci: Add mock e2e coverage for agents, prompts, MCP, and chat flows (#13589)** (9628930)
- **🛰️ feat: Add GPT-5.5 + Frontier OpenAI Models, Drop Deprecated Defaults (#13636)** (ca26a2d)
- **📖 feat: Add Claude Fable 5 Support (#13628)** (2aea5f4)
- **👷 ci: Add API runtime smoke (boot the production image) to docker-smoke (#13605)** (0bd1a73)
- **🌲 test: Add E2E Coverage for Message Tree Streaming (#13570)** (15108f0)
- **🌱 feat: Support Soft Default Model Spec (#13554)** (83bdd3d)
- **🗂️ feat: Add Deployment Skill Directory (#13523)** (2c8d54e)
- **🗂️ feat: Add Agent File Authoring Tools (#13435)** (1da789b)
- **🎚️ feat: Add Focus Management and Drag-to-Scrub to MessageNav (#13497)** (4dce0fd)
- **🗂️ feat: Add Private Chat Projects (#13467)** (baa23a8)
- **🔗 feat: Add Granular Access Control to Shared Links via ACL System (#13051)** (86fe79c)
- **🛰️ feat: Add Auth Fallback Observability (#13488)** (1fa28ec)

### Fixes
- **🪢 fix: Tie MCP Cleanup To Resumable Runs (#13769)** (055585f)
- **🗂️ fix: Scope Token Config Cache (#13770)** (0537930)
- **🏘️ fix: Scope Skill Sync Status (#13771)** (62ed62a)
- **🫷 fix: Withhold Anthropic Custom Headers From User URLs (#13767)** (bf94697)
- **📈 fix: Isolate RUM Telemetry Proxy Auth from App Auth (#13765)** (fbc990f)
- **🪙 fix: Correct Context Usage Gauge After Summarization (#13744)** (44c253d)
- **🔢 fix: Prevent "approximately" tildes from rendering as markdown subscript (#13743)** (7c071e2)
- **🔍 fix: Render Web Search Favicons on Raw SERP Results During Streaming (#13741)** (1ae54b3)
- **🌐 fix: Centralize Outbound Proxy Handling (#13726)** (98704f2)
- **🎨 fix: Gate message hover-reveal controls on hover capability, not width (#13712)** (16bbc4b)
- **🌿 fix: Preserve Viewed Branch on Sibling-Tree Churn (#13732)** (9618be6)
- **🧾 fix: Bill Subagent Child-Run Model Usage in Parent Transactions (#13683)** (3c3837b)
- **🔧 fix: Honor NO_PROXY for OpenID requests when PROXY is set (#13716)** (65e2838)
- **🗄️ fix: Gate Request-Scoped MCP Servers Out of Persistent Tool Cache (#13672)** (49859c0)
- **🪢 fix: Prune Dangling Skill IDs from Agent Allowlists (#13702)** (5ceabad)
- **🪟 fix: Cross-Platform Absolute-Path Check in tsdown neverBundle Predicates (#13700)** (dea71c8)
- **📦 chore: npm audit fix (#13701)** (8154a31)
- **🛬 fix: Prevent Viewed Conversations from Re-Arming the Soft Default Spec (#13699)** (2d6b7df)
- **🔌 fix: Preserve Ephemeral MCP Selections Across Model Switches (#13697)** (b39ec16)
- **🥇 fix: Send First OpenID Audience on Authorization Requests (#13694)** (731a7c5)
- **🛟 fix: Auto-Recover from Stale Service Worker Assets After Deploys (#13686)** (788cc5a)
- **🔒 fix: Scan All Message Roles in messageFilter.pii (#13677)** (e0f715b)
- **🚐 fix: Reuse Request-Scoped MCP Connections per Run (#13673)** (139d61c)
- **🎒 fix: Carry Request-Scoped MCP Tools into PTC Execution (#13669)** (65bca95)
- **🚷 fix: Reject Client-Supplied Subagent Configuration (#13660)** (a52c824)
- **🚪 fix: Align Mobile Sidebar Toggle Gating with JS Breakpoint Across Views (#13654)** (0d24cbd)
- **🎫 fix: Forward User Auth Headers on Model Fetch (#13616)** (dffd27f)
- **⏫ ci: Bump GitNexus to 1.6.7 to Fix Embeddings Index Timeout (#13658)** (b4fa200)
- **📐 fix: Sidebar Chat List Width Tracking and Stale Row Measurements (#13655)** (4a9af12)
- **🧭 fix: Mobile Sidebar Navigation on Projects View (#13647)** (87cdd37)
- **🪶 fix: Prevent Soft Default Model Spec from Overriding User Selections (#13642)** (da6b74e)
- **📥 fix: ChatGPT Conversation Import Failures (#13637)** (ba5778d)
- **🗝️ fix: Resolve MCP Runtime User and Request Placeholders (#13626)** (7eafe31)
- **⏳ fix: Extend and Decouple MCP OAuth Flow Timeouts (#13622)** (a7f1691)
- **🎞️ fix: Stream File Authoring Previews from Partial Tool Args (#13634)** (c216b3c)
- **✂️ fix: Deduplicate Skill Bodies Across Fresh Primes and History (#13610)** (793cbd4)
- **🔇 fix: Suppress Expected Speech Synthesis Cancellation Errors (#13627)** (7791fcf)
- **🕳️ fix: Guard Sparse Content Parts in Message Nav Preview (#13632)** (cecaa17)
- **🎙️ fix: Resolve Speech Recognition CJS/ESM Import Shape (#13631)** (a91c45d)
- **🧠 fix: Bound Memory Agent Input (#13606)** (8fc2314)
- **🌍 fix: Prefer Imagen-Specific Location over Default Google Region (#13613)** (82f7200)
- **♊ fix: Sanitize MCP Tool Schemas for Gemini/Vertex Compatibility (#13623)** (6c36d80)
- **🚫 fix: Hide Empty Agents Endpoint from Model Selector (#13624)** (6fc72e5)
- **🧵 fix: Reject Preliminary Parent Follow-Ups (#13619)** (fd47282)
- **🛬 fix: Coalesce Auth Recovery into a Single Refresh Flight (#13618)** (753e53e)
- **👷 fix: Preserve disabled build info flag in loadDefaultInterface (#13608)** (d231972)
- **🪞 fix: Preserve Model Spec Icons Across Stream Resume and Abort (#13603)** (2a956f1)
- **📌 fix: Preserve Project Scope Through Enforced Model Specs (#13586)** (4b699fb)
- **🚧 fix: Add Per-User Throttle to 2FA Continuation Attempts (#13583)** (209e8d1)
- **🌿 fix: Anchor Post-Auth MCP Stream to Submission Message Tree (#13582)** (3f4001f)
- **🔐 fix: Resolve Env Variables in MCP OAuth URL Fields (#13573)** (c80c54e)
- **📻 fix: Replay MCP OAuth Prompts for Coalesced Connections (#13565)** (cb1d536)
- **🏷️ fix: Preserve Generated Conversation Title on Stop (#13568)** (1612dba)
- **🩹 fix: Bump GitNexus to 1.6.5 and Fail-Soft the PR Index Job (#13569)** (7554f2e)
- **🧼 fix: Prevent Shared Link Caching and Strengthen Log Redaction (#13561)** (4b871a1)
- **🔀 fix: Reconcile Agent Action Credential Merges (#13559)** (07af6ee)
- **🛂 fix: Normalize Verification Flow Error Responses (#13558)** (8c71dbc)
- **📎 fix: Scope Attachment Usage to Request Owner (#13557)** (75bbefb)
- **🏷️ fix: Categorize Auth Tokens by Flow Type (#13556)** (3571dfc)
- **🚦 fix: Guard Auth Continuation with Dedicated Limiter (#13555)** (5011be4)
- **🛠️ fix: Enable Gemini Mixed Tool Config (#13538)** (ed4546c)
- **📎 fix: Preserve Provider Document Uploads (#13550)** (21607ba)
- **📊 fix: Contain Markdown Table Overflow (#13543)** (bede561)
- **🖼️ fix: Support Known Endpoint Group Icons (#13542)** (4b3fd63)
- **🪪 fix: Filter ACL Principal Details (#13524)** (c374d08)
- **🔐 fix: Reuse MCP OAuth Authorization URL (#13532)** (da58763)
- **🔐 fix: Handle Multiple Concurrent MCP OAuth Login Prompts (#13200)** (2ed59ac)
- **🪦 fix: Add Durable MCP Config Tombstones (#13534)** (aeb5adf)
- **🧭 fix: Restore Empty Skill Allowlist Catalog (#13526)** (5118a56)
- **👻 fix: Clear Project-Scoped Landing When the Selected Project Is Deleted (#13525)** (28e937a)
- **🪡 fix: Handle Missing Skill File Upsert Metadata (#13520)** (40ec77e)
- **📦 chore: npm audit fix (#13515)** (7d0fead)
- **🧪 test: Add E2E Regression For 2FA framer-motion Crash (#13513)** (f86e3ae)
- **🖼️ fix: Upgrade Framer Motion for Vite 8 Compatibility (#13512)** (a11751e)
- **💼 fix: Harden Shared-Link Message Sanitization with an Allowlist (#13510)** (dd66a43)
- **🧷 fix: Bind Agent File Context to Current Turn (#13506)** (dc42748)
- **🚦 fix: Gate Chat Starts During Readiness (#13502)** (1507246)
- **🪤 fix: Reload Messages When Reopening a Chat from a Non-Chat Route (#13501)** (45d85bd)
- **🏷️ fix: Prevent Bedrock Cache Tokens from Inflating Completion Count (#13468)** (c50b3c5)

### Backend
- **🧾 refactor: Disable Context Cost By Default (#13768)** (ec94437)
- **🌍 i18n: Update translation.json with latest translations (#13766)** (23c9226)
- **📊 chore: Bump Helm chart version to 2.0.6** (5986a1c)
- **✨ v0.8.7-rc1 (#13592)** (b917e04)
- **📡 refactor: Gate Noisy Redis OTEL Instrumentation (#13764)** (bc5a3f5)
- **🅰️ feat: Native Anthropic Provider for Custom Endpoints (#13748)** (9efe487)
- **📨 feat: Custom Headers on Built-in Provider Endpoints (#13742)** (2350ebb)
- **🪙 feat: Context Gauge UX, Hover Snapshot, Click Breakdown, Currency, Cost-On-By-Default (#13739)** (7cf2877)
- **💸 feat: Per-Agent Endpoint Token Config in Multi-Endpoint Billing (#13738)** (4ee68d5)
- **💾 feat: Persist Context Breakdown & Branch/Total Usage Cost (#13734)** (b03b2a0)
- **⌚ feat: Show Message Timestamps on Hover (#13709)** (fc2ae89)
- **📊 feat: Real-Time Context Window & Token Usage Tracking (#13670)** (db7011d)
- **💬 feat: Conversation Starters for Model Specs (#13710)** (05eb986)
- **📬 feat: Report Tool Results Per Call via `onResult` Channel (#13698)** (a8a6360)
- **🧹 ci: Relieve disk pressure on GitNexus deploy (#13666)** (919a463)
- **✨ feat: Surface Model Spec Branding on Landing and Selector (#13662)** (470be23)
- **🗝️ chore: Use Element Access over `any`-Casts in Registry Cache Spec (#13664)** (7a8a18f)
- **📦 chore: Update Turbo package to v2.9.17** (eebbde7)
- **🤫 refactor: Silent MCP OAuth Refresh on Mid-Session 401 (#13369)** (c27d6b8)
- **⚙️ refactor: lazy-load React Query Devtools (#13639)** (865e1da)
- **🤗 ci: Cache and Authenticate HF Model Downloads in GitNexus Index (#13653)** (d91cec2)
- **🗜️ ci: Cache Dependencies and Builds in Cache Integration Tests (#13652)** (fe7bf39)
- **🛡️ feat: Configurable Message PII Filter (#13602)** (5867f1a)
- **🪟 ci: Shard Windows Frontend Unit Tests (#13651)** (70f7450)
- **🚰 ci: Close Leaked Redis Clients in Cache Integration Tests (#13649)** (56281ec)
- **⚙️ refactor: brotli asset serving behind a feature toggle (#13641)** (346ebea)
- **⚙️ refactor: Lazy load locale resources (#13640)** (db863e7)
- **⚙️ refactor: Lazy-load HEIC upload conversion (#13638)** (5660873)
- **📦 chore: Bump `@librechat/agents` to v3.2.33** (e25373d)
- **📦 chore: Bump `jest-junit` to v17.0.0** (f074bd9)
- **📦 chore: Bump `@librechat/agents` to v3.2.32 (#13633)** (d7fc4a7)
- **♊ chore: Upgrade `@google/genai` SDK to ^2.8.0 (#13625)** (9db68ee)
- **📋 refactor: Attach Message Context to Langfuse Feedback Scores (#13604)** (ae0c187)
- **📦 chore: Declare runtime deps externalized by tsdown in `@librechat/api` (#13600)** (98755d8)
- **🧩 feat: Enable Model Spec Subagents (#13598)** (fb87abe)
- **⚡ refactor: Migrate `@librechat/client` build to `tsdown` (#13596)** (cb6dbc8)
- **⚡ refactor: Migrate `data-provider` Build to `tsdown` (split tsc dts) (#13597)** (fbc51f6)
- **⚡️ refactor: Migrate `@librechat/api` build to `tsdown` (#13595)** (6bc75d2)
- **🔧 chore: Enforce isolatedDeclarations in data-schemas tsconfig (#13593)** (50a6a5b)
- **⬆️ chore: Bump TypeScript to 5.9.3 (+ typescript-eslint 8.60.1) (#13584)** (6edbafd)
- **⚡ perf: Migrate `data-schemas` Build to tsdown with isolatedDeclarations (#13578)** (192703e)
- **🧊 perf: Memoize Completed Markdown Blocks During Streaming (#13576)** (15ea036)
- **📊 feat: Surface Message Feedback as Langfuse Scores (#13544)** (90ebecb)
- **🏛️ refactor: Prioritize Deployment Skills over Persisted Duplicates (#13575)** (6950448)
- **🩹 chore: Double-Assert Partial Test Fixture in EndpointIcon (#13567)** (9bf7046)
- **📦 chore: Update Turbo to v2.9.16 (#13564)** (9a596fd)
- **👷 ci: Type-check the Client Workspace (#13560)** (265d660)
- **🃏 refactor: Agent Avatar Conversation Icons and Streaming Indicators (#13563)** (727dd3b)
- **⏳ feat: Make OpenID Token Reuse Window Configurable (#13546)** (9882234)
- **🏪 feat: Surface Agent Marketplace in Model Selector (#13553)** (5c00bbe)
- **🔧 chore: Update ESLint config, Import Sorting script, Test Sharding, Bump `@librechat/agents` (#13552)** (bfb6b22)
- **🧭 feat: Scope Model Spec Skills (#13522)** (6357ea1)
- **🪹 feat: Collapse Empty Projects Section in the Sidebar by Default (#13531)** (3fb4802)
- **📜 feat: Improve Skill Authoring Guidance (#13517)** (44ed786)
- **🪧 chore: Generalize Project Name Placeholder (#13514)** (2f06d14)
- **🎭 test: Run Mock E2E Suite Through `createRun` With In-Process Fake Model (#13508)** (a1bfa3b)
- **🌍 i18n: Update translation.json with latest translations (#13505)** (14d769d)
- **🌍 i18n: Update translation.json with latest translations (#13482)** (eae0025)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/danny-avila/LibreChat?utm_source=github-action)._