Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
e039f82
🚀 chore: Prepare v0.8.8-rc1 release
danny-avila Jul 22, 2026
2379deb
📚 docs: Complete v0.8.8-rc1 operator references
danny-avila Jul 22, 2026
5ea4532
📚 docs: Mark stateful sessions experimental
danny-avila Jul 22, 2026
73c88c1
📚 docs: Clarify background code capability
danny-avila Jul 23, 2026
cfcb692
📚 docs: Refresh v0.8.8-rc1 operator guidance
danny-avila Aug 1, 2026
039dabb
📚 docs: Highlight v0.8.8-rc1 features in README
danny-avila Aug 1, 2026
5d9e66c
📦 chore: Bump publishable packages again
danny-avila Aug 3, 2026
a2491a4
📚 docs: Add streaming question progress
danny-avila Aug 3, 2026
42ab520
📦 chore: Bump publishable packages again
danny-avila Aug 6, 2026
e3aad62
📚 docs: Refresh v0.8.8-rc1 release highlights
danny-avila Aug 6, 2026
c9bb064
📦 chore: Bump publishable packages again
danny-avila Aug 11, 2026
0c8c873
📚 docs: Refresh v0.8.8-rc1 release guidance
danny-avila Aug 11, 2026
7101e4b
📦 chore: Bump publishable packages again
danny-avila Aug 11, 2026
a0449b9
📚 docs: Highlight batched Agent questions
danny-avila Aug 11, 2026
cd5a8b4
📦 chore: Bump publishable packages again
danny-avila Aug 11, 2026
f18db4a
📦 chore: Bump publishable packages again
danny-avila Aug 12, 2026
cd896eb
📦 chore: Bump publishable packages again
danny-avila Aug 13, 2026
8e2b90a
📦 chore: Refresh v0.8.8-rc1 package versions
danny-avila Aug 14, 2026
9410ccc
📦 chore: Refresh v0.8.8-rc1 package versions
danny-avila Aug 14, 2026
bbce096
📦 chore: Refresh v0.8.8-rc1 package versions
danny-avila Aug 14, 2026
dacd1ee
📄 docs: Note PowerPoint template support
danny-avila Aug 14, 2026
dd2c460
📦 chore: Refresh v0.8.8-rc1 package versions
danny-avila Aug 14, 2026
8f2d4dc
📄 docs: Note latest provider and file support
danny-avila Aug 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 50 additions & 4 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -171,15 +171,17 @@ NODE_MAX_OLD_SPACE_SIZE=6144
# Optional Langfuse fanout for tenant-scoped Langfuse projects.
# The fanout gateway is opt-in: add docker-compose.langfuse-fanout.yml,
# deploy-compose.langfuse-fanout.yml, or enable helm langfuseFanout.
# Tenant public/secret keys and a destination key are read from LibreChat tenant
# app configuration. Destination keys resolve against known startup URLs. Tenant
# API keys can be added or changed at runtime through tenant app configuration.
# Tenant public/secret keys and a destination key are managed through
# Settings > Langfuse. Destination keys resolve against known startup URLs;
# credentials can be added or changed at runtime without restarting the gateway.
# See otel/langfuse-fanout/README.md.
# LANGFUSE_FANOUT_ENABLED=false
# LANGFUSE_FANOUT_COLLECTOR_URL=http://langfuse-fanout-collector:4318
# App-side switch: set true to tell the Langfuse SDK not to create media uploads
# for central/fallback collector traces. Tenant-routed media uploads are unchanged.
# LANGFUSE_FANOUT_CENTRAL_MEDIA_UPLOAD_DISABLED=false
# Gateway HTTP listen address (default: :4318).
# LANGFUSE_FANOUT_LISTEN_ADDR=:4318
# Emergency switch: unset/false defaults enabled; set true to keep central fanout export but skip tenant trace/score export.
# LANGFUSE_FANOUT_TENANT_EXPORT_DISABLED=false
# Langfuse Cloud base URL options: https://cloud.langfuse.com (EU),
Expand Down Expand Up @@ -478,7 +480,7 @@ GOOGLE_KEY=user_provided
#============#

