Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
a365ab3
📝 docs: Prepare v0.8.8-rc1 release
danny-avila Jul 22, 2026
767c251
📝 docs: Complete v0.8.8-rc1 feature coverage
danny-avila Jul 22, 2026
f0c4fbd
📝 docs: Clarify experimental stateful sessions
danny-avila Jul 22, 2026
ce51867
📝 docs: Refresh v0.8.8-rc1 changelog
danny-avila Jul 22, 2026
5b03cf8
📝 docs: Document background Code Interpreter execution
danny-avila Jul 23, 2026
ac00e31
📝 docs: Refresh v0.8.8-rc1 changelog
danny-avila Jul 23, 2026
4ed4ab9
📝 docs: Document late v0.8.8-rc1 changes
danny-avila Jul 27, 2026
9fdc9ed
📝 docs: Cover latest v0.8.8-rc1 changes
danny-avila Aug 1, 2026
6ef7b54
📝 docs: Surface v0.8.8-rc1 features in README
danny-avila Aug 1, 2026
8d0a83d
📝 docs: Cover latest v0.8.8-rc1 changes
danny-avila Aug 3, 2026
0358d50
📝 docs: Cover latest v0.8.8-rc1 changes
danny-avila Aug 6, 2026
2790d24
📚 docs: Refresh v0.8.8-rc1 release documentation
danny-avila Aug 11, 2026
287cc07
📚 docs: Document batched Agent questions
danny-avila Aug 11, 2026
99d0da4
📚 docs: Add late CI release entries
danny-avila Aug 11, 2026
cff3038
📚 docs: Cover latest v0.8.8-rc1 additions
danny-avila Aug 12, 2026
9df9f23
📚 docs: Cover latest v0.8.8-rc1 additions
danny-avila Aug 13, 2026
4e94076
📚 docs: Cover latest v0.8.8-rc1 additions
danny-avila Aug 14, 2026
149b90c
📅 docs: Set v0.8.8-rc1 release date
danny-avila Aug 14, 2026
b1be899
📡 docs: Add MCP stream conflict recovery
danny-avila Aug 14, 2026
549e2fe
📄 docs: Cover PowerPoint template support
danny-avila Aug 14, 2026
67e2ef4
📄 docs: Cover final v0.8.8-rc1 additions
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
23 changes: 23 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,35 @@

---

## What's New in LibreChat 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).

---

