⚙️ Config v1.3.14
-
Updated Agents endpoint capabilities
- Added
memoryandask_user_questionto the default capability list - Added highly experimental, opt-in
stateful_code_sessionsfor 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_intentsfor live model-written labels on native and selected MCP tool calls
- Added
-
Added Agent activity-group settings
activityLabelenables generated one-line headers for contiguous reasoning and tool-call blocksactivityModel,activityEndpoint, andactivityPromptselect and configure the header model callactivityMaxPerRunandactivityCharLimitbound 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
activityPhaseLabelgenerates a collapsed summary for run phases containing at least two logical activitiesactivityPhaseModel,activityPhaseEndpoint, andactivityPhasePromptconfigure the summary model callactivityPhaseMaxPerRundefaults to5;activityCharLimitalso 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, andbypassmodes plus glob-basedallow,deny, andaskrules - 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
memorymode for development
-
Added
summarization.retainRecentturnspreserves a configurable number of recent complete conversation turns outside the summarytokenssets a recent token-retention budget
-
Updated automatic memory extraction
memory.agent.enabled: trueis 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
showInMenucan hide a spec from the selector while retaining trusted explicitspecaccessmemoryequips an ephemeral Agent with memory toolsaskUserQuestionenables durable question-and-resume flowsrunInBackgroundnow accepts a boolean or resolved tool-ID list;falseor[]opts out of background-native code toolsdescribeIntentaccepts a boolean or resolved tool-ID list for live tool intent labels
-
Added OpenAI reasoning controls
reasoning_modesupportsstandardandproreasoning_contextsupportsauto,current_turn, andall_turnsreasoning_effortnow supportsmaxon compatible models- GPT-5.6 reasoning requests default to the Responses API unless
useResponsesApi: falseis set explicitly
-
Added top-level
langfusetenant 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
displaySecretKeyand nestedfanout.enabledfields - Added opt-in Compose and Helm fanout deployment settings for central and tenant-scoped trace export
- Added
LANGFUSE_FANOUT_LISTEN_ADDRto override the gateway's default:4318listen address - Added
LANGFUSE_PROJECT_ID,LANGFUSE_TRACING_ENABLED, and deterministicLANGFUSE_SAMPLE_RATE - Authorized administrators can open a sampled conversation's Langfuse session directly from the Context Usage breakdown
- Stores enabled state, public key, encrypted secret key, verified project ID, masked
-
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[].apiKeyliterals are encrypted; environment references anduser_providedremain passthrough values- Registered secret fields expose server-generated
<field>Previewcompanions
-
Added Node.js HTTP server timeout settings
HTTP_KEEP_ALIVE_TIMEOUT_MSandHTTP_KEEP_ALIVE_TIMEOUT_BUFFER_MSHTTP_HEADERS_TIMEOUT_MSandHTTP_REQUEST_TIMEOUT_MS- Values are non-negative milliseconds;
0disables the corresponding timeout
-
Added Code Interpreter runtime settings
CODE_SANDBOX_PREWARMcontrols stateful sandbox prewarmingCODE_SANDBOX_COLD_AFTER_MScontrols when tracked sandboxes are treated as coldLIBRECHAT_CODE_IMAGE_CHUNK_BYTEScontrols transport chunk size for sandbox images returned byread_file
-
Added experimental Agent Plugin runtime settings
DEPLOYMENT_PLUGINS_DIRselects the startup-loaded plugin package directory and defaults to./pluginDEPLOYMENT_PLUGIN_DATA_DIRselects the persistent per-plugin data root and defaults to./data/plugins- Agent Plugins
1.0.0can bundle deployment Skills and MCP servers DEPLOYMENT_PLUGIN_HOOKS=trueopts trusted plugins intocommandhook 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
partialwith 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.speechTabengine defaultsengineSTTacceptsbrowserandexternal; legacyopenaiandazureOpenAIvalues normalize toexternalengineTTSacceptsbrowserandexternal; legacy provider values normalize toexternal- 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_ENABLEDkeeps long-running uploads alive with SSE heartbeatsREMOTE_FILE_FETCH_TIMEOUT_MSlimits server-side remote file download timeREMOTE_FILE_FETCH_MAX_BYTESlimits server-side remote file download sizeFILE_USAGE_USER_MAXandFILE_USAGE_USER_WINDOWlimit queued-attachment TTL renewal requests separately from upload limits- Shell MIME variants
application/x-shellscriptandtext/x-shellscriptnormalize to the canonicalapplication/x-shbefore 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
.potxfiles 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_MAXandRESET_PASSWORD_SUBMISSION_WINDOWlimit password-reset token validation independently from reset-email requestsVERIFY_EMAIL_SUBMISSION_MAXandVERIFY_EMAIL_SUBMISSION_WINDOWlimit 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 broadmanage: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
- Agent Builder attaches servers that use
-
Updated MCP server instruction handling
- Preserves the configured
serverInstructionsdeclaration separately from instructions fetched during inspection - Keeps
truedeclarations and literal overrides authoritative across cached registry reloads - Refreshes Redis-backed registry entries written by earlier builds during initialization
- Preserves the configured
-
Updated MCP transport compatibility
- Upgraded
@modelcontextprotocol/sdkto1.30.0 - Streamable HTTP responses are classified by their parsed
Content-Typemedia type instead of substring matching - Individual STDIO messages now have the SDK's 10 MB default buffer limit and fail the transport when exceeded
- Upgraded
-
Updated transaction recording
transactions.enabled: falseis honored on the token-count fallback path when a provider does not return usable stream usagebalance.enabled: truecontinues to require transaction recording regardless of the transaction setting
-
Updated Admin Panel configuration and Google SSO
ADMIN_PANEL_URLnow 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_OVERRIDEpermits audited direct API email login while the regular email login UI is disabledAUTH_USER_CACHE_MODE=onopts into a short Redis-backed authenticated-user cacheUSER_PRINCIPALS_CACHE_TTL_MS,USER_PRINCIPALS_LOCK_TTL_MS, andUSER_PRINCIPALS_LOCK_WAIT_MStune 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
MEDIUMthinking and maps its unsupportedMINIMALlevel toLOW - Uses introductory Gemini 3.6/3.7 Flash input, output, and cache pricing through December 31, 2026
-
Added Agent stream circuit breakers
endpoints.agents.maxToolCallArgByteslimits one streamed tool call's cumulative argument bytesmaxDeltaEventsPerTurnlimits stream events from one model generationmaxToolCallArgBytesByToolprovides per-tool overrides, including the shipped 128 KiBcreate_fileallowance
-
Added
STREAM_DELTA_COALESCE_MS- Optionally batches Redis delta publications to reduce round trips and Redis CPU at high token rates
- Defaults off;
25ms is recommended and values are capped at1000 - 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
allowedAddressestospeech.tts,speech.stt, andocr- 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
streamRateremains in effect whenendpoints.allomits it, and an explicit0disables adaptive smoothing
-
Removed published credential and search defaults
- Blank
CREDS_KEY,CREDS_IV,JWT_SECRET, andJWT_REFRESH_SECRETvalues generate temporary credentials, reusingLIBRECHAT_TEMP_CREDENTIALS_PATHwhen available - Bundled Compose files persist
/app/data/.env.temp; production and multi-replica deployments must still provide permanent shared values SEARCHnow defaults tofalseandMEILI_MASTER_KEYis blank so operators must opt in with a unique key
- Blank
-
Updated the config version to
1.3.14