OPENAI_API_KEY=user_provided
# OPENAI_MODELS=gpt-5,gpt-5-codex,gpt-5-mini,gpt-5-nano,o3-pro,o3,o4-mini,gpt-4.1,gpt-4.1-mini,gpt-4.1-nano,o3-mini,o1-pro,o1,gpt-4o,gpt-4o-mini
# OPENAI_MODELS=gpt-5.6,gpt-5.6-terra,gpt-5.6-luna,gpt-5.5,gpt-5.5-pro,chat-latest,gpt-5.4,gpt-5.4-pro,gpt-5.4-mini,gpt-5.4-nano,gpt-5.3-codex,gpt-5.2,gpt-5,gpt-5-codex,gpt-5-mini,gpt-5-nano,o3-pro,o3,o4-mini,gpt-4.1,gpt-4.1-mini,gpt-4.1-nano,o3-mini,o1-pro,o1,gpt-4o,gpt-4o-mini

DEBUG_OPENAI=false

Expand Down Expand Up @@ -613,6 +615,19 @@ MEILI_MASTER_KEY=
STT_API_KEY=
TTS_API_KEY=

#==================================================#
# Code Interpreter #
#==================================================#

# LIBRECHAT_CODE_API_KEY=
# LIBRECHAT_CODE_BASEURL=
Comment on lines +622 to +623
# Prewarm stateful per-conversation sandboxes in parallel with model generation (default: true).
# CODE_SANDBOX_PREWARM=true
# Time in milliseconds before LibreChat treats a tracked sandbox as cold (default: 2100000 / 35 minutes).
# CODE_SANDBOX_COLD_AFTER_MS=2100000
# Bytes read per sandbox image chunk; lower this if the runner has a small stdout limit (default: 32768).
# LIBRECHAT_CODE_IMAGE_CHUNK_BYTES=32768

#==================================================#
# RAG #
#==================================================#
Expand All @@ -627,11 +642,18 @@ TTS_API_KEY=

# Stream upload responses with heartbeats during long-running file processing.
# FILE_UPLOAD_SSE_ENABLED=false
# Timeout in milliseconds for server-side remote file downloads (default: 15000).
# REMOTE_FILE_FETCH_TIMEOUT_MS=15000
# Maximum size in bytes for server-side remote file downloads (default: 536870912 / 512 MiB).
# REMOTE_FILE_FETCH_MAX_BYTES=536870912

#===================================================#
# User System #
#===================================================#

# Maximum characters in one mid-run Agent steering message (default: 16000).
# STEER_MAX_LENGTH=16000

#========================#
# Moderation #
#========================#
Expand All @@ -654,12 +676,32 @@ STT_VIOLATION_SCORE=0
FORK_VIOLATION_SCORE=0
IMPORT_VIOLATION_SCORE=0
FILE_UPLOAD_VIOLATION_SCORE=0
# Per-user limiter for metadata-only /files/usage requests that renew the TTL
# of attachments waiting in queued Agent messages (default: 120 per 15 minutes).
# FILE_USAGE_USER_MAX=120
# FILE_USAGE_USER_WINDOW=15
# Password-reset and verification request/submission scores default to 1 when unset.
# RESET_PASSWORD_VIOLATION_SCORE=1
# VERIFY_EMAIL_VIOLATION_SCORE=1
# RESET_PASSWORD_SUBMISSION_VIOLATION_SCORE=1
# VERIFY_EMAIL_SUBMISSION_VIOLATION_SCORE=1

LOGIN_MAX=7
LOGIN_WINDOW=5
REGISTER_MAX=5
REGISTER_WINDOW=60