This repository powers **[www.librechat.ai](https://www.librechat.ai)**: the docs, guides, blog, and changelog for LibreChat. It is a [Next.js](https://nextjs.org) application built on [Fumadocs](https://fumadocs.dev), with content authored in MDX.

> Looking for the LibreChat app itself? It lives at **[danny-avila/LibreChat](https://github.com/danny-avila/LibreChat)**. Open code and product issues there, and documentation issues here.

## Table of Contents

- [What's New in LibreChat v0.8.8-rc1](#whats-new-in-librechat-v088-rc1)
- [Features](#features)
- [Tech Stack](#tech-stack)
- [Getting Started](#getting-started)
Expand Down
207 changes: 207 additions & 0 deletions content/changelog/config_v1.3.14.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
---
date: 2026-08-14
title: ⚙️ Config v1.3.14
version: '1.3.14'
---

- Updated Agents endpoint capabilities
- Added `memory` and `ask_user_question` to the default capability list
- Added highly experimental, opt-in `stateful_code_sessions` for reusable Code Interpreter workspaces; behavior and configuration may change substantially during experimentation
- Added opt-in `run_in_background`; Code Interpreter tools are background-eligible by default while MCP tools remain per-tool opt-ins
- Added opt-in `tool_intents` for live model-written labels on native and selected MCP tool calls

- Added Agent activity-group settings
- `activityLabel` enables generated one-line headers for contiguous reasoning and tool-call blocks
- `activityModel`, `activityEndpoint`, and `activityPrompt` select and configure the header model call
- `activityMaxPerRun` and `activityCharLimit` bound additional calls and prompt input
- Fields can be set under `endpoints.all`, `endpoints.agents`, or the backing provider/custom endpoint and resolve independently by precedence

- Added parent Agent activity-phase settings
- `activityPhaseLabel` generates a collapsed summary for run phases containing at least two logical activities
- `activityPhaseModel`, `activityPhaseEndpoint`, and `activityPhasePrompt` configure the summary model call
- `activityPhaseMaxPerRun` defaults to `5`; `activityCharLimit` also bounds phase-summary evidence
- Phase settings fall back through activity-label, title-model, and current-run settings and use the same endpoint configuration precedence
- Short progress remains grouped, substantial answer text closes the active phase before the result, and later activity blocks can create another phase in the same run
- Persisted phase boundaries are rebased after content compaction so they remain aligned after reload

- Added `endpoints.agents.toolApproval`
- Enables human approval for matching Agent tool calls
- Supports `default`, `dontAsk`, and `bypass` modes plus glob-based `allow`, `deny`, and `ask` rules
- Supports trusted programmatic hooks for context-aware approval policy; hooks can only make the static policy stricter

- Added `endpoints.agents.checkpointer`
- Persists paused Ask User and tool-approval runs so they can resume later
- Uses MongoDB by default with a 24-hour TTL
- Supports configurable collection names and a process-local `memory` mode for development

- Added `summarization.retainRecent`
- `turns` preserves a configurable number of recent complete conversation turns outside the summary
- `tokens` sets a recent token-retention budget

- Updated automatic memory extraction
- `memory.agent.enabled: true` is now required to run the automatic memory agent
- Manual memories and Agent memory tools remain available when automatic extraction is off

- Added model spec controls
- `showInMenu` can hide a spec from the selector while retaining trusted explicit `spec` access
- `memory` equips an ephemeral Agent with memory tools
- `askUserQuestion` enables durable question-and-resume flows
- `runInBackground` now accepts a boolean or resolved tool-ID list; `false` or `[]` opts out of background-native code tools
- `describeIntent` accepts a boolean or resolved tool-ID list for live tool intent labels

- Added OpenAI reasoning controls
- `reasoning_mode` supports `standard` and `pro`
- `reasoning_context` supports `auto`, `current_turn`, and `all_turns`
- `reasoning_effort` now supports `max` on compatible models
- GPT-5.6 reasoning requests default to the Responses API unless `useResponsesApi: false` is set explicitly

- Added top-level `langfuse` tenant configuration
- Stores enabled state, public key, encrypted secret key, verified project ID, masked `secretKeyPreview`, and an approved destination key
- Added an admin-only **Settings → Langfuse** connection flow with server-side credential verification
- Complete environment credentials take precedence in single-tenant deployments; fanout availability remains deployment-controlled
- Removed the legacy `displaySecretKey` and nested `fanout.enabled` fields
- Added opt-in Compose and Helm fanout deployment settings for central and tenant-scoped trace export
- Added `LANGFUSE_FANOUT_LISTEN_ADDR` to override the gateway's default `:4318` listen address
- Added `LANGFUSE_PROJECT_ID`, `LANGFUSE_TRACING_ENABLED`, and deterministic `LANGFUSE_SAMPLE_RATE`
- Authorized administrators can open a sampled conversation's Langfuse session directly from the Context Usage breakdown

- Expanded admin config secret handling
- Registered OCR, speech, web-search, Assistants, Azure Assistants, and Langfuse keys are encrypted and redacted on admin writes and reads
- `endpoints.custom[].apiKey` literals are encrypted; environment references and `user_provided` remain passthrough values
- Registered secret fields expose server-generated `<field>Preview` companions

- Added Node.js HTTP server timeout settings
- `HTTP_KEEP_ALIVE_TIMEOUT_MS` and `HTTP_KEEP_ALIVE_TIMEOUT_BUFFER_MS`
- `HTTP_HEADERS_TIMEOUT_MS` and `HTTP_REQUEST_TIMEOUT_MS`
- Values are non-negative milliseconds; `0` disables the corresponding timeout

- Added Code Interpreter runtime settings
- `CODE_SANDBOX_PREWARM` controls stateful sandbox prewarming
- `CODE_SANDBOX_COLD_AFTER_MS` controls when tracked sandboxes are treated as cold
- `LIBRECHAT_CODE_IMAGE_CHUNK_BYTES` controls transport chunk size for sandbox images returned by `read_file`

- Added experimental Agent Plugin runtime settings
- `DEPLOYMENT_PLUGINS_DIR` selects the startup-loaded plugin package directory and defaults to `./plugin`
- `DEPLOYMENT_PLUGIN_DATA_DIR` selects the persistent per-plugin data root and defaults to `./data/plugins`
- Agent Plugins `1.0.0` can bundle deployment Skills and MCP servers
- `DEPLOYMENT_PLUGIN_HOOKS=true` opts trusted plugins into `command` hook execution on the API host; hooks are ignored with a warning by default
- Command hooks receive bounded lifecycle payloads over standard input, run with a minimal environment plus explicit `allowedEnvVars`, and can return event-appropriate decisions

- Updated GitHub Skill Sync isolation
- Valid Skills can publish when another Skill in the source is invalid or conflicts
- Partially successful runs report `partial` with bounded skipped-Skill counts and details
- Skipped Skills preserve last-known-good mirrors; source authentication, rate-limit, lock-loss, and rollback failures remain fatal

- Updated `speech.speechTab` engine defaults
- `engineSTT` accepts `browser` and `external`; legacy `openai` and `azureOpenAI` values normalize to `external`
- `engineTTS` accepts `browser` and `external`; legacy provider values normalize to `external`
- Saved legacy values are migrated before speech settings initialize, and unavailable external engines fall back to `browser`

- Added file upload runtime settings
- `FILE_UPLOAD_SSE_ENABLED` keeps long-running uploads alive with SSE heartbeats
- `REMOTE_FILE_FETCH_TIMEOUT_MS` limits server-side remote file download time
- `REMOTE_FILE_FETCH_MAX_BYTES` limits server-side remote file download size
- `FILE_USAGE_USER_MAX` and `FILE_USAGE_USER_WINDOW` limit queued-attachment TTL renewal requests separately from upload limits
- Shell MIME variants `application/x-shellscript` and `text/x-shellscript` normalize to the canonical `application/x-sh` before endpoint allowlist checks
- Rejected uploads now return their specific unsupported-file message and HTTP status instead of a generic server error

- Expanded PowerPoint template handling
- `.potx` files are recognized by their standard MIME type across uploads and SharePoint imports
- PowerPoint templates can use file search, Code Interpreter, OCR, and inline presentation previews

- Added separate authentication token-submission rate limits
- `RESET_PASSWORD_SUBMISSION_MAX` and `RESET_PASSWORD_SUBMISSION_WINDOW` limit password-reset token validation independently from reset-email requests
- `VERIFY_EMAIL_SUBMISSION_MAX` and `VERIFY_EMAIL_SUBMISSION_WINDOW` limit verification-token validation independently from email resends
- Added separate violation-score controls for both submission limiters

- Added Agent conversation control `STEER_MAX_LENGTH`
- Caps the length of one mid-run steering message

- Added `GENERATION_PROTOCOL_VERSION`
- Supports the rolling-upgrade-safe cutover to interrupt, recovery, and durable queue protocol v2 on Redis-backed deployments

- Added section-scoped administrator configuration access
- Read responses are filtered to sections the administrator can access
- Managing a configuration section also grants read access to that section
- Every mutation of the base `__base__` profile requires broad `manage:configs`; section-scoped management applies to role, group, and user overrides

- Updated request-scoped MCP server behavior
- Agent Builder attaches servers that use `{{LIBRECHAT_BODY_*}}` as a whole and resolves their tool catalog during the active run
- OAuth completion stores authorization but defers the request-scoped connection until chat context is available

- Updated MCP server instruction handling
- Preserves the configured `serverInstructions` declaration separately from instructions fetched during inspection
- Keeps `true` declarations and literal overrides authoritative across cached registry reloads
- Refreshes Redis-backed registry entries written by earlier builds during initialization

- Updated MCP transport compatibility
- Upgraded `@modelcontextprotocol/sdk` to `1.30.0`
- Streamable HTTP responses are classified by their parsed `Content-Type` media type instead of substring matching
- Individual STDIO messages now have the SDK's 10 MB default buffer limit and fail the transport when exceeded

- Updated transaction recording
- `transactions.enabled: false` is honored on the token-count fallback path when a provider does not return usable stream usage
- `balance.enabled: true` continues to require transaction recording regardless of the transaction setting

- Updated Admin Panel configuration and Google SSO
- `ADMIN_PANEL_URL` now also exposes an admin-only link under **Settings -> General**
- Google admin OAuth requests offline access and can refresh the panel session while rechecking current account, tenant, domain, ban, and admin-access policy

- Added authentication and permission cache settings
- `ALLOW_EMAIL_LOGIN_OVERRIDE` permits audited direct API email login while the regular email login UI is disabled
- `AUTH_USER_CACHE_MODE=on` opts into a short Redis-backed authenticated-user cache
- `USER_PRINCIPALS_CACHE_TTL_MS`, `USER_PRINCIPALS_LOCK_TTL_MS`, and `USER_PRINCIPALS_LOCK_WAIT_MS` tune ACL principal caching and cross-process cache builds

- Added `{{LIBRECHAT_USER_TERMSACCEPTEDAT}}`
- Makes the recorded terms acceptance timestamp available to MCP and custom endpoint header templates
- Existing accepted users can be backfilled with `npm run migrate:terms-timestamp`

- Updated built-in model defaults
- Added GPT-5.6 Sol, Terra, and Luna
- Added Claude Sonnet 5, including Bedrock model IDs
- Added Gemini 3.6 Flash and Gemini 3.5 Flash-Lite
- Added Gemini 3.7 Flash for Google AI Studio and Vertex AI with a 1,048,576-token context window
- Defaults Gemini 3.7 Flash to `MEDIUM` thinking and maps its unsupported `MINIMAL` level to `LOW`
- Uses introductory Gemini 3.6/3.7 Flash input, output, and cache pricing through December 31, 2026

- Added Agent stream circuit breakers
- `endpoints.agents.maxToolCallArgBytes` limits one streamed tool call's cumulative argument bytes
- `maxDeltaEventsPerTurn` limits stream events from one model generation
- `maxToolCallArgBytesByTool` provides per-tool overrides, including the shipped 128 KiB `create_file` allowance

- Added `STREAM_DELTA_COALESCE_MS`
- Optionally batches Redis delta publications to reduce round trips and Redis CPU at high token rates
- Defaults off; `25` ms is recommended and values are capped at `1000`
- Must be enabled only after every replica supports batch frames

- Added `LANGFUSE_FANOUT_CENTRAL_MEDIA_UPLOAD_DISABLED`
- Disables app-side media upload creation for central and fallback collector traces without changing tenant-routed media

- Updated custom PII filters to use RE2
- Custom patterns now run on a linear-time engine and are validated at config load
- Backreferences and lookaround are not supported

- Updated administrator-configured file MIME patterns to use RE2 on the server
- Invalid patterns are skipped and logged
- If every configured pattern is invalid, the resulting list fails closed and rejects every file

- Added `allowedAddresses` to `speech.tts`, `speech.stt`, and `ocr`
- Speech and OCR requests now enforce private-address SSRF checks at connect time and disable redirects
- Exact trusted private host:port entries bypass the block without restricting public destinations
- Literal private destinations remain blocked through a proxy unless exempted; proxied hostname egress remains the proxy's responsibility

- Added `webSearch.allowedAddresses`
- Web search, scrape, and rerank connections now block private, loopback, link-local, and cloud-metadata destinations at connect time
- The field exempts exact trusted private host:port services without becoming a public-host allowlist
- Self-hosted SearXNG, Firecrawl, Jina, or compatible provider endpoints on private networks must be exempted

- Updated provider stream smoothing
- OpenAI, custom, Anthropic, Google, Bedrock, and Agents SDK-backed streams use adaptive smoothing with a 25 ms target by default
- Endpoint `streamRate` remains in effect when `endpoints.all` omits it, and an explicit `0` disables adaptive smoothing

- Removed published credential and search defaults
- Blank `CREDS_KEY`, `CREDS_IV`, `JWT_SECRET`, and `JWT_REFRESH_SECRET` values generate temporary credentials, reusing `LIBRECHAT_TEMP_CREDENTIALS_PATH` when available
- Bundled Compose files persist `/app/data/.env.temp`; production and multi-replica deployments must still provide permanent shared values
- `SEARCH` now defaults to `false` and `MEILI_MASTER_KEY` is blank so operators must opt in with a unique key

- Updated the config version to `1.3.14`
Loading
Loading