Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
← Back to changelog

⚙️ Config v1.3.14

v1.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