# Password-reset email requests and token submissions are limited separately.
# Submission values inherit the matching request value when omitted; all default to 2.
# RESET_PASSWORD_MAX=2
# RESET_PASSWORD_WINDOW=2
# RESET_PASSWORD_SUBMISSION_MAX=2
# RESET_PASSWORD_SUBMISSION_WINDOW=2
# VERIFY_EMAIL_MAX=2
# VERIFY_EMAIL_WINDOW=2
# VERIFY_EMAIL_SUBMISSION_MAX=2
# VERIFY_EMAIL_SUBMISSION_WINDOW=2

LIMIT_CONCURRENT_MESSAGES=true
CONCURRENT_MESSAGE_MAX=2

Expand Down Expand Up @@ -1072,6 +1114,10 @@ HELP_AND_FAQ_URL=https://librechat.ai
# Set to empty string to force all namespaces through Redis: FORCED_IN_MEMORY_CACHE_NAMESPACES=
# FORCED_IN_MEMORY_CACHE_NAMESPACES=CONFIG_STORE,APP_CONFIG

# Opt-in cache for authenticated user documents during request bursts. Requires Redis and
# the AUTH_USER_DOC namespace to remain Redis-backed (default: off; set exactly to "on").
# AUTH_USER_CACHE_MODE=off
Comment on lines +1117 to +1119

# TTL in milliseconds for cached group memberships used in ACL permission checks (default: 300000 / 5 minutes; 0 disables)
# Membership changes invalidate affected entries immediately; the TTL bounds staleness from cross-process races.
# USER_PRINCIPALS_CACHE_TTL_MS=300000
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# v0.8.7
# v0.8.8-rc1

# Base node image
FROM node:24.16.0-alpine AS node
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.multi
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Dockerfile.multi
# v0.8.7
# v0.8.8-rc1

# Set configurable max-old-space-size with default
ARG NODE_MAX_OLD_SPACE_SIZE=6144
Expand Down
23 changes: 22 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,25 @@
</a>
</p>

## 🚀 What's New in v0.8.8-rc1

- **Agent run control:** Interrupt or steer an Agent mid-run, queue follow-up messages, and reclaim, edit, or escalate pending steers.
- **Human-in-the-loop Agents:** Agents stream question progress, ask up to four related questions in one form, pause for input or tool approval, and resume.
- **Unified Agent Builder:** A redesigned Tools marketplace brings together Skills, MCP, Code Interpreter, orchestration, Programmatic Tool Calling, model-spec controls, and per-tool background and intent settings.
- **Readable Agent activity:** Generated activity-group headers, parent phase summaries, and live tool intent labels make long reasoning and tool runs easier to scan.
- **Code Interpreter workflows:** Code and shell tools can run in the background, sandbox images return as viewable artifacts, and highly experimental stateful sessions can reuse prewarmed conversation workspaces.
- **Agent extensibility:** Experimental Agent Plugins can bundle deployment Skills, MCP servers, and opt-in command hooks, while explicit subagents initialize only when selected.
- **Memory, context, and identity:** Agents can manage memory with optional per-agent isolation, expose support contacts safely, and show a more faithful Context Usage gauge.
- **Sharing and files:** Shared conversations show a badge and update at a stable URL, while signed-in viewers can continue them as personal copies.
- **Artifact workflows:** Open previews fullscreen, work with PowerPoint `.potx` templates across upload, search, and code execution, upload shell scripts across common MIME variants, export Mermaid diagrams as SVG or PNG, and download original Office files from the artifact panel.
- **Models and reasoning:** Added GPT-5.6 with Responses API reasoning controls, Claude Opus 5 and Sonnet 5, Gemini 3.7 and 3.6 Flash, and Gemini 3.5 Flash-Lite.
- **Langfuse observability:** Configure encrypted Langfuse connections in-app, let authorized admins open sampled sessions directly, optionally fan out traces by tenant, and suppress central export per run.
- **Administration and security:** Delegate config sections, encrypt registered secrets, enforce SSRF checks for speech, OCR, and web tools, and generate unique temporary credentials when secrets are blank.
- **Messages and navigation:** Right-aligned user turns, unified multi-part editing, full-message copy, a dock-style message rail, virtualized search, smooth streaming, and faster Agent startup.
- **Streaming and tool reliability:** Adaptive provider smoothing, Redis delta batching, dynamic MCP tool refresh, parsed MCP response media types, runtime OAuth recovery, and Agent stream circuit breakers improve long-running workflows.
- **Deployment and reliability:** Added configurable HTTP timeouts, Amazon DocumentDB 5.0+ support, low-noise Redis and browser observability, and a rolling-upgrade-safe generation protocol.

