## LibreChat-AI/LibreChat — v0.8.8-rc4…v0.8.8

_117 commits._

### Features
- **🧬 feat: Resolve GPT Point Releases to Their Family and Add GPT-6.1 Sol (#16526)** (e9d1d33)
- **🎼 feat: Add Claude Sonnet 5.5 Support (#16460)** (40bb16e)
- **🌫️ feat: Add Bounded PII Text Transformation (#16295)** (7d5cbc9)

### Fixes
- **⏸️ fix: Pause LibreOffice Previews (#16583)** (9f1256e)
- **📦 chore: npm audit fix + bump agents SDK to v4.0.1 (#16581)** (ada91c1)
- **🔐 fix: Keep the MCP OAuth Prompt Open While a Stale Status Says Connected (#16569)** (89e1567)
- **🛂 fix: Rate Limit Authenticated 2FA Management (#16565)** (d33c72e)
- **⏹️ fix: Cancel MCP OAuth From the Tool Dialog (#16561)** (99255e3)
- **📦 chore: npm audit fix (#16559)** (601e07e)
- **🗳️ fix: Defer Thread Approval Card to the Open Composer Review (#16437)** (12efd62)
- **✂️ fix: Keep Parts After a Summary in the Summary-Bounded History Read (#16434)** (0a85ff5)
- **🟰 fix: Normalize File Edits Before Approval (#16543)** (210086a)
- **🚿 fix: Strip Code Approval Modes From Imported Chats (#16542)** (f03ecb7)
- **🦮 fix: Bind Per-User MCP API Keys to Their Destinations (#16536)** (14f7b28)
- **🧘 fix: Keep Prose Mounted While Activity Labels Update (#16531)** (5f4d96c)
- **👫 fix: Keep Firecrawl and SearXNG Credentials Paired (#16538)** (981e73d)
- **🦫 fix: Bound Error Text Before URL Redaction (#16532)** (f4f3677)
- **🛶 fix: Keep Trigger Bans Off Shared Loopback IPs (#16535)** (ea7ac99)
- **🎨 fix: Color Pressed MCP Tool Option Toggles With Their Series Role (#16524)** (ad28144)
- **↪️ fix: Block Unsafe MCP OAuth Redirects and Private IPs (#16514)** (4d33d8c)
- **🪸 fix: Restore File Search on Later Agent Turns (#16516)** (f995ba1)
- **🫸 fix: Keep Historical Artifacts Closed During Regeneration (#16511)** (5682f77)
- **🧧 fix: Redeem Admin OAuth Codes Only Once (#16513)** (d7e7064)
- **⏱️ fix: Fit Workspace Command Timeouts Inside the Configured Request Budget (#16464)** (63363a7)
- **🔩 fix: Raise Vulnerable Dependency Floors (#16474)** (03b89f8)
- **🔀 fix: Resolve SplitText Direction From Its Own Text Under RTL (#16454)** (42568a0)
- **fix: Enforce Tool Approval Policy on Headless Agent Runs (#16467)** (46f81b6)
- **🧾 fix: Validate Principal Config Overrides Against configSchema (#16433)** (d263da5)
- **📶 fix: Ride Out Transient Worker Status Failures Within the Worker's Lease (#16463)** (1ff532a)
- **🔲 fix: Anchor Quote Popup to Visible Selection (#16458)** (5de01de)
- **🔁 fix: Retry Code API Rate Limits That Reject Before a Workspace Call Starts (#16453)** (f624ad0)
- **🔒 fix: Guard 2FA Deep-Link Redirects Against Blocked Session Storage (#16439)** (71398ae)
- **🎚️ fix: Apply librechat.yaml Rate Limits to Route Limiters (#16432)** (50ce289)
- **🧻 fix: Clear Stale Draft Text After Sending (#16444)** (a9b4916)
- **🥤 fix: Keep Pending Code Steers Within the Composer (#16446)** (ae71af6)
- **🗄️ fix: Fall Back to In-Memory Storage When Web Storage Is Denied (#16431)** (dc85985)
- **📴 fix: Surface Missing Scheduled OBO Authorization (#16416)** (6658e3b)
- **🥧 fix: Reserve Execution Time in Workspace Admission (#16421)** (bf91d2b)
- **📡 fix: Explain Model Streams That Die Mid-Response (#16415)** (8ec632f)
- **🫖 fix: Keep Sidebar Search Results Visible During Refetch (#16411)** (f7f7567)
- **🏷️ fix: Title an Open Live Card Only by a Generated Label (#16412)** (da5e393)
- **📏 fix: Keep the Context Gauge's Used Count Above Its Own Breakdown (#16368)** (129a1de)
- **🏺 fix: Preserve Last Good Config on Reload (#16383)** (2068a8b)
- **🪁 fix: Prioritize Running Chats in Sidebar History (#16406)** (26d5d01)
- **🚩 fix: Preserve Client Tool Call Finish Reason After Text (#16408)** (2278da1)
- **🗂️ fix: Stop Telling Attached Workspaces That Uploads Are at /mnt/data (#16389)** (f15c8a0)
- **🖊️ fix: Persist Skill Subfile Edits (#16362)** (7caa98f)
- **🫂 fix: Keep Legacy Background Results Until Durable (#16405)** (9ffcd28)
- **🏷️ fix: Title an Open Live Card by Its Newest Label, Not a Line of Its Text (#16393)** (d7209ef)
- **💬 fix: Show a Thought on the Live Header Only as Finished Sentences (#16392)** (269e6b3)
- **🫸 fix: Right-Align User Message Images (#16404)** (b04226e)
- **🛬 fix: Settle Background Tool Results Before the Server Shuts Down (#16365)** (c606e50)
- **🚞 fix: Route Accepted Tool Calls Through the Live Agents API (#16401)** (19e0160)
- **🧨 fix: Reject Invalid AES Credentials Before Startup (#16402)** (a329e01)
- **🛃 fix: Project Only Accepted Agents API Tool Calls (#16384)** (24f950a)
- **📬 fix: Show Background Results Still Waiting for the Agent (#16363)** (048816a)
- **🧗 fix: Keep Manual Compactions on the Active Branch (#16386)** (84e3ea9)
- **🐳 fix: Fail the Docker Build When the Frontend Build Fails (#16388)** (18cfb51)
- **🧷 fix: Anchor Background Results Onto Tool Calls a Resumed Turn Saved Without Step IDs (#16353)** (8183959)
- **🍱 fix: Carry Coding Approval Mode With Queued Turns (#16326)** (163c1ad)
- **🚥 fix: Pause Rejected Steer Recoveries (#16306)** (fe8a993)
- **📮 fix: Count Undelivered Background Results as Outstanding (#16343)** (34938eb)
- **🧷 fix: Wait for Long Dispatch Turns Before Giving Up Background Code Results (#16345)** (c6282fa)
- **📣 fix: Surface MCP Credential Failures During Tool Loading (#16323)** (dd21e7f)
- **🛍️ fix: Discover Managed Agents in Marketplace Search (#16324)** (5862b3b)
- **⚡ fix: Deliver Waiting Completion Wake-ups the Moment They Are Ready (#16339)** (7238be3)
- **🐢 fix: Back Off Waiting Completion Wake-ups and Keep Their Trace Out of Requests (#16349)** (3788fe0)
- **🪀 fix: Preserve Coding Approval Mode on Background Returns (#16322)** (edddf92)
- **🪚 fix: Count Large Prompts in Bounded Tokenizer Chunks (#16305)** (56301c1)
- **🦉 fix: Quiet Idle Subagent Discovery While Preserving Child Wakeups (#16308)** (04e637e)
- **🥞 fix: Keep Tool Glyphs Behind Approval Reviews (#16307)** (0829709)
- **🪴 fix: Surface Persistent Memory Before First Save (#16301)** (e6929f5)
- **🪁 fix: Keep Workspace Discovery Reactive (#16296)** (d0850e7)
- **🦺 fix: Skip Redundant MCP OAuth Probes and Teardown Cancellations (#16298)** (8fb4056)
- **🎈 fix: Restore Bedrock GPT Context for Long Prompts (#16284)** (6a58bf1)
- **🤖 fix: Accept GitHub App bot commit identities (#16253)** (59da552)
- **📏 fix: Constrain the Agent Selector to 480px and 10 Own Agents (#16256)** (764a439)
- **🚸 fix: Scope Queued-Turn Deletion to Selected Conversations (#16270)** (b28a89e)
- **🔘 fix: Sync Workspace Choices When Chats Start (#16266)** (7979bdb)
- **🚉 fix: Keep Queue Controls with the Starting Turn (#16268)** (e4fe316)
- **🪚 fix: Restore Measured Width to Virtualized Model Lists (#16252)** (9994b2c)
- **🫖 fix: Skip Blank RAG Queries Before Embedding (#16231)** (44703da)

### Backend
- **🎁 chore: Bump Packages and Helm After Security Fixes (#16582)** (e8f3be0)
- **🏰 ci: Gate Main Promotions on Approved Dev Commits (#16570)** (c60dac3)
- **🆙 chore: Bump Packages and Helm for v0.8.8 (#16573)** (44e364d)
- **🏎️ perf: Re-render Only the Tail Rows When a Message Is Sent (#16572)** (b341f93)
- **🪮 perf: Match Tolerant Edit Lines Without Rebuilding Windows (#16562)** (cd63070)
- **📦 chore: bump agents SDK to v4.0.0 (#16558)** (5748708)
- **🚀 v0.8.8 (#15735)** (6a1d30c)
- **🏝️ feat: Scope YAML Custom Endpoints by Tenant (#16537)** (2aea0d6)
- **🎯 feat: Tolerant Workspace Edits with Host-Rendered Conflict Diagnostics (#16520)** (3e19b18)
- **🛤️ feat: Route Linked Worktree Requests into Per-Worktree Lanes (#16477)** (867fd5e)
- **🕘 feat: Distinguish Tool Preparation From Tool Call Time (#16455)** (a7662d2)
- **🥧 refactor: Show Failed Call Fractions and Preview Age (#16468)** (7e786ba)
- **⏩ refactor: Clarify Steering Timing and First-Response Fallback (#16465)** (33ee88e)
- **🧤 docs: Define Safe Backend Error Contracts in AGENTS.md (#16443)** (76dbb93)
- **📃 style: Match File Activity Icons To File Rows (#16445)** (fcb8871)
- **📦 chore: bump agents SDK to v3.9.7 (#16425)** (c8c5478)
- **📟 refactor: Present Background Task Checks as a Distinct Activity (#16414)** (d297530)
- **🎴 feat: Render Background Tasks as Native Tool Cards (#16407)** (696ebed)
- **🐢 perf: Collapse Settled Reasoning Text in AnimatedText (#16403)** (3c72c3f)
- **💭 feat: Bring the Streaming Thought Peek Back Under a Collapsed Live Card (#16394)** (0c47ce9)
- **📐 style: Set the Reasoning Header at the Shared Row Scale (#16391)** (cd405e6)
- **🪜 feat: Title an Open Activity Fold and Reach Failed Calls in One Click (#16390)** (a047548)
- **🧲 feat: Attach or Leave a Workspace on a Saved Chat (#16124)** (7b2362d)
- **📋 feat: View and Stop Background Tasks From the Chat Header (#16348)** (e32e6b5)
- **🐙 ci: Spread Playwright Coverage Across Isolated Shards (#16358)** (24570b6)
- **📦 chore: bump `@librechat/agents` SDK to v3.9.6 (#16354)** (3c08a7d)
- **🧪 ci: Count System Instructions in Mock Model Usage (#16350)** (402c19c)
- **🔕 perf: Back Off Idle Durable Agent Recovery Polls (#16303)** (ffd3d1e)
- **🐤 docs: Clarify Maintainer-Directed Canary Pull Requests (#16291)** (290e37e)
- **🏝️ ci: Keep Canary Pull Requests on Canary (#16285)** (3a3fbb7)
- **🏚️ feat: Recover Coding Chats With Missing Workspaces (#16273)** (02492bd)
- **🚚 chore: Point Repository and Image References at LibreChat-AI (#16005)** (f13b0ea)
- **🛝 refactor: Route Packaged Chat Completion Frames Through a Writer (#16267)** (89effb9)
- **🔐 ci: Gate the Legacy Mirror Behind an Environment (#16238)** (3341e4d)
- **🚡 chore: Bump Agents SDK to v3.9.3 (#16261)** (b374360)

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