https://www.librechat.ai/changelog/v0.8.8
๐๏ธ Highlights
- Meet Lia: Building LibreChat with LibreChat.
- Agent control: Interrupt, steer, queue messages, answer questions, and approve tool calls.
- Unified Agent Builder: Same-run Skill authoring, opt-in Programmatic Tool Calling, and background tools.
- Background tasks: Clearer task cards, header controls, and automatic delivery of supported results.
- Scheduled Chats: Cron, time zones, and Project destinations. In beta: experimental and disabled by default.
- Code workspaces: Stateful sessions, attached machines, recovery, and guarded permissions. Highly experimental; compatible services required.
- Beta Agents API: Improved compatibility with Chat Completions, Open Responses, Agent/Skill management, and introduced Agent Events
- Experimental Agent Plugins: Bundle Skills and MCP servers, with opt-in command hooks.
- Execution visibility: Live activity, tool timing, Context Usage, optional costs, and a configured Langfuse Trace Viewer.
- Chat improvements: Draggable pins, chat filtering, manual compaction, mobile polish, and automatic attachment routing.
- Model updates: GPT-6 and GPT-6.1 Sol, Claude Opus/Sonnet 5.5, and Gemini 3.8 Flash. GPT-6.1 Sol uses family-fallback limits and pricing.
- Performance and security: Faster rendering and streaming and long-thread sends, stronger credential boundaries, tenant-scoped endpoints, and 2FA management limits.
Click to expand Release Notes
For detailed changes in the release candidates, see:
Operator configuration changes: Config v1.3.15, v1.3.16, and v1.3.17.
Changes Since v0.8.8-rc4
โจ Features
- ๐๏ธ feat: Recover Coding Chats With Missing Workspaces by @lia-by-librechat in #16273
- ๐ซ๏ธ feat: Add Bounded PII Text Transformation (library groundwork only; message ingress still blocks matches) by @lia-by-librechat in #16295
- ๐ feat: View and Stop Background Tasks From the Chat Header by @danny-avila in #16348
- ๐งฒ feat: Attach or Leave a Workspace on a Saved Chat by @lia-by-librechat in #16124
- ๐ช feat: Title an Open Activity Fold and Reach Failed Calls in One Click by @danny-avila in #16390
- ๐ญ feat: Bring the Streaming Thought Peek Back Under a Collapsed Live Card by @danny-avila in #16394
- ๐ด feat: Render Background Tasks as Native Tool Cards by @lia-by-librechat in #16407
- ๐ผ feat: Add Claude Sonnet 5.5 Support by @danny-avila in #16460
- ๐ feat: Distinguish Tool Preparation From Tool Call Time by @lia-by-librechat in #16455
- ๐ค๏ธ feat: Route Linked Worktree Requests into Per-Worktree Lanes by @danny-avila in #16477
- ๐ฏ feat: Tolerant Workspace Edits with Host-Rendered Conflict Diagnostics by @danny-avila in #16520
- ๐งฌ feat: Resolve GPT Point Releases to Their Family and Add GPT-6.1 Sol by @danny-avila in #16526
- ๐๏ธ feat: Scope YAML Custom Endpoints by Tenant by @danny-avila in #16537
๐ Fixes
- ๐ซ fix: Skip Blank RAG Queries Before Embedding by @lia-by-librechat in #16231
- ๐ช fix: Restore Measured Width to Virtualized Model Lists by @lia-by-librechat in #16252
- ๐ fix: Keep Queue Controls with the Starting Turn by @lia-by-librechat in #16268
- ๐ fix: Sync Workspace Choices When Chats Start by @lia-by-librechat in #16266
- ๐ธ fix: Scope Queued-Turn Deletion to Selected Conversations by @lia-by-librechat in #16270
- ๐ fix: Constrain the Agent Selector to 480px and 10 Own Agents by @berry-13 in #16256
- ๐ค fix: Accept GitHub App bot commit identities by @danny-avila in #16253
- ๐ fix: Restore Bedrock GPT Context for Long Prompts by @lia-by-librechat in #16284
- ๐ฆบ fix: Skip Redundant MCP OAuth Probes and Teardown Cancellations by @lia-by-librechat in #16298
- ๐ช fix: Keep Workspace Discovery Reactive by @lia-by-librechat in #16296
- ๐ชด fix: Surface Persistent Memory Before First Save by @lia-by-librechat in #16301
- ๐ฅ fix: Keep Tool Glyphs Behind Approval Reviews by @lia-by-librechat in #16307
- ๐ฆ fix: Quiet Idle Subagent Discovery While Preserving Child Wakeups by @lia-by-librechat in #16308
- ๐ช fix: Count Large Prompts in Bounded Tokenizer Chunks by @lia-by-librechat in #16305
- ๐ช fix: Preserve Coding Approval Mode on Background Returns by @lia-by-librechat in #16322
- ๐ข fix: Back Off Waiting Completion Wake-ups and Keep Their Trace Out of Requests by @danny-avila in #16349
- โก fix: Deliver Waiting Completion Wake-ups the Moment They Are Ready by @danny-avila in #16339
- ๐๏ธ fix: Discover Managed Agents in Marketplace Search by @lia-by-librechat in #16324
- ๐ฃ fix: Surface MCP Credential Failures During Tool Loading by @lia-by-librechat in #16323
- ๐งท fix: Wait for Long Dispatch Turns Before Giving Up Background Code Results by @danny-avila in #16345
- ๐ฎ fix: Count Undelivered Background Results as Outstanding by @danny-avila in #16343
- ๐ฅ fix: Pause Rejected Steer Recoveries by @lia-by-librechat in #16306
- ๐ฑ fix: Carry Coding Approval Mode With Queued Turns by @lia-by-librechat in #16326
- ๐งท fix: Anchor Background Results Onto Tool Calls a Resumed Turn Saved Without Step IDs by @danny-avila in #16353
- ๐ณ fix: Fail the Docker Build When the Frontend Build Fails by @danny-avila in #16388
- ๐ง fix: Keep Manual Compactions on the Active Branch by @lia-by-librechat in #16386
- ๐ฌ fix: Show Background Results Still Waiting for the Agent by @danny-avila in #16363
- ๐ fix: Project Only Accepted Agents API Tool Calls by @lia-by-librechat in #16384
- ๐งจ fix: Reject Invalid AES Credentials Before Startup by @lia-by-librechat in #16402
- ๐ fix: Route Accepted Tool Calls Through the Live Agents API by @lia-by-librechat in #16401
- ๐ฌ fix: Settle Background Tool Results Before the Server Shuts Down by @danny-avila in #16365
- ๐ซธ fix: Right-Align User Message Images by @lia-by-librechat in #16404
- ๐ฌ fix: Show a Thought on the Live Header Only as Finished Sentences by @danny-avila in #16392
- ๐ท๏ธ fix: Title an Open Live Card by Its Newest Label, Not a Line of Its Text by @danny-avila in #16393
- ๐ซ fix: Keep Legacy Background Results Until Durable by @lia-by-librechat in #16405
- ๐๏ธ fix: Persist Skill Subfile Edits by @lia-by-librechat in #16362
- ๐๏ธ fix: Stop Telling Attached Workspaces That Uploads Are at /mnt/data by @danny-avila in #16389
- ๐ฉ fix: Preserve Client Tool Call Finish Reason After Text by @lia-by-librechat in #16408
- ๐ช fix: Prioritize Running Chats in Sidebar History by @lia-by-librechat in #16406
- ๐บ fix: Preserve Last Good Config on Reload by @lia-by-librechat in #16383
- ๐ fix: Keep the Context Gauge's Used Count Above Its Own Breakdown by @danny-avila in #16368
- ๐ท๏ธ fix: Title an Open Live Card Only by a Generated Label by @danny-avila in #16412
- ๐ซ fix: Keep Sidebar Search Results Visible During Refetch by @lia-by-librechat in #16411
- ๐ก fix: Explain Model Streams That Die Mid-Response by @danny-avila in #16415
- ๐ฅง fix: Reserve Execution Time in Workspace Admission by @lia-by-librechat in #16421
- ๐ด fix: Surface Missing Scheduled OBO Authorization by @lia-by-librechat in #16416
- ๐๏ธ fix: Fall Back to In-Memory Storage When Web Storage Is Denied by @berry-13 in #16431
- ๐ฅค fix: Keep Pending Code Steers Within the Composer by @lia-by-librechat in #16446
- ๐งป fix: Clear Stale Draft Text After Sending by @lia-by-librechat in #16444
- ๐๏ธ fix: Apply librechat.yaml Rate Limits to Route Limiters by @berry-13 in #16432
- ๐ fix: Guard 2FA Deep-Link Redirects Against Blocked Session Storage by @berry-13 in #16439
- ๐ fix: Retry Code API Rate Limits That Reject Before a Workspace Call Starts by @danny-avila in #16453
- ๐ฒ fix: Anchor Quote Popup to Visible Selection by @lia-by-librechat in #16458
- ๐ถ fix: Ride Out Transient Worker Status Failures Within the Worker's Lease by @danny-avila in #16463
- ๐งพ fix: Validate Principal Config Overrides Against configSchema by @berry-13 in #16433
- fix: Enforce Tool Approval Policy on Headless Agent Runs by @lia-by-librechat in #16467
- ๐ fix: Resolve SplitText Direction From Its Own Text Under RTL by @shukiv in #16454
- ๐ฉ fix: Raise Vulnerable Dependency Floors by @lia-by-librechat in #16474
- โฑ๏ธ fix: Fit Workspace Command Timeouts Inside the Configured Request Budget by @danny-avila in #16464
- ๐งง fix: Redeem Admin OAuth Codes Only Once by @lia-by-librechat in #16513
- ๐ซธ fix: Keep Historical Artifacts Closed During Regeneration by @lia-by-librechat in #16511
- ๐ชธ fix: Restore File Search on Later Agent Turns by @lia-by-librechat in #16516
- โช๏ธ fix: Block Unsafe MCP OAuth Redirects and Private IPs by @lia-by-librechat in #16514
- ๐จ fix: Color Pressed MCP Tool Option Toggles With Their Series Role by @berry-13 in #16524
- ๐ถ fix: Keep Trigger Bans Off Shared Loopback IPs by @lia-by-librechat in #16535
- ๐ฆซ fix: Bound Error Text Before URL Redaction by @lia-by-librechat in #16532
- ๐ซ fix: Keep Firecrawl and SearXNG Credentials Paired by @lia-by-librechat in #16538
- ๐ง fix: Keep Prose Mounted While Activity Labels Update by @lia-by-librechat in #16531
- ๐ฆฎ fix: Bind Per-User MCP API Keys to Their Destinations by @lia-by-librechat in #16536
- ๐ฟ fix: Strip Code Approval Modes From Imported Chats by @lia-by-librechat in #16542
- ๐ฐ fix: Normalize File Edits Before Approval by @lia-by-librechat in #16543
- โ๏ธ fix: Keep Parts After a Summary in the Summary-Bounded History Read by @berry-13 in #16434 (summary-bounded history path; does not enable a new history mode)
- ๐ณ๏ธ fix: Defer Thread Approval Card to the Open Composer Review by @berry-13 in #16437
- โน๏ธ fix: Cancel MCP OAuth From the Tool Dialog by @lia-by-librechat in #16561
- ๐ fix: Rate Limit Authenticated 2FA Management by @danny-avila in #16565
- ๐ fix: Keep the MCP OAuth Prompt Open While a Stale Status Says Connected by @danny-avila in #16569
๐ง Refactoring and Performance
- ๐ refactor: Route Packaged Chat Completion Frames Through a Writer by @lia-by-librechat in #16267
- ๐ perf: Back Off Idle Durable Agent Recovery Polls by @lia-by-librechat in #16303
- ๐ style: Set the Reasoning Header at the Shared Row Scale by @danny-avila in #16391
- ๐ข perf: Collapse Settled Reasoning Text in AnimatedText by @berry-13 in #16403
- ๐ refactor: Present Background Task Checks as a Distinct Activity by @lia-by-librechat in #16414
- ๐ style: Match File Activity Icons To File Rows by @lia-by-librechat in #16445
- โฉ refactor: Clarify Steering Timing and First-Response Fallback by @lia-by-librechat in #16465
- ๐ฅง refactor: Show Failed Call Fractions and Preview Age by @lia-by-librechat in #16468
- ๐ชฎ perf: Match Tolerant Edit Lines Without Rebuilding Windows by @lia-by-librechat in #16562
- ๐๏ธ perf: Re-render Only the Tail Rows When a Message Is Sent by @danny-avila in #16572
๐ฆ Dependencies, Chores & CI
- ๐ก chore: Bump Agents SDK to v3.9.3 by @lia-by-librechat in #16261
- ๐ ci: Gate the Legacy Mirror Behind an Environment by @danny-avila in #16238
- ๐ chore: Point Repository and Image References at LibreChat-AI by @danny-avila in #16005
- ๐๏ธ ci: Keep Canary Pull Requests on Canary by @lia-by-librechat in #16285
- ๐ค docs: Clarify Maintainer-Directed Canary Pull Requests by @lia-by-librechat in #16291
- ๐งช ci: Count System Instructions in Mock Model Usage by @danny-avila in #16350
- ๐ฆ chore: bump
@librechat/agentsSDK to v3.9.6 by @danny-avila in #16354 - ๐ ci: Spread Playwright Coverage Across Isolated Shards by @lia-by-librechat in #16358
- ๐ฆ chore: bump agents SDK to v3.9.7 by @danny-avila in #16425
- ๐งค docs: Define Safe Backend Error Contracts in AGENTS.md by @lia-by-librechat in #16443
- ๐ v0.8.8 by @danny-avila in #15735
- ๐ฆ chore: bump agents SDK to v4.0.0 by @danny-avila in #16558; includes the streaming OpenAI-on-Bedrock reasoning-replay fix
- ๐ฆ chore: npm audit fix by @danny-avila in #16559
- ๐ chore: Bump Packages and Helm for v0.8.8 by @lia-by-librechat in #16573
- ๐ฐ ci: Gate Main Promotions on Approved Dev Commits by @lia-by-librechat in #16570
- ๐ฆ chore: npm audit fix + bump agents SDK to v4.0.1 by @danny-avila in #16581
New Contributors
Full Changelog: v0.8.8-rc4...v0.8.8