Read the [full v0.8.8-rc1 changelog](https://www.librechat.ai/changelog/v0.8.8-rc1).

# ✨ Features

Expand All @@ -76,6 +95,7 @@
- Collaborative Sharing: Share agents with specific users and groups
- Flexible & Extensible: Use MCP Servers, tools, file search, code execution, and more
- [Skills](https://www.librechat.ai/docs/features/skills): Create reusable `SKILL.md` instruction bundles for manual, automatic, or always-on agent workflows
- [Agent Plugins](https://www.librechat.ai/docs/features/agent_plugins): Experimentally bundle deployment Skills and MCP servers into startup-loaded packages
- [Subagents](https://www.librechat.ai/docs/features/subagents): Delegate focused work to isolated child agent runs with their own context windows
- Compatible with Custom Endpoints, OpenAI, Azure, Anthropic, AWS Bedrock, Google, Vertex AI, Responses API, and more
- [Model Context Protocol (MCP) Support](https://modelcontextprotocol.io/clients#librechat) for Tools
Expand All @@ -87,7 +107,8 @@
- **[Learn More →](https://www.librechat.ai/docs/features/web_search)**

- 🪄 **Generative UI with Code Artifacts**:
- [Code Artifacts](https://youtu.be/GfTj7O4gmd0?si=WJbdnemZpJzBrJo3) allow creation of React, HTML, and Mermaid diagrams directly in chat
- [Code Artifacts](https://youtu.be/GfTj7O4gmd0?si=WJbdnemZpJzBrJo3) create React, HTML, and Mermaid content directly in chat
- Open previews fullscreen and export Mermaid diagrams as SVG or PNG

- 🎨 **Image Generation & Editing**
- Text-to-image and image-to-image with [GPT-Image-1](https://www.librechat.ai/docs/features/image_gen#1--openai-image-tools-recommended)
Expand Down
2 changes: 1 addition & 1 deletion api/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@librechat/backend",
"version": "v0.8.7",
"version": "v0.8.8-rc1",
"description": "",
"scripts": {
"start": "echo 'please run this from the root directory'",
Expand Down
12 changes: 6 additions & 6 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion client/jest.config.cjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/** v0.8.7 */
/** v0.8.8-rc1 */
module.exports = {
roots: ['<rootDir>/src'],
testEnvironment: 'jsdom',
Expand Down
2 changes: 1 addition & 1 deletion client/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@librechat/frontend",
"version": "v0.8.7",
"version": "v0.8.8-rc1",
"description": "",
"type": "module",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion e2e/jestSetup.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
// v0.8.7
// v0.8.8-rc1
// See .env.test.example for an example of the '.env.test' file.
require('dotenv').config({ path: './e2e/.env.test' });
4 changes: 2 additions & 2 deletions helm/librechat/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 2.0.7
version: 2.0.8

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.

# renovate: image=registry.librechat.ai/danny-avila/librechat
appVersion: "v0.8.7"
appVersion: "v0.8.8-rc1"

home: https://www.librechat.ai

Expand Down
47 changes: 42 additions & 5 deletions librechat.example.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,16 @@
# https://www.librechat.ai/docs/configuration/librechat_yaml

# Configuration version (required)
version: 1.3.13
version: 1.3.14

# Cache settings: Set to true to enable caching
cache: true

# Langfuse connections are managed through Settings > Langfuse when available.
# That flow verifies the credentials and stores the secret key encrypted; do not
# place a plaintext langfuse.secretKey in this file. Environment-managed central
# credentials and optional fanout routing are documented in .env.example.

# File storage configuration
# Single strategy for all file types (legacy format, still supported)
# fileStrategy: "s3"
Expand Down Expand Up @@ -459,6 +464,14 @@ endpoints:
# # final: defer generation until the full response completes (legacy behavior).
# # Set under `endpoints.all` instead to apply as the global default for all endpoints.
# titleTiming: immediate
# # (optional) Generate one-line headers for blocks of Agent reasoning and tool calls.
# # Header generation is a separate model call whose usage and cost are recorded.
# activityLabel: true
# activityEndpoint: openAI
# activityModel: gpt-4.1-nano
# # activityPrompt: 'Write a short activity label...'
# # activityMaxPerRun: 20
# # activityCharLimit: 600
# # (optional) Maximum total citations to include in agent responses, defaults to 30
# maxCitations: 30
# # (optional) Maximum citations per file to include in agent responses, defaults to 7
Expand All @@ -471,10 +484,24 @@ endpoints:
# skills:
# maxCatalogSkills: 20
# # (optional) Agent Capabilities available to all users. Omit the ones you wish to exclude. Defaults to list below.
# capabilities: ["deferred_tools", "execute_code", "file_search", "actions", "tools"]
# # Off-by-default capabilities you can add to the list above:
# # - "run_in_background": opted-in tools gain a `run_in_background` param so the model can dispatch them detached and poll via `check_background_task`.
# # - "tool_intents": opted-in tools (native tools by default) gain an `intent` param — one model-written sentence per call, streamed into the tool-call arguments. Backend groundwork today: the chat UI renders it as each call's live status label in an upcoming release; opt tools in per agent via `tool_options[tool].describe_intent`.
# capabilities: ["deferred_tools", "execute_code", "file_search", "web_search", "artifacts", "subagents", "actions", "context", "skills", "memory", "ask_user_question", "tools", "chain", "ocr"]
# # The following capabilities are opt-in and must be added explicitly:
# # "programmatic_tools", "stateful_code_sessions", "run_in_background", "tool_intents"
# # "stateful_code_sessions" is highly experimental and may change substantially.
# # "run_in_background" makes Code Interpreter tools eligible by default and enables per-tool MCP opt-in.
# # "tool_intents" enables live model-written labels for native tools and opted-in MCP tools.
# # (optional) Require user approval before matching tool calls. Disabled by default.
# toolApproval:
# enabled: true
# mode: default # default, dontAsk, or bypass
# allow: ["mcp:trusted-server:read_*"]
# deny: ["mcp:*:delete_*"] # Deny rules always take precedence
# ask: ["mcp:*:*"]
# reason: "Review {tool} before it runs."
# # (optional) Persist Agent runs paused for approval or Ask User. MongoDB is the durable default.
# checkpointer:
# type: mongo # mongo (default) or memory (single-process development only)
# ttl: 86400 # Approval window in seconds; defaults to 24 hours

# (optional) Custom request headers for the built-in OpenAI / Google endpoints.
# Forwarded on every request to the provider (or an AI gateway / reverse proxy
Expand Down Expand Up @@ -766,6 +793,7 @@ endpoints:
# description: "Most capable GPT-4 model with multimodal support"
# # default: true # Hard admin default; takes precedence over prior user choices
# # softDefault: true # First-time default only; skipped after a user selects a model/spec/agent
# # showInMenu: false # Hide from the model selector while keeping explicit `spec` access
# group: "openAI" # String value matching the endpoint name
# preset:
# endpoint: "openAI"
Expand Down Expand Up @@ -831,6 +859,15 @@ endpoints:
# endpoint: "openAI"
# model: "gpt-4o-mini"

# Automatic conversation summarization (optional)
# summarization:
# enabled: true
# provider: "openAI"
# model: "gpt-4o-mini"
# retainRecent:
# turns: 2 # Keep the newest complete user/assistant turns outside the summary
# tokens: 2000 # Also preserve up to this many recent tokens

# fileConfig:
# endpoints:
# assistants:
Expand Down
Loading
Loading