⚙️ Config v1.3.16
-
Added beta Agent Management API configuration
endpoints.agents.managementApi.auth.oidcconfigures the trusted issuer, audience, and optional JWKS URL for machine-to-machine accessendpoints.agents.managementApi.auth.clientsbinds allowed OAuth clients to a LibreChat user and optional tenant- Management requests retain the bound user's role, ACL, capability, ownership, and tenant checks
-
Expanded highly experimental stateful Code session configuration
endpoints.agents.statefulCodeSessions.principalWorkers.enabledcontrols personal worker enrollment and defaults totrueprincipalWorkers.maxPerUserdefaults to5; deployment configuration is a hard ceiling and tenant or role overrides may only reduce it- Setting the limit to
0, or disabling principal workers, prevents new enrollment without removing existing workers - Attached workspaces now support bounded tree listing, file reads, text search, file authoring, Bash execution, and per-Agent Git identity
- These environments remain highly experimental and may change substantially
-
Added conversation-level Code approval modes
- Users can choose Ask before changes, Accept edits, or Full access when permitted by deployment policy
- Full access is available only when both file writing and command execution allow it, and does not bypass sandbox, endpoint, role, hook, or Skill confirmation controls
-
Added Agent attachment context limits
fileConfig.fileContextSizeLimitcaps aggregate model-bound attachment bytes and defaults to134217728(128 MiB)fileConfig.fileContextCharLimitcaps aggregate extracted text and defaults to1000000charactersfileConfig.endpoints.agents.fileLimitcaps the number of files attached to an Agent request
-
Added OpenTelemetry log export
OTEL_LOGS_ENABLEDenables log export independently of trace export;OTEL_SDK_DISABLEDdisables bothOTEL_LOGS_LEVELdefaults toinfoOTEL_LOGS_EXPORTER,OTEL_EXPORTER_OTLP_PROTOCOL, andOTEL_EXPORTER_OTLP_LOGS_ENDPOINTconfigure the exporter and destination
-
Added configurable Langfuse trace identity and metadata
langfuse.trace.userIdFieldselects the internal ID, email, username, or OpenID ID used for Langfuse trace identityuserMetadataFieldsandconversationMetadataFieldsexplicitly allowlist additional trace metadata- Existing internal user IDs remain the default and no additional metadata is exported unless configured
-
Added shared-link read throttling and audit scoring
SHARE_IP_MAXandSHARE_IP_WINDOWconfigure the IP bucket, defaulting to 100 reads per minuteSHARE_USER_MAXandSHARE_USER_WINDOWconfigure the authenticated-user bucket, defaulting to 60 reads per minuteSHARE_VIOLATION_SCOREcontrols the violation score added for rejected reads and defaults to0
-
Added Redis connection health controls
REDIS_PING_TIMEOUTbounds heartbeat PING calls and defaults to5000msREDIS_SUBSCRIBER_PING_INTERVALdetects silent subscriber socket failures and defaults to15000msREDIS_KEEP_ALIVEconfigures the TCP keepalive delay and defaults to10000ms
-
Updated OpenID-backed MCP authentication
- Trusted YAML-defined servers can pass the live upstream token with
Authorization: "Bearer {{LIBRECHAT_OPENID_ACCESS_TOKEN}}" - Explicit MCP OAuth, on-behalf-of exchange, and administrator API-key authentication take precedence
- A rejected bearer can refresh the connection once, but LibreChat never automatically replays the rejected tool call
- Trusted YAML-defined servers can pass the live upstream token with
-
Updated built-in provider configuration
- Added
gpt-6-astrato the default OpenAI model catalog - GPT-6 Astra uses the Responses API, omits unsupported sampling parameters, and supports a 1,050,000-token context window with up to 128,000 output tokens
- Added
-
Updated configuration examples
- Removed the retired Helicone and Portkey examples
-
Added unified attachment routing and lazy tool provisioning
fileConfig.defaultLLMDeliveryPathcontrols whether unmatched and MIME-specific uploads use native provider delivery, extracted text, or tool-only storage- Configure
fallbackplus exact or wildcardoverrides; endpoint settings take precedence over global settings - Without explicit overrides, images, audio, video, and PDFs prefer provider delivery while other recoverable content uses extracted text
- Unsupported native paths fall back to text when extraction is available, or remain available only to tools otherwise
- File Search and Code resources are provisioned only when the selected tools need eligible attachments
fileConfig.legacyFileUploadUX: truerestores the previous destination chooser and eager, user-selected routing globally or for an endpoint
-
Added MCP foreground refresh controls
interface.mcpServers.toolsRefreshIntervalcontrols visible tool-catalog polling and defaults to300000msinterface.mcpServers.statusRefreshIntervalcontrols visible connection-status polling and defaults to30000ms- Set either value to
0to disable that polling loop
-
Added MCP catalog recovery controls under
mcpSettings.catalogRecovery- Passive OAuth discovery now uses bounded, coalesced backoff instead of retrying on every catalog request
- Configure discovery and reauthentication delays, credential-generation read deadlines, in-memory state bounds, and durable authorization-fence retries
- Defaults are documented in the MCP Settings reference
discoverySettleGraceMsdefaults to10000ms and lets a timed-out discovery settle without being cancelledmaxDetachedDiscoveriesdefaults to3and bounds still-settling discoveries before new recovery work waits
-
Added run-scoped Subagent file sharing
endpoints.agents.fileSharing.enableddefaults tofalse; each delegating Agent must also opt in withsubagents.shareFiles- Inputs are read-only to recipients; outputs remain private unless explicitly published
allowSiblingSharing,maxFiles,maxPrivateBytes, andttlMsbound recipient scope, manifest capacity, retained private outputs, and active lifetime
-
Added Conversation Trace Viewer configuration
interface.traceViewer.enableddefaults tofalseand requires a Langfuse release with the v2 Observations APIshowInputOutputdefaults tofalse; enabling it can reveal prompts, Agent instructions, and tool definitions in trace recordsmaxRecords,maxContentLength,requestsPerMinute, andrequestTimeoutMsbound trace reads
-
Added
CODE_ENVIRONMENT_DECISION_VERSION=1- Advertises immutable conversation-owned Code-environment decisions
- Enable it only after every LibreChat API replica supports protocol version 1
-
Added Agent Code API recovery and attached-command limits
endpoints.agents.codeApiUploadConcurrencydefaults to3concurrent uploads per route and authenticated principalendpoints.agents.codeApiMaxRetryWaitMsdefaults to20000ms of total rate-limit waiting per operationstatefulCodeSessions.environments[].configSchema.limits.maxCommandTimeoutMsexposes a model-requestable attached Bash timeout; omission preserves 30 seconds and the hard ceiling is 300 seconds
-
Added optional ordinary background-tool cancellation
endpoints.agents.backgroundTasks.ordinaryToolCancellationdefaults tofalse- When enabled, owners can cooperatively cancel ordinary background tools, including attached Bash; detached Subagents keep their independent lifecycle
-
Added Scheduled Chat MCP admission limits
interface.schedules.admissionConcurrencydefaults to20readiness admissions per replicainterface.schedules.mcpPreflightConcurrencydefaults to3MCP readiness connections per admissioninterface.schedules.mcpPreflightTimeoutMsdefaults to300000ms
-
Blank
MONGO_AUTO_INDEXandMONGO_AUTO_CREATEvalues now use Mongoose defaults instead of disabling automatic index or collection creation -
Added separate regular-chat retention
interface.generalChatRetentioncontrols regular conversation retention underretentionMode: "all"- It accepts
1to8760hours and falls back totemporaryChatRetentionwhen omitted - Temporary and regular chat policies are evaluated independently
- Changing retention settings does not rewrite deadlines already stored on existing records
-
Added tenant index upgrade commands
npm run migrate:tenant-indexes:dry-runreports the planned index changesnpm run migrate:tenant-indexesapplies the upgrade migration- Follow the Tenant Index Migration guide before restarting database writers
-
Updated the config version to
1.3.16