Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
519 commits
Select commit Hold shift + click to select a range
e854967
🧜‍♀️ fix: Mermaid Dialog UI Improvements (#11125)
danny-avila Dec 28, 2025
c7b2d42
🌍 i18n: Update translation.json with latest translations (#11127)
github-actions[bot] Dec 28, 2025
eeb5522
📦 chore: bump MCP SDK to v1.25.1 and fix `packages/api` ghost depende…
danny-avila Dec 28, 2025
0b8e0fc
📡 refactor: SSE Connection Settings and Error Handling (#11129)
danny-avila Dec 28, 2025
e4870ed
🔌 refactor: MCP UI with Improved Accessibility and Reusable Component…
berry-13 Dec 28, 2025
d0835d5
👐 fix: Return Focus to MCP Edit Button after Dialog Closes
danny-avila Dec 28, 2025
29275cd
🪟 feat: Make Chat Header Transparent (#11122)
joelhirzel Dec 29, 2025
bf00909
🌍 i18n: Update translation.json with latest translations (#11130)
github-actions[bot] Dec 29, 2025
47a0f11
🔊 refactor: Audio Chunk Handling for STT (#11140)
danny-avila Dec 29, 2025
28f4800
🔖 fix: Preset button Invisible on Narrow Screens & Mobile
danny-avila Dec 29, 2025
a59bab4
🧠 style: Expanded Thinking footer, Banner links, and Copy Thoughts ac…
berry-13 Dec 29, 2025
4fd0994
🔒 fix: Better SSRF protection for Actions (#11143)
danny-avila Dec 29, 2025
4b9c6ab
🔧 fix: Agent File Upload Permission Checks (#11144)
danny-avila Dec 29, 2025
06ba025
🔒 fix: Access Control on Agent Permission Queries (#11145)
danny-avila Dec 29, 2025
eb1a59d
🧠 fix: Messages View Height Expansion from #11142 & improve Thinking/…
danny-avila Dec 30, 2025
131eab7
🎨 fix: Use presentation background for header buttons (#11147)
joelhirzel Dec 30, 2025
512fed5
🌍 i18n: Update translation.json with latest translations (#11146)
github-actions[bot] Dec 30, 2025
180d0f1
🐛 fix: ChatGPT import creating fragmented conversation tree (#11123)
RisingOrange Dec 30, 2025
c7469ce
✨ feat: Add Claude conversation importer with thinking support (#11124)
RisingOrange Dec 30, 2025
dcda6a2
🔧 refactor: Display name logic in Parallel Responses (#11149)
danny-avila Dec 30, 2025
f9501d2
🐋 chore: Pin MongoDB image version in Default Docker Files (#11151)
danny-avila Dec 30, 2025
bed1923
🔧 fix: Incorrect count query in meilisearch sync (#11157)
ablizorukov Dec 30, 2025
716d2a9
🌍 i18n: Update translation.json with latest translations (#11150)
github-actions[bot] Dec 30, 2025
90c63a5
🤖 feat: Anthropic Vertex AI Support (#10780)
usnavy13 Dec 30, 2025
e4b879c
📦 chore: Bump Packages & Fix Recursion in `@librechat/api` build (#11…
danny-avila Dec 30, 2025
a2361aa
🧰 fix: Allow UI-based MCP Management without Configured Servers (#11158)
danny-avila Dec 30, 2025
a7aa4dc
🚦 refactor: Concurrent Request Limiter for Resumable Streams (#11167)
danny-avila Jan 1, 2026
d3b5020
🧠 feat: 'Extra High' Reasoning Effort OpenAI Parameter (#11171)
danny-avila Jan 1, 2026
791dab8
🫱🏼‍🫲🏽 refactor: Improve Agent Handoffs (#11172)
danny-avila Jan 1, 2026
7d136ed
🔧 refactor: batching documents on meili index reset (#11165)
ablizorukov Jan 2, 2026
f3aec05
🌍 i18n: Update translation.json with latest translations (#11173)
github-actions[bot] Jan 2, 2026
1e74dc2
📊 feat: Enhance Inline Mermaid UX (#11170)
joelhirzel Jan 2, 2026
b1a2b96
🪜 fix: Layering Conflicts and UX Polish (#11177)
danny-avila Jan 2, 2026
cda6d58
🧜 refactor: Focus Rendering for Mermaid Diagram (#11181)
danny-avila Jan 2, 2026
b94388c
🏺 fix: Restore Archive Functionality with Dedicated Endpoint (#11183)
danny-avila Jan 3, 2026
e452c1a
🔀 refactor: Conditional Mapping Support for Multi-Convo (Parallel) Me…
danny-avila Jan 3, 2026
200098d
🍌 feat: Gemini Image Generation Tool (Nano Banana) (#10676)
usnavy13 Jan 3, 2026
4d6ea3b
🚧 feat: Add Bedrock Guardrails Support (#11141)
nealedj Jan 3, 2026
211b39f
🔒 fix: Restrict MCP Stdio Transport via API (#11184)
danny-avila Jan 3, 2026
b7db0dd
📎 fix: Allow Message Attachments for Users with Viewer Permission on …
danny-avila Jan 5, 2026
ca58d70
🐋 fix: NODE_MAX_OLD_SPACE_SIZE arg not being applied in `Dockerfile.m…
shtayeb Jan 5, 2026
1544491
🧩 feat: Standardize empty states, improve MCP icon upload accessibili…
berry-13 Jan 5, 2026
e343180
🧵 fix: Remove Empty String values from Gemini API Payload (#11213)
danny-avila Jan 5, 2026
019c59f
🎯 fix: Actions Allowed Domains Handling (#11215)
danny-avila Jan 5, 2026
d21dfba
🏞️ fix: Image Preview Refactor with Accessibility Enhancements (#11217)
danny-avila Jan 5, 2026
f8383f2
🌍 i18n: Update translation.json with latest translations (#11218)
github-actions[bot] Jan 5, 2026
35137c2
🔥 fix: Firebase Support for Nano Banana Tool (#11228)
lurkerCha Jan 6, 2026
04fd231
🌙 fix: Agent Builder MCP Tool Removal Button Text Contrast (#11223)
dustinhealy Jan 6, 2026
b5aa38f
💾 feat: Custom Endpoint Support for Memory LLM Config (#11214)
dustinhealy Jan 6, 2026
a7645f4
🪐 feat: Cross-replica support in `GenerationJobManager` for Redis mod…
danny-avila Jan 6, 2026
3b41e39
🔒 fix: SSRF Protection and Domain Handling in MCP Server Config (#11234)
danny-avila Jan 6, 2026
348b4a4
🍪 refactor: Move OpenID Tokens from Cookies to Server-Side Sessions (…
danny-avila Jan 6, 2026
a95fccc
✨ v0.8.2-rc2 (#11239)
danny-avila Jan 6, 2026
9434d4a
🔧 fix: Sorting and Pagination logic for Conversations (#11242)
danny-avila Jan 7, 2026
9845b31
📦 chore: bump @modelcontextprotocol/sdk to v1.25.2 (#11247)
danny-avila Jan 7, 2026
24e8a25
🔧 fix: Clean empty strings from `model_parameters` for Agents/OpenAI …
danny-avila Jan 7, 2026
c30afb8
🚏 chore: Remove Resumable Stream Toggle (#11258)
danny-avila Jan 8, 2026
6680ccf
🔧 fix: Model List Query Data in Agent Builder Panel (#11260)
dustinhealy Jan 8, 2026
f2e4cd5
🌍 i18n: Update translation.json with latest translations (#11259)
github-actions[bot] Jan 8, 2026
87c817a
🔧 fix: Invalidate Query for MCP tools on Chat Creation (#11272) (#11272)
danny-avila Jan 8, 2026
7d38047
📦 chore: Update react-router to v6.30.3 and @remix-run/router to v1.2…
danny-avila Jan 9, 2026
0832515
⏭️ fix: Skip Title Generation for Temporary Chats (#11282)
ynori7 Jan 9, 2026
76e17ba
🔧 refactor: Permission handling for Resource Sharing (#11283)
danny-avila Jan 10, 2026
2003779
🌙 feat: Add Moonshot Kimi K2 Bedrock Support (#11288)
KarthiDreamr Jan 10, 2026
2958fcd
🌍 i18n: Update translation.json with latest translations (#11294)
github-actions[bot] Jan 10, 2026
cdffdd2
🏞️ fix: Gemini Image Filenames and Add Tool Cache Safety (#11306)
danny-avila Jan 12, 2026
fc6f127
🌉 fix: Add Proxy Support to Gemini Image Gen Tool (#11302)
usnavy13 Jan 12, 2026
90521bf
🧹 fix: MCP Panel Regressions after UI refactor (#11312)
danny-avila Jan 13, 2026
28270be
🌵 chore: Remove deprecated 'prompt-caching' Anthropic header (#11313)
danny-avila Jan 13, 2026
a8fa85b
📜 fix: Layout/Overflow handling in Share View (#11314)
danny-avila Jan 13, 2026
f877498
🪪 fix: Misleading MCP Server Lookup Method Name (#11315)
danny-avila Jan 13, 2026
1329e16
🌍 i18n: Update translation.json with latest translations (#11317)
github-actions[bot] Jan 13, 2026
2a50c37
🪙 refactor: Collected Usage & Anthropic Prompt Caching (#11319)
danny-avila Jan 13, 2026
5617bf7
🧭 fix: Correct Subpath Routing for SSE and Favorites Endpoints (#11339)
SpectralOne Jan 13, 2026
774f1f2
🗑️ chore: Remove YouTube API integration (#11331)
leondape Jan 13, 2026
10f591a
📊 refactor: Use Estimated Document Count for Meilisearch Sync (#11329)
ablizorukov Jan 13, 2026
a95fea1
🌅 fix: Agent Avatar S3 URL Refresh Pagination and Persistence (#11323)
darthhexx Jan 13, 2026
9d5e80d
🛠️ fix: UI/UX for Known Server-sent Errors (#11343)
danny-avila Jan 13, 2026
8d74fcd
📦 chore: npm audit fix (#11346)
danny-avila Jan 14, 2026
39a227a
🌍 i18n: Update translation.json with latest translations (#11342)
github-actions[bot] Jan 14, 2026
b5e4c76
🔀 refactor: Endpoint Check for File Uploads in Images Route (#11352)
danny-avila Jan 14, 2026
9562f92
🪨 fix: Bedrock Provider Support for Memory Agent (#11353)
danny-avila Jan 15, 2026
bb0fa3b
📦 chore: Cleanup Unused Packages (#11369)
danny-avila Jan 16, 2026
4768824
🌍 i18n: Update translation.json with latest translations (#11370)
github-actions[bot] Jan 16, 2026
81f4af5
🪨 feat: Anthropic Beta Support for Bedrock (#11371)
danny-avila Jan 16, 2026
c378e77
🪵 refactor: Preserve Job Error State for Late Stream Subscribers (#11…
danny-avila Jan 16, 2026
02d75b2
🛠️ fix: improved retry logic during meili sync & improved batching (#…
ablizorukov Jan 16, 2026
f7893d9
🔧 fix: Update Z-index values for Navigation and Mask layers (#11375)
danny-avila Jan 16, 2026
c11245f
🫙 fix: Cache Control Immutability for Multi-Agents (#11383)
danny-avila Jan 17, 2026
922cdaf
✨ v0.8.2-rc3 (#11384)
danny-avila Jan 17, 2026
5037617
🎨 fix: Layering for Right-hand Side Panel (#11392)
danny-avila Jan 18, 2026
66d4540
📦 fix: `@librechat/agents` v3.0.775 for Anthropic Message Coercion Fi…
danny-avila Jan 18, 2026
b70528f
📦 fix: `@librechat/agents` v3.0.776 for Anthropic Message Coercion Fi…
danny-avila Jan 18, 2026
277fbd1
🔒 fix: Session Expiry Management for OpenID/SAML (#11407)
danny-avila Jan 19, 2026
9134471
🔎 fix: Focus Credential Inputs in Agent Tools (#11394)
dustinhealy Jan 19, 2026
4a1d2b0
📊 fix: MeiliSearch Sync Threshold & Document Count Accuracy (#11406)
ablizorukov Jan 19, 2026
e509ba5
🪄 fix: Code Block handling in Artifact Updates (#11417)
danny-avila Jan 20, 2026
32e6f3b
📢 fix: Alert for Agent Builder Name Invalidation (#11430)
dustinhealy Jan 20, 2026
36c5a88
💰 fix: Multi-Agent Token Spending & Prevent Double-Spend (#11433)
danny-avila Jan 20, 2026
f09eec8
✅ feat: Zod Email Validation at Login (#11434)
dustinhealy Jan 20, 2026
c5113a7
🔧 fix: Add `hasAgentAccess` to dependencies in `useNewConvo` hook (#1…
danny-avila Jan 20, 2026
24e182d
🌍 i18n: Update translation.json with latest translations (#11439)
github-actions[bot] Jan 21, 2026
e608c65
✂️ fix: Clipped Focus Outlines in Conversation Panel (#11438)
dustinhealy Jan 21, 2026
828c2b2
📏 fix: Dropdown Menu Z-Index Adjustments (#11441)
dustinhealy Jan 21, 2026
12ec64b
🔖 fix: Announce Bookmark Selection State (#11450)
dustinhealy Jan 21, 2026
e2ec3f1
↕️ fix: Add `aria-expanded` Attribute to ConvoOptions (#11452)
dustinhealy Jan 21, 2026
9d61271
✅️ feat: Accessible Model Selection Icons and Announcements (#11454)
dustinhealy Jan 21, 2026
dea2469
😶‍🌫 feat: Better Blur on Collapsed Chat Input (#11464)
dustinhealy Jan 21, 2026
11210d8
🏁 fix: Message Race Condition if Cancelled Early (#11462)
danny-avila Jan 21, 2026
191cd39
🛂 fix: Encode Non-ASCII Characters in MCP Server Headers (#11432)
kenzaelk98 Jan 21, 2026
639a60c
📬 fix: Email Verification Handling in Create-User Command (#11408)
shtayeb Jan 21, 2026
74cc001
🌍 i18n: Update translation.json with latest translations (#11465)
github-actions[bot] Jan 21, 2026
7f59a18
🔧 fix: Agent Deletion Logic to Update User Favorites (#11466)
danny-avila Jan 21, 2026
7204e74
📦 chore: bump lodash version to ^4.17.23 (#11476)
danny-avila Jan 22, 2026
cfd5c79
🧑‍🏫 fix: Multi-Agent Instructions Handling (#11484)
danny-avila Jan 23, 2026
0cf7bb2
🔊 fix: Conversation Search Result Announcement (#11449)
dustinhealy Jan 23, 2026
18a0e8a
🎯 feat: High Contrast Focus Outlines for Account Settings Menu Items …
dustinhealy Jan 23, 2026
ee44c63
🔒 feat: Sanitize Placeholders in User-provided MCP Server Config (#11…
danny-avila Jan 23, 2026
8be0047
🔒 fix: Access Check for User-Specific Job Metadata in Streaming Endpo…
danny-avila Jan 23, 2026
6a49861
🔧 refactor: Offset when deleting documents during MeiliSearch cleanup…
ablizorukov Jan 24, 2026
0b4deac
🧩 fix: Missing Memory Agent Assignment for Matching IDs (#11514)
danny-avila Jan 25, 2026
5310529
🪤 refactor: Reset Interaction State When Mouse Leaves Conversation It…
mohamedmagdy17593 Jan 26, 2026
8c6277a
🍪 refactor: Secure Cookie Setting for Localhost OAuth Sessions (#11518)
maxesse Jan 26, 2026
25fe406
📦 chore: Bump `@modelcontextprotocol/sdk` to v1.25.3 (#11545)
danny-avila Jan 28, 2026
ddf85b3
🌍 i18n: Update translation.json with latest translations (#11546)
github-actions[bot] Jan 28, 2026
95a234f
🧹 refactor: Remove context-1m header filtering from Vertex Endpoint (…
danny-avila Jan 28, 2026
13cea97
🔗 feat: More Accessible Link Behaviors and Minor UI Improvements (#11…
dustinhealy Jan 28, 2026
e162bd1
🌍 i18n: Update translation.json with latest translations (#11552)
github-actions[bot] Jan 28, 2026
6960bd3
✨ v0.8.2 (#11547)
danny-avila Jan 28, 2026
efbc088
📦 chore: Bump chart version to 1.9.7
danny-avila Jan 28, 2026
7c9c7e5
⏲️ feat: Defer Loading MCP Tools (#11270)
danny-avila Jan 9, 2026
3d98194
🦥 feat: Add Deferred Tools as Agents Capability (#11295)
danny-avila Jan 11, 2026
b6af884
🔐 feat: Admin Auth. Routes with Secure Cross-Origin Token Exchange (#…
danny-avila Jan 11, 2026
c18dc0d
🌏 fix: Update UI text for `com_ui_analyzing`
danny-avila Jan 11, 2026
75c02a1
🗂️ feat: Better Persistence for Code Execution Files Between Sessions…
danny-avila Jan 16, 2026
bb220f1
👤 feat: AWS Bedrock Custom Inference Profiles (#11308)
dustinhealy Jan 16, 2026
ed61b7f
📦 chore: Bump `@librechat/agents` to v3.1.0
danny-avila Jan 19, 2026
dd4bbd3
🪪 feat: Microsoft Graph Access Token Placeholder for MCP Servers (#10…
maxesse Jan 19, 2026
6279ea8
🛸 feat: Remote Agent Access with External API Support (#11503)
danny-avila Jan 26, 2026
5af1342
🦥 refactor: Event-Driven Lazy Tool Loading (#11588)
danny-avila Feb 1, 2026
d130378
🔐 fix: MCP OAuth Tool Discovery and Event Emission (#11599)
danny-avila Feb 2, 2026
9a38af5
📉 feat: Add Token Usage Tracking for Agents API Routes (#11600)
danny-avila Feb 2, 2026
40c5804
🗑️ chore: Remove Dev Artifacts for Deferred Tools Capability (#11601)
danny-avila Feb 2, 2026
3ffc0c7
🎯 feat: Add Programmatic Tool Calling UI for MCP Tools (#11604)
danny-avila Feb 2, 2026
9f23dd3
📦 chore: Update package dependencies and versions (#11606)
danny-avila Feb 2, 2026
5cf50dd
🔦 fix: Tool resource files not visible in event-driven mode (#11610)
usnavy13 Feb 4, 2026
56a1b28
🔓 docs: Comment Out MCP Permissions in `librechat.example.yaml` (#11620)
dustinhealy Feb 4, 2026
f34052c
🌙 feat: Moonshot Provider Support (#11621)
danny-avila Feb 4, 2026
5eb0a3a
⚠️ chore: Remove Deprecated `forcePrompt` setting (#11622)
danny-avila Feb 4, 2026
6274268
📦 chore: Update @librechat/agents to v3.1.31 & Apply NPM Audit (#11623)
danny-avila Feb 4, 2026
2cef936
👆 fix: Web Search and Code Interpreter Toggle Cursor Hover Behavior (…
dustinhealy Feb 4, 2026
e89e514
📱 fix: Mention Touch UX and MCP Tool UI Consistency (#11627)
danny-avila Feb 4, 2026
db84ec6
🎭 chore: Padding to Maskable Icon for Android adaptive icons (#11626)
hellojaccc Feb 4, 2026
5dc5799
✈️ refactor: Single-Flight Deduplication for MCP Server Configs and O…
danny-avila Feb 4, 2026
b87b8ce
📦 chore: Update @librechat/agents to v3.1.32 (#11630)
danny-avila Feb 5, 2026
61f54e0
🪢 docs: add Langfuse to `.env.example` (#11632)
jannikmaierhoefer Feb 5, 2026
c8e4257
📦 chore: Update @modelcontextprotocol/sdk to v1.26.0 (#11636)
danny-avila Feb 5, 2026
1ba5bf8
📬 feat: Implement Delta Buffering System for Out-of-Order SSE Events …
danny-avila Feb 5, 2026
24625f5
🧩 refactor: Tool Context Builders for Web Search & Image Gen (#11644)
danny-avila Feb 5, 2026
8cf5ae7
🛡️ fix: Preserve CREATE/SHARE/SHARE_PUBLIC Permissions with Boolean C…
danny-avila Feb 5, 2026
754d921
🧽 chore: Remove deprecated Claude models from Default List (#11639)
saneroen Feb 5, 2026
fcb3634
🌍 i18n: Support for `Icelandic`, `Lithuanian`, `Nynorsk` and `Slovak`…
berry-13 Feb 5, 2026
4662479
🗣 fix: Add Various State Change Announcements (#11495)
dustinhealy Feb 5, 2026
feb72ad
🔄 refactor: Sequential Event Ordering in Redis Streaming Mode (#11650)
danny-avila Feb 5, 2026
e1f0261
📦 chore: Update `@librechat/agents` to v3.1.33 (#11665)
danny-avila Feb 6, 2026
1d5f2eb
🌍 i18n: Update translation.json with latest translations (#11655)
github-actions[bot] Feb 6, 2026
41e2348
🤖 feat: Claude Opus 4.6 - 1M Context, Premium Pricing, Adaptive Think…
danny-avila Feb 6, 2026
968e97b
🌍 i18n: Update translation.json with latest translations (#11672)
github-actions[bot] Feb 7, 2026
a771d70
🎬 fix: Code Session Context In Event Driven Mode (#11673)
danny-avila Feb 7, 2026
9054ca9
🆔 fix: Atomic File Dedupe, Bedrock Tokens Fix, and Allowed MIME Types…
danny-avila Feb 7, 2026
e646a36
🌊 fix: Prevent Truncations When Redis Resumable Streams Are Enabled (…
danny-avila Feb 10, 2026
8da3c38
🪟 fix: Update Link Target to Open in Separate Tabs (#11669)
flyinggrizzly Feb 10, 2026
4ddaab6
🔧 fix: Update z-index for ImagePreview modal components (#11714)
danny-avila Feb 10, 2026
299efc2
📦 chore: Bump `@librechat/agents` & `axios`, Bedrock Prompt Caching f…
danny-avila Feb 11, 2026
d6b6f19
♿ style(MCP): Enhance dialog accessibility and styling consistency (#…
berry-13 Feb 12, 2026
924be3b
🛡️ fix: Implement TOCTOU-Safe SSRF Protection for Actions and MCP (#1…
danny-avila Feb 12, 2026
417405a
🏢 fix: Handle Group Overage for Azure Entra Authentication (#11557)
WhammyLeaf Feb 12, 2026
c7531dd
🕵️‍♂️ fix: Handle 404 errors on agent queries for favorites (#11587)
ethanlaj Feb 12, 2026
5b67e48
🗃️ refactor: Separate Tool Cache Namespace for Blue/Green Deployments…
danny-avila Feb 12, 2026
cc7f610
💡 fix: System Theme Picker Selection (#11220)
dustinhealy Feb 12, 2026
72a30cd
🌍 i18n: Update translation.json with latest translations (#11739)
github-actions[bot] Feb 12, 2026
599f4a1
🛡️ fix: Secure MCP/Actions OAuth Flows, Resolve Race Condition & Tool…
danny-avila Feb 12, 2026
7067c35
🏁 fix: Resolve Content Aggregation Race Condition in Agent Event Hand…
danny-avila Feb 12, 2026
e3a60ba
📦 chore: @librechat/agents to v3.1.41 (#11759)
danny-avila Feb 12, 2026
793ddbc
🔎 fix: Include Legacy Documents With Undefined `_meiliIndex` in Searc…
ablizorukov Feb 12, 2026
b8c31e7
🔱 chore: Harden API Routes Against IDOR and DoS Attacks (#11760)
danny-avila Feb 12, 2026
e142ab7
🔒 fix: Prevent Race Condition in RedisJobStore (#11764)
danny-avila Feb 12, 2026
3888dfa
⛵ feat: Expose enableServiceLinks in Helm Deployment Templates (#11741)
bhat-ganesh Feb 13, 2026
2e42378
🔒 fix: Secure Cookie Localhost Bypass and OpenID Token Selection in A…
danny-avila Feb 13, 2026
8e3b717
🦙 fix: Memory Agent Fails to Initialize with Ollama Provider (#11680)
calkeo Feb 13, 2026
dc89e00
🪙 refactor: Distinguish ID Tokens from Access Tokens in OIDC Federate…
busla Feb 13, 2026
276ac8d
🛰️ feat: Add Bedrock Parameter Settings for MoonshotAI and Z.AI Model…
danny-avila Feb 13, 2026
ccbf9dc
🧰 fix: Convert `const` to `enum` in MCP Schemas for Gemini Compatibil…
danny-avila Feb 13, 2026
e50f590
🏎️ feat: Smart Reinstall with Turborepo Caching for Better DX (#11785)
danny-avila Feb 13, 2026
dc489e7
🪟 fix: Tab Isolation for Agent Favorites + MCP Selections (#11786)
danny-avila Feb 13, 2026
6cc6ee3
📳 refactor: Optimize Model Selector (#11787)
danny-avila Feb 14, 2026
467df0f
🎭 feat: Override Custom Endpoint Schema with Specified Params Endpoin…
danny-avila Feb 14, 2026
f72378d
🧩 chore: Extract Agent Client Utilities to `/packages/api` (#11789)
danny-avila Feb 14, 2026
65d1382
📦 chore: `@librechat/agents` to v3.1.42 (#11790)
danny-avila Feb 14, 2026
bf1f2f4
🗨️ refactor: Better Whitespace handling in Chat Message rendering (#1…
danny-avila Feb 14, 2026
10685fc
🗂️ refactor: Artifacts via Model Specs & Scope Badge Persistence by S…
danny-avila Feb 14, 2026
b0a32b7
👻 fix: Prevent Async Title Generation From Recreating Deleted Convers…
danny-avila Feb 14, 2026
a89945c
🌙 fix: Accessible Contrast for Theme Switcher Icons (#11795)
dustinhealy Feb 14, 2026
2513e0a
🔧 feat: `deleteRagFile` utility for Consistent RAG API document delet…
ethanlaj Feb 14, 2026
bf9aae0
💎 feat: Add Redis as Optional Sub-chart Dependency in Helm Chart (#11…
SharpLu Feb 14, 2026
12f45c7
🎮 feat: Bedrock Parameters for OpenAI GPT-OSS models (#11798)
danny-avila Feb 14, 2026
2ea72a0
🎛️ fix: Google JSON Schema Normalization/Resolution Logic (#11804)
danny-avila Feb 16, 2026
b06e741
📦 chore: `@librechat/agents` to v3.1.43 (#11805)
danny-avila Feb 16, 2026
bddbd47
🪪 fix: Pass Scope in OpenID Refresh Token Grant for Azure Custom API …
seung-myung Feb 16, 2026
3c844c9
🥠 refactor: Always set OIDC refresh token cookie to survive session e…
danny-avila Feb 16, 2026
413c2bc
🪂 fix: Handle MongoDB Connection Errors to Prevent Process Crashes (#…
SharpLu Feb 16, 2026
35672e0
📦 chore: `@librechat/agents` to v3.1.44 (#11811)
danny-avila Feb 16, 2026
b216723
📋 chore: Document Uncaught Exception Config and Fix Empty Text Export…
danny-avila Feb 16, 2026
be78f8b
📦 chore: Update `@librechat/agents` to v3.1.45 (#11815)
danny-avila Feb 17, 2026
8dd814d
🌍 i18n: Update translation.json with latest translations (#11813)
github-actions[bot] Feb 17, 2026
e710a12
🪆 refactor: Internalize Producer Event Handling into Agent Graph Cont…
danny-avila Feb 17, 2026
0697e8c
🤖 feat: Claude Sonnet 4.6 support (#11829)
danny-avila Feb 17, 2026
56624b0
🌍 i18n: Update translation.json with latest translations (#11831)
github-actions[bot] Feb 17, 2026
2ec64af
📦 chore: Bump Dependabot Packages (#11836)
danny-avila Feb 17, 2026
dbf8cd4
🪹 fix: Prevent whitespace-only Chat input Submissions (#11838)
dobernike Feb 18, 2026
3bf715e
♻️ refactor: On-demand MCP connections: remove proactive reconnect, d…
danny-avila Feb 18, 2026
5ea59ec
🐛 fix: Normalize `output_text` blocks in Responses API input conversi…
danny-avila Feb 18, 2026
3fa94e8
⚛️ refactor: Redis Scalability Improvements for High-Throughput Deplo…
danny-avila Feb 18, 2026
5824298
📦 chore: Bump `fast-xml-parser` to v5.3.6 (#11841)
danny-avila Feb 18, 2026
252a5cc
🔗 fix: Preserve Stream State Across Reconnects to Prevent Reorder Buf…
danny-avila Feb 18, 2026
42718fa
🧭 fix: Robust 404 Conversation Not Found Redirect (#11853)
danny-avila Feb 18, 2026
50a48ef
🧬 fix: Backfill Missing SHARE Permissions and Migrate Legacy SHARED_G…
danny-avila Feb 18, 2026
9eeec6b
✨ v0.8.3-rc1 (#11856)
danny-avila Feb 19, 2026
4b49f10
🐛 fix: Add Directory Permissions in Dockerfile.multi
inodb Oct 21, 2025
903d00a
✨ feat: Enable HTML Support in Agent Descriptions (#8291)
inodb Oct 21, 2025
beb686a
Disable PWA service worker using selfDestroying mode
inodb Mar 3, 2026
a68aaba
✨ feat: Add product feedback modal for downvote workflow
Feb 25, 2026
8287243
🔧 refactor: Replace proxy with direct GitHub API call for feedback is…
Feb 25, 2026
021a3ca
🐛 fix: Persist thumbs-down feedback when product feedback modal is su…
Feb 25, 2026
4bb15d0
🔧 refactor: Store full feedback payload as JSON string in existing te…
Feb 26, 2026
82cb1c9
🔧 refactor: Replace GitHub issue creation with MongoDB persistence an…
Mar 6, 2026
f7f9412
🎨 style: Yellow feedback buttons and remove edit/fork buttons
inodb Mar 6, 2026
53d3999
🐛 fix: Extract message text from content array for feedback context
inodb Mar 6, 2026
8b27934
UI improvements v6: feedback modals, agent buttons, CI workflow
inodb Mar 9, 2026
fea3773
Build arm64 only in CI to halve build time
inodb Mar 9, 2026
99e69b3
Fix agent button selector: use handleSelectSpec from context
inodb Mar 9, 2026
f9c81f5
Hide agent buttons after conversation starts, use short names
inodb Mar 9, 2026
cb418ae
Switch CI to native arm64 runner, drop QEMU
inodb Mar 9, 2026
0c8f405
Add agent_id and agent_name to trace metadata
inodb Mar 9, 2026
698b86a
Send user feedback to Langfuse as scores
inodb Mar 9, 2026
0da2710
Use BOOLEAN dataType for Langfuse feedback scores
inodb Mar 9, 2026
b34a337
Fix thumbs-down feedback flow: don't save until modal is submitted
inodb Mar 9, 2026
e1f4f4a
Fix 400 error on feedback submit: remove required validation for titl…
inodb Mar 9, 2026
7235820
Fix: allow undoing thumbs-down feedback by clicking active thumb again
inodb Mar 9, 2026
ec14112
Show feedback summary on click with Delete/Update options
inodb Mar 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 1 addition & 2 deletions .devcontainer/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ services:
environment:
- HOST=0.0.0.0
- MONGO_URI=mongodb://mongodb:27017/LibreChat
# - CHATGPT_REVERSE_PROXY=http://host.docker.internal:8080/api/conversation # if you are hosting your own chatgpt reverse proxy with docker
# - OPENAI_REVERSE_PROXY=http://host.docker.internal:8070/v1/chat/completions # if you are hosting your own chatgpt reverse proxy with docker
# - OPENAI_REVERSE_PROXY=http://host.docker.internal:8070/v1
- MEILI_HOST=http://meilisearch:7700

# Runs app on the same network as the service container, allows "forwardPorts" in devcontainer.json function.
Expand Down
118 changes: 97 additions & 21 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ TRUST_PROXY=1
# password policies.
# MIN_PASSWORD_LENGTH=8

# When enabled, the app will continue running after encountering uncaught exceptions
# instead of exiting the process. Not recommended for production unless necessary.
# CONTINUE_ON_UNCAUGHT_EXCEPTION=false

#===============#
# JSON Logging #
#===============#
Expand All @@ -68,13 +72,35 @@ DEBUG_CONSOLE=false
# UID=1000
# GID=1000

#==============#
# Node Options #
#==============#

# NOTE: NODE_MAX_OLD_SPACE_SIZE is NOT recognized by Node.js directly.
# This variable is used as a build argument for Docker or CI/CD workflows,
# and is NOT used by Node.js to set the heap size at runtime.
# To configure Node.js memory, use NODE_OPTIONS, e.g.:
# NODE_OPTIONS="--max-old-space-size=6144"
# See: https://nodejs.org/api/cli.html#--max-old-space-sizesize-in-mib
NODE_MAX_OLD_SPACE_SIZE=6144

#===============#
# Configuration #
#===============#
# Use an absolute path, a relative path, or a URL

# CONFIG_PATH="/alternative/path/to/librechat.yaml"

#==================#
# Langfuse Tracing #
#==================#

# Get Langfuse API keys for your project from the project settings page: https://cloud.langfuse.com

# LANGFUSE_PUBLIC_KEY=
# LANGFUSE_SECRET_KEY=
# LANGFUSE_BASE_URL=

#===================================================#
# Endpoints #
#===================================================#
Expand Down Expand Up @@ -109,9 +135,13 @@ PROXY=
#============#

ANTHROPIC_API_KEY=user_provided
# ANTHROPIC_MODELS=claude-opus-4-20250514,claude-sonnet-4-20250514,claude-3-7-sonnet-20250219,claude-3-5-sonnet-20241022,claude-3-5-haiku-20241022,claude-3-opus-20240229,claude-3-sonnet-20240229,claude-3-haiku-20240307
# ANTHROPIC_MODELS=claude-sonnet-4-6,claude-opus-4-6,claude-opus-4-20250514,claude-sonnet-4-20250514,claude-3-7-sonnet-20250219,claude-3-5-sonnet-20241022,claude-3-5-haiku-20241022,claude-3-opus-20240229,claude-3-sonnet-20240229,claude-3-haiku-20240307
# ANTHROPIC_REVERSE_PROXY=

# Set to true to use Anthropic models through Google Vertex AI instead of direct API
# ANTHROPIC_USE_VERTEX=
# ANTHROPIC_VERTEX_REGION=us-east5

#============#
# Azure #
#============#
Expand All @@ -129,7 +159,6 @@ ANTHROPIC_API_KEY=user_provided
# AZURE_OPENAI_API_VERSION= # Deprecated
# AZURE_OPENAI_API_COMPLETIONS_DEPLOYMENT_NAME= # Deprecated
# AZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAME= # Deprecated
# PLUGINS_USE_AZURE="true" # Deprecated

#=================#
# AWS Bedrock #
Expand All @@ -141,7 +170,8 @@ ANTHROPIC_API_KEY=user_provided
# BEDROCK_AWS_SESSION_TOKEN=someSessionToken

# Note: This example list is not meant to be exhaustive. If omitted, all known, supported model IDs will be included for you.
# BEDROCK_AWS_MODELS=anthropic.claude-3-5-sonnet-20240620-v1:0,meta.llama3-1-8b-instruct-v1:0
# BEDROCK_AWS_MODELS=anthropic.claude-sonnet-4-6,anthropic.claude-opus-4-6-v1,anthropic.claude-3-5-sonnet-20240620-v1:0,meta.llama3-1-8b-instruct-v1:0
# Cross-region inference model IDs: us.anthropic.claude-sonnet-4-6,us.anthropic.claude-opus-4-6-v1,global.anthropic.claude-opus-4-6-v1

# See all Bedrock model IDs here: https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html#model-ids-arns

Expand Down Expand Up @@ -170,8 +200,16 @@ GOOGLE_KEY=user_provided

# GOOGLE_TITLE_MODEL=gemini-2.0-flash-lite-001

# Google Cloud region for Vertex AI (used by both chat and image generation)
# GOOGLE_LOC=us-central1

# Alternative region env var for Gemini Image Generation
# GOOGLE_CLOUD_LOCATION=global

# Vertex AI Service Account Configuration
# Path to your Google Cloud service account JSON file
# GOOGLE_SERVICE_KEY_FILE=/path/to/service-account.json

# Google Safety Settings
# NOTE: These settings apply to both Vertex AI and Gemini API (AI Studio)
#
Expand All @@ -191,6 +229,27 @@ GOOGLE_KEY=user_provided
# GOOGLE_SAFETY_DANGEROUS_CONTENT=BLOCK_ONLY_HIGH
# GOOGLE_SAFETY_CIVIC_INTEGRITY=BLOCK_ONLY_HIGH

#========================#
# Gemini Image Generation #
#========================#

# Gemini Image Generation Tool (for Agents)
# Supports multiple authentication methods in priority order:
# 1. User-provided API key (via GUI)
# 2. GEMINI_API_KEY env var (admin-configured)
# 3. GOOGLE_KEY env var (shared with Google chat endpoint)
# 4. Vertex AI service account (via GOOGLE_SERVICE_KEY_FILE)

# Option A: Use dedicated Gemini API key for image generation
# GEMINI_API_KEY=your-gemini-api-key

# Option B: Use Vertex AI (no API key needed, uses service account)
# Set this to enable Vertex AI and allow tool without requiring API keys
# GEMINI_VERTEX_ENABLED=true

# Vertex AI model for image generation (defaults to gemini-2.5-flash-image)
# GEMINI_IMAGE_MODEL=gemini-2.5-flash-image

#============#
# OpenAI #
#============#
Expand Down Expand Up @@ -230,14 +289,6 @@ ASSISTANTS_API_KEY=user_provided
# More info, including how to enable use of Assistants with Azure here:
# https://www.librechat.ai/docs/configuration/librechat_yaml/ai_endpoints/azure#using-assistants-with-azure

#============#
# Plugins #
#============#

# PLUGIN_MODELS=gpt-4o,gpt-4o-mini,gpt-4,gpt-4-turbo-preview,gpt-4-0125-preview,gpt-4-1106-preview,gpt-4-0613,gpt-3.5-turbo,gpt-3.5-turbo-0125,gpt-3.5-turbo-1106,gpt-3.5-turbo-0613

DEBUG_PLUGINS=true

CREDS_KEY=f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0
CREDS_IV=e2341419ec3dd3d19b13a1a87fafcbfb

Expand All @@ -254,6 +305,11 @@ AZURE_AI_SEARCH_SEARCH_OPTION_SELECT=

# OpenAI Image Tools Customization
#----------------
# IMAGE_GEN_OAI_API_KEY= # Create or reuse OpenAI API key for image generation tool
# IMAGE_GEN_OAI_BASEURL= # Custom OpenAI base URL for image generation tool
# IMAGE_GEN_OAI_AZURE_API_VERSION= # Custom Azure OpenAI deployments
# IMAGE_GEN_OAI_MODEL=gpt-image-1 # OpenAI image model (e.g., gpt-image-1, gpt-image-1.5)
# IMAGE_GEN_OAI_DESCRIPTION=
# IMAGE_GEN_OAI_DESCRIPTION_WITH_FILES=Custom description for image generation tool when files are present
# IMAGE_GEN_OAI_DESCRIPTION_NO_FILES=Custom description for image generation tool when no files are present
# IMAGE_EDIT_OAI_DESCRIPTION=Custom description for image editing tool
Expand Down Expand Up @@ -290,14 +346,6 @@ FLUX_API_BASE_URL=https://api.us1.bfl.ai
GOOGLE_SEARCH_API_KEY=
GOOGLE_CSE_ID=

# YOUTUBE
#-----------------
YOUTUBE_API_KEY=

# SerpAPI
#-----------------
SERPAPI_API_KEY=

# Stable Diffusion
#-----------------
SD_WEBUI_URL=http://host.docker.internal:7860
Expand Down Expand Up @@ -488,6 +536,8 @@ OPENID_ON_BEHALF_FLOW_FOR_USERINFO_REQUIRED=
OPENID_ON_BEHALF_FLOW_USERINFO_SCOPE="user.read" # example for Scope Needed for Microsoft Graph API
# Set to true to use the OpenID Connect end session endpoint for logout
OPENID_USE_END_SESSION_ENDPOINT=
# URL to redirect to after OpenID logout (defaults to ${DOMAIN_CLIENT}/login)
OPENID_POST_LOGOUT_REDIRECT_URI=

#========================#
# SharePoint Integration #
Expand Down Expand Up @@ -665,6 +715,9 @@ HELP_AND_FAQ_URL=https://librechat.ai

# Enable Redis for caching and session storage
# USE_REDIS=true
# Enable Redis for resumable LLM streams (defaults to USE_REDIS value if not set)
# Set to false to use in-memory storage for streams while keeping Redis for other caches
# USE_REDIS_STREAMS=true

# Single Redis instance
# REDIS_URI=redis://127.0.0.1:6379
Expand Down Expand Up @@ -699,8 +752,20 @@ HELP_AND_FAQ_URL=https://librechat.ai
# REDIS_PING_INTERVAL=300

# Force specific cache namespaces to use in-memory storage even when Redis is enabled
# Comma-separated list of CacheKeys (e.g., ROLES,MESSAGES)
# FORCED_IN_MEMORY_CACHE_NAMESPACES=ROLES,MESSAGES
# Comma-separated list of CacheKeys
# Defaults to CONFIG_STORE,APP_CONFIG so YAML-derived config stays per-container (safe for blue/green deployments)
# Set to empty string to force all namespaces through Redis: FORCED_IN_MEMORY_CACHE_NAMESPACES=
# FORCED_IN_MEMORY_CACHE_NAMESPACES=CONFIG_STORE,APP_CONFIG

# Leader Election Configuration (for multi-instance deployments with Redis)
# Duration in seconds that the leader lease is valid before it expires (default: 25)
# LEADER_LEASE_DURATION=25
# Interval in seconds at which the leader renews its lease (default: 10)
# LEADER_RENEW_INTERVAL=10
# Maximum number of retry attempts when renewing the lease fails (default: 3)
# LEADER_RENEW_ATTEMPTS=3
# Delay in seconds between retry attempts when renewing the lease (default: 0.5)
# LEADER_RENEW_RETRY_DELAY=0.5

#==================================================#
# Others #
Expand Down Expand Up @@ -775,3 +840,14 @@ OPENWEATHER_API_KEY=

# Cache connection status checks for this many milliseconds to avoid expensive verification
# MCP_CONNECTION_CHECK_TTL=60000

# Skip code challenge method validation (e.g., for AWS Cognito that supports S256 but doesn't advertise it)
# When set to true, forces S256 code challenge even if not advertised in .well-known/openid-configuration
# MCP_SKIP_CODE_CHALLENGE_CHECK=false

#======================================#
# Product Feedback #
#======================================#

# Enable the product feedback feature (thumbs-down stores feedback in MongoDB for review)
# PRODUCT_FEEDBACK_ENABLED=true
4 changes: 3 additions & 1 deletion .github/workflows/backend-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
branches:
- main
- dev
- dev-staging
- release/*
paths:
- 'api/**'
Expand All @@ -23,6 +24,7 @@ jobs:
BAN_DURATION: ${{ secrets.BAN_DURATION }}
BAN_INTERVAL: ${{ secrets.BAN_INTERVAL }}
NODE_ENV: CI
NODE_OPTIONS: '--max-old-space-size=${{ secrets.NODE_MAX_OLD_SPACE_SIZE || 6144 }}'
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20.x
Expand Down Expand Up @@ -71,4 +73,4 @@ jobs:
run: cd packages/data-schemas && npm run test:ci

- name: Run @librechat/api unit tests
run: cd packages/api && npm run test:ci
run: cd packages/api && npm run test:ci
23 changes: 18 additions & 5 deletions .github/workflows/cache-integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,19 @@ on:
branches:
- main
- dev
- dev-staging
- release/*
paths:
- 'packages/api/src/cache/**'
- 'packages/api/src/cluster/**'
- 'packages/api/src/mcp/**'
- 'packages/api/src/stream/**'
- 'redis-config/**'
- '.github/workflows/cache-integration-tests.yml'

jobs:
cache_integration_tests:
name: Run Cache Integration Tests
name: Integration Tests that use actual Redis Cache
timeout-minutes: 30
runs-on: ubuntu-latest

Expand Down Expand Up @@ -59,14 +63,23 @@ jobs:
npm run build:data-schemas
npm run build:api

- name: Run cache integration tests
- name: Run all cache integration tests (Single Redis Node)
working-directory: packages/api
env:
NODE_ENV: test
USE_REDIS: true
USE_REDIS_CLUSTER: false
REDIS_URI: redis://127.0.0.1:6379
REDIS_CLUSTER_URI: redis://127.0.0.1:7001,redis://127.0.0.1:7002,redis://127.0.0.1:7003
run: npm run test:cache:integration
run: npm run test:cache-integration

- name: Run all cache integration tests (Redis Cluster)
working-directory: packages/api
env:
NODE_ENV: test
USE_REDIS: true
USE_REDIS_CLUSTER: true
REDIS_URI: redis://127.0.0.1:7001,redis://127.0.0.1:7002,redis://127.0.0.1:7003
run: npm run test:cache-integration

- name: Stop Redis Cluster
if: always()
Expand All @@ -75,4 +88,4 @@ jobs:

- name: Stop Single Redis Instance
if: always()
run: redis-cli -p 6379 shutdown || true
run: redis-cli -p 6379 shutdown || true
53 changes: 53 additions & 0 deletions .github/workflows/cbio-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Build and Push cBioPortal LibreChat Image

on:
push:
branches:
- '**'
workflow_dispatch:
inputs:
tag:
description: 'Image tag (e.g. v0.8.3-rc1-custom-v6). Defaults to branch name.'
type: string
required: false

jobs:
build:
runs-on: ubuntu-24.04-arm
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set image tag
id: tag
run: |
if [ -n "${{ github.event.inputs.tag }}" ]; then
echo "tag=${{ github.event.inputs.tag }}" >> "$GITHUB_OUTPUT"
else
# Use branch name, replacing / with -
BRANCH="${GITHUB_REF_NAME//\//-}"
echo "tag=${BRANCH}" >> "$GITHUB_OUTPUT"
fi

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Prepare environment
run: cp .env.example .env

- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile
push: true
tags: cbioportal/librechat:${{ steps.tag.outputs.tag }}
platforms: linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
Loading
Loading