## LibreChat-AI/LibreChat — v0.8.8-rc1…v0.8.8-rc2

_398+ commits._

### Features
- **⚡ feat: Add Gemini 3.8 Flash Support (#15519)** (790f2b3)
- **📖 feat: Add Claude Fable 5.1 Support (#15512)** (d5b2a85)
- **📱 test: Add Mobile Chat Performance Benchmark (#15510)** (0cb1118)
- **🗿 feat: Add Attached Stateful Code Environments (#15352)** (c1cb591)

### Fixes
- **🫙 fix: Drop Blank Content Blocks From Promptless Sends (#15530)** (676cd51)
- **🛑 fix: Forward Run Abort Signal to Foreground Tool Calls (#15517)** (0219513)
- **🫱 fix: Keep Polling Through Queued Run Handoffs (#15509)** (a20048a)
- **🚢 fix: Reconnect Keyv Redis After Replica Failover (#15502)** (519e647)
- **🧶 fix: Untangle Parallel Subagent Descriptor Paths (#15492)** (6372cb0)
- **🔄 fix: Reindex MeiliSearch Documents After Indexed-Projection Changes (#15484)** (8a40e9f)
- **🔍 fix: Include Message-Matched Conversations in Sidebar Search (#15483)** (ce704f5)
- **🧳 fix: Carry Custom Endpoint Names Through Chat URLs (#15424)** (38183fd)
- **🔎 fix: Respect Search Page Limits in MeiliSearch Queries (#15482)** (0f9667b)
- **🚧 fix: Narrow Chat MCP Selections to What the Picker May Offer (#15478)** (a3c2277)
- **🛞 fix: Roll Overflow Tenant Labels Into Aggregate Metrics (#15474)** (f72a5b3)
- **🔑 fix: Decode Action OAuth Credentials After Decryption (#14698)** (5e49868)
- **🫥 fix: Clear Hidden MCP Chat Selections (#14159)** (5b75c79)
- **🧲 fix: Anchor Memory Partitions to Accessible Agents (#15475)** (6195273)
- **🧶 fix: Preserve Multi-Agent Tool Call History (#15468)** (dccd7ae)
- **🗿 fix: Bound Background Task Retention (#15477)** (a290677)
- **🧫 fix: Contain Detached Tool Output (#15476)** (ce20910)
- **🚮 fix: Replace Backtracking LangChain Error Regexes (#15473)** (0f58549)
- **🛄 fix: Reclaim Pending MCP OAuth Prompts on Resume (#15471)** (6122d21)
- **🎖️ fix: Apply Fallback Role on Group Overage (#15472)** (7453566)
- **🔐 fix: Keep OpenID Metadata Out of Logs and Traces (#15470)** (67e2107)
- **📎 fix: Keep SharePoint Picker Selections While Navigating (#15389)** (d83958d)
- **🫴 fix: Hand Composer Focus Back After Upload Dialogs (#15469)** (537ddba)
- **🪂 fix: Preserve Subscribers Through Terminal Handoffs (#15462)** (a34d5db)
- **🪄 fix: Reuse Downloaded Artifacts for Image Reads (#15454)** (c8939c9)
- **🖼️ fix: Stop Reporting a Failed Sandbox Image Read as an Unreadable Format (#15453)** (8f62280)
- **🚦 fix: Downgrade Stale Generation Fence Telemetry (#15452)** (cdfe54c)
- **🧲 fix: Draw OpenID Refresh Lookups Into System Context (#15451)** (97e1e95)
- **🗂️ fix: Resolve Code Interpreter Destination Collisions (#15449)** (2245128)
- **🩹 fix: Stop the Subagent Composer Unmounting, and Give It Main Chat's Shape (#15448)** (1ff4a44)
- **🛄 fix: Refresh Stale Skill File References (#15413)** (22a9368)
- **🖼️ fix: Give a Phase's Files Their Own Media Row (#15435)** (283aae4)
- **🎯 fix: Keep the Thinking Label on the Lightbulb's Axis While Shimmering (#15437)** (47dbcb4)
- **🔐 fix: Redirect OAuth Browser Navigations Instead of Rendering JSON (#15440)** (146664e)
- **🧺 fix: Funnel MCP Catalog Work Through a Shared Gate (#15429)** (49e1e32)
- **🫀 fix: Expire Aborted Background Tool Leases (#15428)** (2e2c29e)
- **🧿 fix: Restore Shared IP Limits for Generation Retries (#15427)** (98eb3f8)
- **🧴 fix: Strip LangChain URLs From Provider Errors (#15421)** (982a9a5)
- **🧷 fix: Fence Server-Admitted Queue Boundaries (#15393)** (f0f82ec)
- **🕰️ fix: Anchor Temporal Variables to Turn Start (#15419)** (b7ae673)
- **🧷 fix: Attach to a Continuation the Finished Run Left Behind (#15414)** (06ddaf8)
- **🧰 fix: Keep File-Backed Agent Capabilities and Their Saved Tools in Agreement (#15418)** (ccd673b)
- **🪁 fix: Keep Tool Flyouts in View (#15404)** (7b0b145)
- **🖍️ fix: Honor Agent Image Detail Settings (#15407)** (413906a)
- **🎛️ fix: Settle New Turns at the Bottom, Steady Status Dots, and Elapsed Time in the Panel (#15394)** (044894e)
- **🍃 fix: Send a Pure Inclusion Projection From the Legacy Receipt Sweep (#15390)** (14d4f27)
- **🪟 fix: Keep the Subagent Panel Steady and Honest Across Event Deliveries (#15387)** (c93bd7e)
- **🧪 fix: Align Detached Activity E2E With the Removed Running Chip (#15382)** (9472d51)
- **🍃 fix: Restore Amazon DocumentDB Compatibility Across Trigger and Subagent Writes (#15375)** (9684b24)
- **🧳 fix: Carry Stateful Environments Through Runtime Config (#15374)** (9dcef36)
- **📜 fix: Resolve MCP Server Instructions for Startup-Deferred Servers (#15361)** (29b3e2e)
- **🏕️ fix: Restore Code Environments From Runtime Config (#15373)** (91cfd04)
- **fix: log config-blocked MCP recovery at debug instead of error (#15360)** (180b565)
- **🧺 fix: Skip Oversized and Duplicate Files Instead of the Whole Batch (#15358)** (240e9e9)
- **⏱️ fix: Bound MCP Tool Discovery With a Caller Deadline (#15346)** (41c92df)
- **🛎️ fix: Enroll Remote Agent Runs in the Generation Lifecycle (#15349)** (70f7353)
- **🔄 fix: Recover Missing MCP Marketplace Catalogs (#15323)** (8fcab7e)
- **🔊 fix: Autoplay Latest Message for Browser TTS and short responses (#15347)** (36f1290)
- **🪭 fix: Settle Parent Phase Cards Without Replaying the Entrance Fold (#15345)** (4d51269)
- **👔 fix: Route Flux Finetuned Endpoints Regardless of Action (#15336)** (6425837)
- **🔒 fix: Refresh MCP OBO Tokens From the Live OpenID Session (#15334)** (fa91314)
- **📭 fix: Drop Empty Summary Parts Before Persistence (#15338)** (e003eea)
- **🐺 fix: Stop Routine MCP Teardowns From Failing Concurrent Tool Calls (#15333)** (1740f64)
- **🫀 fix: Reconcile Completed Runs Behind Apparently Open Streams on Foreground (#15342)** (2acd219)
- **🪪 fix: Admit Confirmed Generation Retries Before Message Limits (#15341)** (7a00615)
- **🪧 fix: Advertise Detached Event Actor Support from the Generation Store (#15322)** (77c2a51)
- **🕰️ fix: Guard `expires_in` So a Token Response Cannot Outlive Its Credential (#15321)** (01f5391)
- **🪪 fix: Reject ID Tokens as the OpenID Bearer Reuse Access Token (#15317)** (6c94aa8)
- **🎫 fix: Exclude System Tenant Sentinel from Code API JWT Claims (#15316)** (14d6ce7)
- **🧵 fix: Retry Shared Links After Message Persistence Gaps (#15306)** (04a7577)
- **🎰 fix: Merge Message Provenance With Compare-and-Swap Retries (#15304)** (31325b4)
- **♟️ fix: Settle First Bound Actor Events (#15300)** (f4efef4)
- **🧷 fix: Verify Scheduled HITL State Before Pausing (#15284)** (8ba7650)
- **📌 fix: Keep Pinned Chats Pinned Through a New Turn (#15230)** (151dc9e)
- **🥫 fix: Refuse to Boot on Retired JWT Secret Defaults (#15282)** (9423ad4)
- **🌐 fix: Expose Gemini Models to Vertex AI Agents (#15234)** (8b1fcc0)
- **🛗 fix: Anchor Message Nav Gestures to One Measured Rib Layout (#15272)** (3d808dc)
- **🧬 fix: Harden SAML Identity Binding (#15264)** (0d0d7d0)
- **🪪 fix: Preserve SAML NameID Bindings (#15254)** (2ec222f)

### Backend
- **✨ v0.8.8-rc2 (#14845)** (f9f1b2f)
- **📦 chore: bump `@librechat/agents` to v3.7.17 (#15531)** (90cdcb3)
- **🧊 feat: Persist Context Fading Tier Across Agent Runs (#15505)** (8a46ca0)
- **⏭️ feat: Honor an Interrupt Before the Model Has Answered (#15491)** (29f738d)
- **🪪 feat: Propagate Tenant to Agent Model Headers (#15521)** (0b96fb9)
- **🕹️ feat: Configure BYOM Tool Permissions (#15504)** (1c7a172)
- **🔭 feat: Audit PII Filter Findings (#15508)** (0570395)
- **🧤 feat: Enforce Safe BYOM Tool Approvals (#15503)** (b1c5623)
- **🗜 test: Clamp Recursive Child Inputs to Builder Types (#15498)** (434fa37)
- **🪛 chore: Align Vite Build Config With Native ESM (#15495)** (29e9d08)
- **🧴 chore: Refresh Sanitizer and Selector Parser Dependencies (#15494)** (6d56d3b)
- **🧺 feat: Preserve Partial Work at Tool Call Limits (#15486)** (2cf1007)
- **🗿 chore: Upgrade gRPC to Prevent Receive Buffer Exhaustion (#15493)** (71544f8)
- **🛞 feat: Manage Personal Code Environment Lifecycles (#15369)** (164f146)
- **🛫 feat: Enable Self-Service Code Worker Pairing (#15367)** (51edb2a)
- **🪶 feat: Enable Standalone Skill Authoring (#15480)** (aa75399)
- **🪢 test: Prove MCP OAuth Resume End to End (#15485)** (dfb2648)
- **🔌 refactor: Give the Subagent Surface a Host Seam and Its Own Jotai State (#15455)** (c3beae1)
- **✔️ style: Anchor the Applied Steer Receipt and Name Tool Calls in Its Interrupt Copy (#15450)** (09722f4)
- **🫂 ci: Unify Docker Image Publishing Workflows (#15447)** (083be12)
- **🧩 ci: Scope Each Image's Digest Artifacts to Its Own Manifest Merge (#15444)** (a1e92e5)
- **🐆 perf: Build Dev Branch Images on Native ARM and Cheapen Asset Brotli (#15441)** (d3ea6f4)
- **🧵 refactor: Give the Subagent Panel One Composer and Main Chat's Metrics (#15436)** (bd24e45)
- **🪗 feat: Fold a Live Run's Tool-Call Groups Into the Phase Card (#15434)** (cceb936)
- **🪩 style: Shimmer Live Reasoning Labels and Timers (#15431)** (6be3f79)
- **🎯 ci: Retarget Pull Requests Opened Against `main` to `dev` (#15416)** (f20b978)
- **👐 ci: Cancel the Playwright E2E Gate With Its Run (#15415)** (b88cb3e)
- **🍃 test: Sweep Every DB Schema Method Against a Live Engine (#15392)** (81338ce)
- **🛗 chore: Elevate `@librechat/agents` to 3.7.11 and `multer` to 2.3.0 (#15409)** (26887bc)
- **📦 chore: Bump Packages from LibreChat SCA Audit (#15410)** (52f7251)
- **🧜‍♀️ chore: Bump `mermaid` to v11.17.2 and `dompurify` to v3.4.14 (#15405)** (e9e77a4)
- **📬 feat: Move Agent Queued Turns Server-Side (#15370)** (c7f0a8f)
- **✍️ chore: Clarify That Interrupting a Steer Does Not Interrupt Reasoning (#15386)** (4de0a93)
- **📦 chore: bump `vite` to v8.2.2 (#15384)** (56d54a9)
- **🔒 chore: bump `google.golang.org/grpc` to v1.82.2 (GHSA-hrxh-6v49-42gf) (#15383)** (5fdc4f8)
- **🧠 feat: Retain Subagent Reasoning Like Main Chat and Drop the Running Status Chip (#15379)** (1e4cae0)
- **🧳 feat: Register Principal-Owned Code Environments (#15365)** (fcae102)
- **📦 chore: bump `@librechat/agents` to v3.7.10 (#15378)** (0389a92)
- **🕯️ style: Settle the Applied Steer Receipt Once the Response Is Done (#15377)** (cd46d50)
- **✅ feat: Delivery Receipt Checkmarks for Steered Messages (#15376)** (9ac801e)
- **🧲 feat: Enable Secure Attached Environment Pairing (#15355)** (a9ccac8)
- **🧬 perf: Evolve Compaction Guidance on Warm Turns (#15371)** (7533d13)
- **🎻 refactor: Orchestrate Agent Runs Through a Request-Free Host (#15366)** (30124f2)
- **🔇 refactor: Quiet Framework Logging in Unit Tests (#15363)** (dc77b78)
- **🧩 feat: Collapsible Wake-Up Task Cards and Subagent UI Consistency (#15364)** (b0a5598)
- **🍵 feat: Continue Late Steers in Warm Agent Runs (#15357)** (cd3768e)
- **🛎️ feat: Wake Agents on Background Tool Completion (#15350)** (2ae6c8a)
- **🛄 feat: Restore Compaction Guidance Across Continuations (#15356)** (e3ccaba)
- **🛑 feat: Cancel MCP Discovery Work at the Caller Deadline (#15353)** (b97d286)
- **📬 feat: Establish Background Continuation Admission (#15348)** (16c2bb4)
- **🍱 feat: Guide Compaction With a Bounded Semantic Index (#15340)** (10981b8)
- **📦 chore: bump `@librechat/agents` to v3.7.8 (#15337)** (149c80b)
- **🎠 refactor: Route Every Event Actor Turn Through One Lifecycle (#15325)** (773127b)
- **🛫 refactor: Promote Generation Protocol V2 Automatically (#15324)** (3fa33b7)
- **🪂 feat: Make Event Actor Detached Actions Durable (#15307)** (4879841)
- **🪥 chore: Run CI's Static Checks on Each Commit's Diff (#15303)** (d369c64)
- **🤖 feat: make Event Actor HITL durable (#15305)** (c06b09c)
- **🫆 feat: Fingerprint Agent Context for Zero-Read Warm Continuation (#15299)** (6fba51a)
- **🎼 feat: Unify Agent Turn Execution Behind One Immutable Plan (#15296)** (a5fd00c)
- **🪢 feat: show Langfuse session link in shared chats (#15273)** (a70bcf6)
- **🕸️ feat: Complete Keenable Web Search Provider (#15288)** (03fa98e)
- **📦 chore: bump `@librechat/agents` to v3.7.5** (ab2c0d5)
- **🎟️ refactor: Require Credentials for Local Image Access by Default (#15252)** (de59da9)
- **📦 chore: bump `axios` to v1.20.0, `@librechat/agents` to v3.7.4 (#15285)** (ff17845)
- **🧅 feat: Reveal Subagent Thread History and Event Detail on Demand (#15283)** (41ba808)
- **🧵 feat: Unify Subagent Child Threads (#15261)** (f0eda61)
- **🧾 feat: Store Durable Event Actor Receipts (#15265)** (44edcbe)

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