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

_154+ commits._

### Features
- **📚 docs: Add Skills, Subagents, and CloudFront References (#13096)** (947bfa4)
- **🎭 feat: Support OpenID Audience On Refresh Grants (#13077)** (0a7255b)
- **🌐 feat: Support Vertex AI Multi-Region Endpoints (#13044)** (c3ec23f)
- **🧭 feat: Add OpenRouter Prompt Cache Setting (#13029)** (8a654dc)
- **🌥️ feat: Add Optional Region-aware S3/CloudFront Storage Keys (#12987)** (1bc2692)
- **🔐 feat: Add Signed CloudFront File Downloads (#12970)** (9c81792)
- **🧭 feat: Add Message Navigation Strip & Redesign Scroll-to-Bottom (#12657)** (4bd5630)
- **🧮 feat: Add GPT-5.5 Token Definitions (#12973)** (56b87f7)
- **🔍 feat: add Tavily as Search and Scraper Provider (#12581)** (3da1d8c)
- **🪟 feat: Add allowedAddresses Exemption List For SSRF-Guarded Targets (#12933)** (4cce88b)
- **🚫 feat: Add Support for `none` Reranker Type in Web Search Config (#12765)** (2503365)

### Fixes
- **📦 chore: bump `@librechat/agents` to v3.1.86, npm audit, build fix (#13105)** (8eb9de0)
- **🛡️ fix: Harden OpenID Session Token Reuse (#13086)** (7b9a57a)
- **🍪 fix: Refresh CloudFront Cookies On Auth Refresh (#13083)** (17a0822)
- **🧵 fix: Preserve Upload Context Across Multipart Routes (#13072)** (8735c17)
- **🛡️ fix: Harden Artifact Routing Lookups (#13069)** (b32b328)
- **🪙 fix: Pass appConfig to getBalanceConfig in set-balance script (#13070)** (0f59cd7)
- **🗝️ fix: Enforce Skill Share Role Permission (#13062)** (0449c42)
- **🧬 fix: Bound Subagent Expansion (#13064)** (70b6bb6)
- **🧮 fix: Count Rejected Skill Import Bytes (#13063)** (9797c85)
- **🧯 fix: Bound Permission Superset Cache Inputs (#13065)** (822ad6c)
- **🛂 fix: Restrict OpenID JWT Bearer Reuse (#13052)** (763fab2)
- **🛰️ fix: Validate Vertex Endpoint Overrides (#13054)** (846eb0a)
- **🛡️ fix: Gate Bash PTC Capabilities (#13053)** (5bab22d)
- **☁️ fix: Enable Azure Agent Provider Uploads (#13045)** (030dc98)
- **🦘 fix: Skip OpenAI Model Fetch For User-Provided Keys (#13038)** (2e683f1)
- **📜 fix: Scope Read File Prompt For Code Agents (#13040)** (80ce956)
- **🛟 fix: Allow Empty `modelSpecs.list` to Unstick Admin-Panel Saves (#13036)** (0d5c2b3)
- **🗂️ fix: Remove Generated Code Files From Prompt Context (#13037)** (ac3600c)
- **🛟 fix: Summarization Provider misses `vertexai` + case-mismatched custom endpoints (#13025)** (b922187)
- **🛟 fix: persist Vertex Gemini 3 `thoughtSignatures` across DB round-trips (#13026)** (d905672)
- **⛴️ fix: Use Bitnami Legacy MongoDB Image in Helm Chart (#13032)** (a565a61)
- **🧭 fix: Preserve Resend Files for Subagents (#13030)** (2289077)
- **📦 chore: Bump `@librechat/agents` to v3.1.81 & npm audit fix (#13027)** (a107520)
- **🧵 fix: Include Code Outputs in Thread File Lookup (#13023)** (3d5e534)
- **🧭 fix: Preserve File Search Upload Target (#13019)** (a43bc45)
- **🚦 fix: Preserve URL Auto-Submit Startup Config (#13017)** (e7dbae3)
- **🧠 fix: charge Gemini reasoning tokens in agent usage accounting (#13014)** (0fe203a)
- **🪪 fix: Preserve OIDC Logout ID Token Hint (#12999)** (4238dd4)
- **🧭 fix: Navigate Signed CDN Downloads (#12998)** (8f92ec0)
- **⏱️ fix: Align Auto-Refill Next Date (#12980)** (ddf5879)
- **🌐 fix: Percent-encode X-File-Metadata header for Unicode filenames (#12983)** (5efbcb8)
- **🛂 fix: Harden Agent File Preview Access (#12981)** (5c338a4)
- **⏳ fix: Preserve Temporary Chat Retention Config (#12985)** (f0ab71f)
- **🌐 fix: Preserve Unicode Filenames (#12977)** (f2de3a2)
- **🛰️ fix: Honor Anthropic Vertex Configuration (#12972)** (69395d0)
- **🧬 fix: Subagent MCP requestBody Propagation (bump `@librechat/agents to 3.1.78` + cleanup) (#12959)** (f839a44)
- **🔐 fix: Forward per-file entity_id through code-env priming (#12958)** (9efd61d)
- **🐛 fix: Propagate User Identity to Subagent MCP Tool Calls (#12950)** (bff9bfe)
- **🛡️ fix: Sanitize HTML In Admin Banner And MCP Config Dialog (#12927)** (619f28d)
- **🛡️ fix: Validate Avatar URL Before Fetch (#12928)** (c7f38d9)
- **🔐 fix: Avoid Logging Password On Login Validation Error (#12926)** (85fa881)
- **🧯 fix: Harden Code Env Filepath Uploads (#12936)** (5013d6d)
- **🛡️ fix: Harden MCP Redirect SSRF Checks (#12931)** (41a6d6d)
- **🧷 fix: Pin GitNexus Native Dependency (#12937)** (5b567f5)
- **🛡️ fix: Harden GitNexus Index Workflow (#12935)** (59e90a1)
- **🧹 fix: Clear MCP OAuth Tokens On Revoke** (4e45e8e)
- **🧭 fix: Migrate Anthropic Long Context (#12911)** (eb22bb6)
- **📌 fix: Stabilize Agent Prompt Cache Prefix (#12907)** (f3e1201)
- **🛡️ fix: Handle MCP Tool Cache Lookup Failures (#12910)** (5b5e2b0)
- **🩹 fix: Sync ControlCombobox popover width with trigger after layout changes (#12887)** (781bfb8)
- **📥 fix: Resolve Imported-Conversation Default Model From Runtime modelsConfig (#12885)** (65990a3)
- **🔌 fix: Follow 307/308 redirects in MCP streamable HTTP transport (#12850)** (3758380)
- **🩹 fix: Polish code-execution attachment UX (#12870)** (756530c)
- **📂 fix: Preserve Nested Skill Paths in Code-Env Uploads (#12877)** (4a5fc70)
- **🩹 fix(SSE): Treat `responseCode === 0` as Transport Failure, Not Server Error (#12834)** (61b9b1d)
- **🧜‍♂️ fix: Preserve Mermaid `foreignObject` HTML in Sanitized SVG (#12819)** (85894c1)
- **🔌 fix: Prevent Repeated Idle Check Triggers for Users With Failed MCP Connections (#12853)** (1f37ec8)
- **🧹 fix: Graceful MCP OAuth Revoke Cleanup When Tokens Are Missing (#12825)** (8404343)
- **🛡️ fix: Filter `user_provided` Sentinel in Tool Credential Loading (#12840)** (f2df0ea)
- **💎 fix: Stop Double-Counting Cache Tokens for Gemini/OpenAI in Usage Spend (#12868)** (89bf2ab)
- **🛂 fix: Skip Inherited / Mark Skill Files Read-Only in Code-Env Pipeline (#12866)** (46a86d8)
- **📂 fix: Preserve Nested Folder Paths for Code-Execution Artifacts (#12848)** (c9dee96)
- **🔧 fix: Replace Literal NUL Bytes in handlers.spec Test Fixture + Normalize CRLF (#12852)** (7070eb7)
- **🚫 fix: Reject Binary Files in read_file Sandbox Fallback (No More Mojibake) (#12851)** (2624c18)
- **🌱 fix: Inject Code-Tool Files Into Graph Sessions on First Call (+ read_file Sandbox Fallback) (#12831)** (24e29aa)
- **🛡️ fix: Strict Opt-In Skills Activation per Agent (#12823)** (596f806)
- **🩹 fix: define appConfig in Responses API createResponse** (5c69d1f)
- **🧼 fix: Missing Enum imports** (89b6bff)
- **🛡️ fix: Prevent silent crash from unhandled MCP OAuth reconnect rejections (#12812)** (738003b)

### Backend
- **✨ v0.8.6-rc1 (#13094)** (68d80f3)
- **🐳 ci: Build Docker Client Package With Data Provider Dist (#13097)** (b570ce4)
- **🍪 refactor: Refresh CloudFront Media Cookies (#13091)** (6b5596e)
- **🌩️ feat: Strict CloudFront signed cookie enforcement via `requireSignedAccess` (#13078)** (05d4e90)
- **🌍 i18n: Update translation.json with latest translations (#13080)** (9290823)
- **📦 chore: Bump `@librechat/agents` to v3.1.85 and `mermaid` to v11.15.0 (#13079)** (3e7262c)
- **🏷️ refactor: Rename Code Interpreter Labels To Run Code (#13071)** (36e9535)
- **📦 feat: Configure Skill Import Size Limit (#13073)** (c385f2b)
- **🪵 chore: Log Subagent Limit Hits (#13068)** (7631366)
- **🌍 i18n: Update translation.json with latest translations (#13058)** (508168f)
- **🪪 refactor: Require Remote OIDC Audience for Agents API OAuth (#13066)** (52ccb13)
- **📜 refactor: Improve Skill Handling Logs (#13057)** (7129b1b)
- **🖥️ style: Render Bash PTC Calls With Bash UI (#13046)** (1e9d0cb)
- **🧬 refactor: Align OpenRouter Reasoning Payloads (#13039)** (8fc68eb)
- **🧰 refactor: Use Bash PTC for Agent Tools (#13042)** (715a4a5)
- **🛡️ chore: Harden Docker Dev Image Builds (#13041)** (94ac44e)
- **🔐 feat: Mint Code API Auth Tokens (#13028)** (c67e2b5)
- **📦 chore: Bump `@babel/preset-env` to v7.29.5 (#13034)** (c7a4e6d)
- **🔄 feat: Cross-Origin Admin OAuth Refresh (#13007)** (e262219)
- **🖼️ refactor: Tool Image Outputs outside of Tool Group Auto-Collapses (#12949)** (26a6312)
- **📦 chore: bump `@librechat/agents` to v3.1.80 (#13021)** (119ac9c)
- **🐛 refactor: anchor code-generated file lookup on threadFileIds for branched conversations (#13004)** (eb20d88)
- **🧱 refactor: typed CodeEnvRef + kind discriminator + principal-aware sandbox cache (#12960)** (93c4ef4)
- **🛡️ refactor: Scope `allowedAddresses` By Port (#13022)** (9441563)
- **📦 chore: Update `@librechat/agents` to v3.1.79 (#13000)** (b39bf83)
- **📦 chore: npm audit fixes and Mongoose 8.23 TypeScript follow-ups (#12996)** (40a05bb)
- **🪟 refactor: Improve Subagent Dialog Prompt Rendering (#12982)** (65b63b8)
- **🌍 i18n: Update translation.json with latest translations (#12964)** (09c8c05)
- **🚀 feat: Decouple File Attachment Persistence from Preview Rendering (#12957)** (6c6c72d)
- **🧵 feat: Enable Anthropic Tool Argument Streaming (#12962)** (cf06575)
- **⌨️ refactor: Clarify Bash Command Drafting State (#12963)** (25a4556)
- **🗃️ refactor: Keep Code Artifacts Manual-Open (#12961)** (16a65b6)
- **🌩️ feat: CloudFront CDN File Strategy (#12193)** (187ab78)
- **⚡ refactor: Bound Concurrent Office-HTML Rendering for Code Artifacts (#12951)** (4583d5a)
- **📄 feat: Rich File Artifact Previews for DOCX, CSV, XLSX, PPTX (#12934)** (f20419d)
- **🔐 feat: OIDC Bearer Token Authentication for Remote Agent API (#12450)** (5683706)
- **🛡️ refactor: Restrict User Tavily Endpoint URLs (#12946)** (f5dd053)
- **📦 chore: bump `@librechat/agents` to v3.1.77** (3170bd8)
- **🛂 refactor: Avoid Default Tavily Safe Search (#12939)** (2c4a780)
- **📦 chore: bump `@librechat/agents` to v3.1.76** (d6d70ee)
- **🌍 i18n: Update translation.json with latest translations (#12916)** (9b37617)
- **🚦 feat: Make URL Auto-Submit Configurable (#12929)** (37429e8)
- **🧬 chore: Align LibreChat With Agents LangChain Upgrade (#12922)** (1b79e0b)
- **💭 feat: Require Explicit Auto-agent Enablement for Memories (#12886)** (74307e6)
- **📦 chore: update @librechat/agents to v3.1.74 (#12869)** (915b30c)
- **🪟 feat: Render Source-Code Artifacts in the Side Panel (#12854)** (f69e8e2)
- **🪟 feat: Render Code-Execution Text Artifacts as Side-Panel Artifacts (#12832)** (47f65fe)
- **🪢 feat: Enable Tool-Output References for Bash Tool (#12830)** (f7e47f6)
- **📄 feat: Auto-render Text-Based Code Execution Artifacts Inline (#12829)** (8c073b4)
- **📦 chore: Update `@librechat/agents` to v3.1.70** (7f3d410)
- **🌉 chore: Gate Skills UI by Agent Capability Checks (#12793)** (5239942)
- **🪆 feat: Subagent configuration in Agent Builder (#12725)** (d83cb84)
- **🧰 refactor: Unify code-execution tools (#12767)** (35bf04b)
- **🔐 chore: Skills Permissions Housekeeping, Reachable Admin Dialog + Defaults Tests (#12766)** (ac913aa)
- **🧽 refactor: Skills polish: precedence-aware body validation, controller drop logs, SkillPills rename (#12760)** (91cd3f7)
- **🔌 refactor: Decouple bash_tool from Per-User CODE_API_KEY (#12712)** (7581540)
- **📦 chore: bump `@librechat/agents` to v3.1.68-dev.0** (9e013be)
- **📍 feat: `always-apply` frontmatter: auto-prime skills every turn (#12746)** (dfc3dfa)
- **🛡️ feat: Persist & enforce `disable-model-invocation` / `user-invocable` / `allowed-tools` (#12745)** (82173f7)
- **🪜 chore: Plumb `allowedTools` through `resolveManualSkills` (#12744)** (bb13d5b)
- **🎬 feat: Prime Manually-Invoked Skills via $ Popover (#12709)** (539c4c7)
- **📦 chore: bump `@librechat/agents` to dev latest** (b88e347)
- **🪆 feat: Compose Agent Scope and Active-State Filters in $ Popover (#12708)** (3f1bde4)
- **🎚️ feat: Per-User Skill Active/Inactive Toggle with Ownership-Aware Defaults (#12692)** (9225a27)
- **🎯 feat: Per-Agent Skill Selection in Builder and Runtime Scoping (#12689)** (3e064c2)
- **💲 feat: Manual Skill Invocation via $ Command Popover (UI only) (#12690)** (9b4ae06)
- **🎭 feat: Custom UI Renderers for Skill Tool Calls (#12684)** (3b82041)
- **⚙️ feat: Skill runtime integration: catalog, tools, execution, file priming (#12649)** (64ec5f1)
- **📜 feat: Skills UI + Initial E2E CRUD / Sharing (#12580)** (f6ee2ea)
- **🧬 feat: Scaffold Skills CRUD with ACL Sharing and File Schema (#12613)** (963068b)

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