open-webui v0.6.42 版本更新介绍
发布日期: 2025-12-21
版本号: v0.6.42
Open WebUI 发布了 0.6.42 版本,此更新包含重要的数据库架构变更。对于多工作进程、多服务器或负载均衡部署,必须同时更新所有实例,而不能进行滚动更新,因为运行混合版本会因新旧实例之间的模式不兼容导致应用程序故障。此外,此次发布包含依赖版本升级,现有插件可能需要更新其导入路径以保持兼容,过时的导入路径或 API 可能导致构建或运行时错误。 主要新增功能包括:知识库文件管理进行了重大改进,采用服务器端分页加载,显著提升了大型知识库的性能和响应速度,并增加了搜索、筛选、排序及作者追踪功能。笔记功能同样增强了服务器端搜索、权限控制(支持只读分享)和从聊天输入直接创建笔记的能力。现在可以批量添加网站和YouTube视频到知识库。侧边栏宽度支持调整并记住设置。聊天输入框在消息过长时会显示展开按钮,提供全屏编辑器。频道消息支持懒加载附件、图片直接存储为文件以及内联视频播放。文件查看器支持Excel、Markdown和代码文件的原生预览。增加了OpenAI GPT-IMAGE 1.5模型支持以及多个环境变量用于配置超时、语言等设置。聊天文件关联现在通过数据库表进行跟踪,图片上传后转换为文件存储。还有多项前端性能和后端API优化。 修复了众多问题,包括:外部重排序操作阻塞事件循环、流式响应中的文本丢失、知识库批量添加失败、PostgreSQL空字节插入错误、MCP OAuth认证故障、搜索栏长查询导致崩溃、速率限制错误、UI白屏崩溃、频道API访问控制、模型头像缓存、临时聊天权限、图像编辑引用、源引用渲染错误、音频文件上传、Docker日志截断、Redis集群兼容性、RTL语言布局、Ollama模型列表刷新等。 重要变更包括:数据库模式变更要求同步部署;
WEB_SEARCH_CONCURRENT_REQUESTS默认值从10改为0(无限制);移除了已弃用的知识库文档集合支持;移除了多个源级别日志环境变量,现统一使用GLOBAL_LOG_LEVEL;升级了LangChain至1.2.0版本以改进RAG功能。此外,知识库文件列表API设计已重新设计,可能会影响自定义集成。
更新内容 (中文)
[0.6.42] - 2025-12-21
[!CAUTION] 此版本包含数据库架构变更;多工作进程、多服务器或负载均衡部署必须同时更新所有实例,而非执行滚动更新,因为运行混合版本将由于旧版和新版实例之间的架构不兼容而导致应用程序故障。
[!WARNING] 此版本包含依赖版本升级;现有插件可能需要更新其导入以保持兼容性,因为过时的导入路径或API可能导致构建或运行时错误。
新增
- 📚 知识库文件管理功能进行了全面改造,采用服务端分页(每次加载30个文件),而非一次性加载整个集合,显著提升了包含数百或数千个文件的大型知识库的性能和响应速度,减少了初始加载时间和内存用量,同时新增了服务端搜索与过滤、用户添加文件与共享文件的视图选项、按名称或日期的自定义排序,以及带有上传时间戳的文件作者信息追踪。提交
- ✨ 知识库文件管理功能得到增强,在文件操作后自动刷新列表以确保UI即时更新,改进了模型层的权限验证,为带有频道元数据上传的文件自动关联频道。提交
- 🔎 聊天输入中的知识库命令现在使用服务端搜索,在选择知识库和文件时实现显著的性能提升。提交
- 🗂️ 知识库工作区列表现在使用服务端分页(每次加载30个集合),并新增了支持查询过滤和查看已创建与共享集合视图选项的搜索端点。提交
- 📖 知识库工作区现在显示所有具有读取权限的集合,包括共享的只读集合,使用户能够发现和探索其不拥有的知识库,同时通过视觉上的“只读”徽章和自动禁用的编辑控件(包括名称、描述、文件上传、内容编辑和删除操作)维持适当的访问控制。提交
- 📁 批量网站及YouTube视频附件现在支持一次添加多个URL(换行符分隔),自动检测YouTube并获取转录内容,按顺序处理以防止资源紧张,网站和视频现在都可以通过工作区界面直接添加到知识库。提交、#6202、#19587、#8231
- 🪟 侧边栏宽度在桌面设备上现在可调整,并使用localStorage进行持久化存储,强制执行最小和最大宽度限制(220px至480px),同时所有布局组件现在都通过CSS变量引用动态侧边栏宽度,以实现一致的响应式行为。提交
- 📝 笔记功能现在支持服务端搜索与过滤,提供用户创建的笔记与共享给他人的笔记视图选项,在列表和网格视图模式下均支持按名称或日期的自定义排序,界面经过重新设计,包含在统一头部整合的笔记管理控件、基于分组的权限共享(支持读写和只读访问控制,显示笔记作者和共享状态以实现更好的协作),以及用于提升大型笔记集合性能的分页无限滚动。提交
- 👁️ 笔记现在支持只读访问权限,允许用户共享笔记供查看而不授予编辑权限,检测到只读访问时,编辑器会自动变为不可编辑状态并显示适当的UI指示器。提交
- 📄 笔记现在可以直接从聊天输入框创建,允许用户将草拟的消息或内容保存为笔记,无需导航或重新输入。提交
- 🪟 侧边栏的文件夹、频道和固定模型部分在创建新项目或固定模型时现在会自动展开,为用户操作提供即时的视觉反馈。提交、#19929
- 📋 聊天文件关联现在通过新的“chat_file”表在数据库中得到正确跟踪,实现了跨聊天的精确文件管理,并确保在聊天删除时正确清理文件,同时提高了多节点部署中的数据库一致性。提交
- 🖼️ 用户上传的图片现在会自动从base64转换为服务器上的实际文件存储,消除了聊天历史记录中存储大型内联base64字符串的问题,减小了消息负载大小,同时支持跨多个聊天更好的图像管理和共享。提交
- 📸 包含生成或编辑图像的共享聊天在被其他用户访问时,现在能通过chat_file表将生成的图像正确链接到其聊天和消息,确保图像在共享聊天链接中保持可访问。提交、#19393
- 📊 文件查看器模态框得到显著增强,包含类似原生的Excel/CSV电子表格查看器(渲染为支持多表导航的交互式可滚动表格)、显示完整排版(包括标题、列表、链接和表格)的Markdown文档,以及显示语法高亮的源代码文件,所有内容均通过选项卡式界面访问,默认显示原始文本视图。#20035、#2867
- 📏 当消息超过两行时,聊天输入现在会在右上角显示一个展开按钮,提供可选的全屏编辑器访问权限,用于编写更长的消息,提供增强的工作空间和可见性,同时临时禁用主输入框以防止编辑冲突。提交
- 💬 频道消息数据惰性加载已实现,推迟附件和文件元数据的检索直到需要时,以提升初始消息列表加载性能。提交
- 🖼️ 频道图片上传处理已优化,直接将压缩后的图片作为文件处理和存储,而非内联数据,提高了内存效率和消息加载速度。提交
- 🎥 频道消息现在支持视频文件播放,可通过内置播放器控件进行内联视频观看。提交
- 🔐 LDAP认证现在支持具有多个用户名属性的用户条目,能正确处理用户名字段包含值列表的情况。提交、#19878
- 👨👩👧👦 “ENABLE_PUBLIC_ACTIVE_USERS_COUNT”环境变量现在允许将活跃用户计数可见性限制为管理员,减少了后端负载并解决了大规模部署中的隐私问题。#20027、#13026
- 🚀 模型页面搜索输入性能通过300毫秒防抖进行了优化,以减少服务器负载并提高响应速度。#19832
- 💨 通过防止在管理员设置中禁用API密钥和频道功能时进行不必要的API调用,优化了前端性能,减少了后端噪声并提高了整体系统效率。#20043、#19967
- 📎 频道文件关联跟踪已实现,自动将上传的文件与其各自频道关联,并使用专用关联表,以便在频道内进行更好的组织和未来的文件管理功能。提交
- 👥 用户个人资料预览现在显示组成员信息,以便更容易识别用户角色和权限。提交
- 🌍 “SEARXNG_LANGUAGE”环境变量现在允许为SearXNG查询配置搜索语言,用可配置设置(默认为“all”)替换了硬编码的“en-US”默认值。#19909
- ⏳ “MINERU_API_TIMEOUT”环境变量现在允许为MinerU文档处理操作配置请求超时。#20016、#18495
- 🔧 “RAG_EXTERNAL_RERANKER_TIMEOUT”环境变量现在允许为外部重排序器操作配置请求超时。#20049、#19900
- 🎨 新增了对OpenAI GPT-IMAGE 1.5模型的支持,用于图像生成和编辑,具备自动图像尺寸处理能力。提交
- 🔑 “OAUTH_AUDIENCE”环境变量现在允许OAuth提供商为JWT访问令牌生成指定受众参数。#19768
- ⏰ “REDIS_SOCKET_CONNECT_TIMEOUT”环境变量现在允许为Redis和Sentinel连接配置套接字连接超时,解决了分布式部署中潜在的故障转移和响应问题。#19799、文档:#882
- ⏱️ “WEB_LOADER_TIMEOUT”环境变量现在允许为SafeWebBaseLoader操作配置请求超时。#19804、#19734
- 🚀 模型API端点性能通过批量加载模型得到优化,消除了N+1查询,显著减少了按用户权限筛选模型时的响应时间。提交
- 🔀 新增了自定义模型回退处理,允许工作区创建的自定义模型在其配置的基础模型未找到时自动回退到默认聊天模型;设置“ENABLE_CUSTOM_MODEL_FALLBACK”为true以启用此功能,可在基础模型被移除或重命名时防止工作流中断,同时确保其他请求不受影响。提交、#19985
- 📡 新增了 /feedbacks/all/ids API端点,仅返回反馈ID而不包含元数据,显著提升了处理大型反馈集合的外部集成的性能。提交
- 📈 新增了一个实验性的聊天使用统计端点(GET /api/v1/chats/stats/usage),支持分页(每页50个聊天),提供全面的按聊天分析,包括模型使用计数、用户和助手消息细分、基于消息时间戳计算的平均响应时间、平均内容长度以及最后活动时间戳;此端点仍处于实验阶段,不适合生产使用,因为它通过处理每个聊天的整个消息历史(无缓存)来执行密集计算。提交
- 🔄 在前端和后端实施了多项改进,以增强性能、稳定性和安全性。
- 🌐 增强并扩展了德语、丹麦语、芬兰语、韩语、葡萄牙语(巴西)、简体中文、繁体中文、加泰罗尼亚语和西班牙语的翻译。
修复
- ⚡ 外部重排序器操作已优化,通过使用 asyncio.to_thread() 将同步 HTTP 请求卸载到线程池,防止事件循环阻塞,消除了 RAG 重排序查询期间的应用程序冻结问题。#20049、#19900
- 💭 使用“CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE”环境变量时解释功能中的文本丢失问题,已通过修正流式响应中的换行处理得到解决。#19829
- 📚 知识库批量文件添加失败(由Pydantic验证错误引起)现已通过在文件元数据响应中将meta字段设为可选得到防止,允许正确处理没有元数据的文件。#20022、#14220
- 🗄️ 在附加网页或处理嵌入内容时PostgreSQL空字节插入失败问题现已通过整合聊天消息、网络搜索结果和知识库文档中的文本清理逻辑得到防止,在数据库插入前移除空字节和无效的UTF-8代理对。#20072、#19867、#18201、#15616
- 🎫 MCP OAuth 2.1令牌交换失败现已修复,移除了导致凭据重复传递(“ID1,ID1”连接)和令牌端点返回401错误的问题。#20076、#19823
- 📝 笔记的“改进”操作在v0.6.41的流式API更改后现已正常工作,通过确保在处理前完全检索上传文件的完整元数据,恢复了笔记改进和摘要功能。提交、#20078
- 🔑 MCP OAuth 2.1工具服务器现在在多节点部署中正常工作,通过从Redis同步配置懒加载OAuth客户端,消除了当负载均衡器将请求路由到未处理原始配置更新的节点时出现的404错误。#20076、#19902、#19901
- 🧩 当频道权限禁用时导致的聊天加载失败现已通过优雅的错误处理得到防止。提交
- 🔍 模型、聊天和归档聊天页面中的搜索栏因过长查询超过服务器URL限制而导致的冻结和崩溃问题,已通过将查询截断为500个字符得到解决,知识库布局因长名称产生的偏移问题也已通过调整flex容器属性修复。#19832
- 🎛️ 与Brave Search免费层相关的速率限制错误(HTTP 429)在生成多个查询时,现已通过应用到所有搜索引擎的基于asyncio.Semaphore的并发控制得到防止。#20070、#20003、#14107、#15134
- 💥 由于加载或网络故障期间空聊天列表导致的UI崩溃和白屏错误,现已通过在文件夹占位符和归档聊天模态框中对聊天迭代添加空值安全检查得到防止。#19898
- 🧩 聊天概览选项卡因未定义的模型引用导致的崩溃,现已通过在访问已删除或被移除的模型时添加适当的空值检查得到解决。#19935
- 🔄 MultiResponseMessages组件在移除或更改所选模型后浏览聊天历史记录时崩溃的问题,现已通过正确的组件重新初始化得到防止。提交、#18599
- 🚫 当频道全局禁用时,频道API端点访问现在被正确阻止,防止具有频道权限的用户在管理员设置中关闭该功能时通过API请求访问频道数据。#19957、#19914
- 👤 管理面板中的用户列表弹出窗口显示已修复,可在排序或过滤更改列表顺序时正确跟踪用户身份,防止弹出窗口显示错误的用户信息。提交、#20046
- 👥 “编辑用户组”模态框中的用户选择现在能保持分页位置,允许管理员跨页面选择多个用户而不会重置到第1页。#19959
- 📸 模型头像图像现在通过正确的Cache-Control头在管理员模型列表中立即更新,无需手动清除缓存。#19959
- 🔒 临时聊天权限执行现在能正确防止用户在默认或组权限禁用该功能时通过个人设置启用它。#19785
- 🎨 使用参考图像的图像编辑现在能正确使用先前生成的图像和新上传的参考图像。提交
- 🧠 图像生成和编辑操作现在被明确注入系统上下文,即使对于较弱的模型也改进了LLM的理解能力,使其能够可靠地确认操作,而不是错误地声称无法生成图像。提交
- 📑 源引文渲染错误(当引文语法出现在用户消息或没有源数据的上下文中时)已解决。提交
- 📄 DOCX文件解析现在在临时聊天中通过客户端文本提取正常工作,防止显示原始数据。提交
- 🔧 阀门属性包含空值时的管道设置保存失败现已得到正确处理。#19791
- ⚙️ 模型使用设置在模型之间切换时现在能正确保留,而不是被意外清除或重置。#19868、#19549
- 🛡️ 无效的PASSWORD_VALIDATION_REGEX_PATTERN配置不再导致启动警告,当正则表达式编译失败时自动回退到默认模式。#20058
- 🎯 模型设置中的DefaultFiltersSelector组件现在在仅存在全局可切换过滤器时正确显示,支持按模型默认配置。#20066
- 🎤 由MIME类型匹配问题(因空格变化和编解码器参数引起)导致的音频文件上传失败,现已通过实现正确的MIME类型解析得到解决。#17771、#17761
- ⌨️ 重新生成响应键盘快捷键现在仅在聊天输入被选中时激活,防止在模态框打开或其他UI元素聚焦时意外重新生成。#19875
- 📋 Docker部署中应用程序崩溃时的日志截断问题,现已通过禁用Python stdio缓冲解决,确保捕获完整的诊断输出。#19844
- 🔴 Redis集群与禁用KEYS命令的兼容性问题,现已通过用生产环境安全的SCAN迭代替换阻塞的KEYS操作得到解决。#19871、#15834
- 🔤 使用RTL语言时文件附件容器布局问题,现已通过将聊天方向设置应用于所有消息类型的文件容器得到解决。#19891、#19742
- 🔃 Ollama模型列表现在在模型删除后自动刷新,防止已删除模型在UI中持续存在,并在后续拉取操作期间被意外重新下载。#19912
- 🌐 Ollama Cloud网络搜索现在能正确地对搜索结果应用域过滤。提交
- 📜 工具规范序列化现在保留非ASCII字符(包括中文文本),通过避免Unicode转义序列提高了LLM理解和工具选择准确性。#19942
- 🛟 模型编辑器稳定性通过工具、函数和文件输入操作的空值安全检查得到改善,防止了存储未定义或文件对象无效时的崩溃。#19939
- 🗣️ MoA完成处理稳定性通过响应对象的空值安全检查、设置的布尔类型转换以及正确的超时类型定义得到改善。#19921
- 🎛️ 由空logit_bias参数值引起的聊天功能失败,现已通过正确处理参数解析中间件中的空字符串得到防止。#19982
- 🔏 管理员现在可以删除已删除用户的只读知识库,解决了先前阻止清理孤立只读内容的权限问题。提交
- 💾 克隆的提示词和工具现在能正确保留其访问控制设置,而不是被重置为null,防止在复制私密或受限项目时发生意外的可见性更改。#19960、#19360
- 🎚️ 界面设置中的文本缩放调整按钮已修复,现在可以正确增加和减少缩放值。#19699
- 🎭 浅色主题下组频道邀请按钮文本的可见性已修正,在深色背景上正确显示。#19828
- 📁 当不存在文件夹时,移动按钮现在被隐藏,防止显示非功能性控件。#19705
- 📦 Qdrant客户端依赖已更新,以解决启动时版本不兼容警告。#19757
- 🧮 当“ENABLE_ASYNC_EMBEDDING”环境变量仅通过环境变量配置时,现已正确应用于嵌入操作。#19748
- 🌄 “COMFYUI_WORKFLOW_NODES”和“IMAGES_EDIT_COMFYUI_WORKFLOW_NODES”环境变量现在能正确加载并解析为JSON列表,配置键名已从“COMFYUI_WORKFLOW”更正为“COMFYUI_WORKFLOW_NODES”。#19918、#19886
- 💫 频道名称长度现在限制为128个字符,并进行验证以防止因名称过长导致的显示问题。提交
- 🔐 无效的PASSWORD_VALIDATION_REGEX_PATTERN配置不再导致启动警告,当正则表达式编译失败时自动回退到默认模式。#20058
- 🔎 带有过滤列表功能的Bocha搜索现在正常工作,通过返回列表而非字典包装器来确保与结果过滤操作的兼容性。提交、#19733
变更
- ⚠️ 此版本包含数据库架构变更;多工作进程、多服务器或负载均衡部署必须同时更新所有实例,而非执行滚动更新,因为运行混合版本将由于旧版和新版实例之间的架构不兼容而导致应用程序故障。
- 📡 WEB_SEARCH_CONCURRENT_REQUESTS 默认值从10更改为0(无限制)—— 此设置现在适用于所有搜索引擎,而不仅仅是DuckDuckGo;先前用户隐式限制为10个并发查询,但现在默认为无限制的并行请求;如果使用如Brave免费层等有速率限制的API,请设置为1以顺序执行。#20070
- 💾 SQLCipher绝对路径处理已修复,现在能正确支持绝对数据库路径(例如“/app/data.db”),而不是错误地剥离前导斜杠并将其转换为相对路径;这恢复了对Docker卷挂载和显式绝对路径配置的功能,同时保持与相对路径的向后兼容。#20074
- 🔌 知识库文件列表API已重新设计,支持分页响应和新的过滤参数;GET /knowledge/{id}/files端点现在返回包含用户归属的分页结果,而非将所有文件嵌入知识对象,这可能需要更新以编程方式访问知识库数据的自定义集成或脚本。提交
- 🗑️ 已移除对已弃用文档集合和基于标签集合的遗留知识库支持;拥有知识库前文档的用户必须迁移到当前的知识库系统,因为遗留项将不再出现在选择器或命令菜单中。提交
- 🔨 已移除源级日志环境变量(AUDIO_LOG_LEVEL、CONFIG_LOG_LEVEL、MODELS_LOG_LEVEL等),因为它们提供的配置选项有限,并在100多个文件中增加了显著复杂性;GLOBAL_LOG_LEVEL环境变量(已优先于源级设置)现在作为唯一的日志配置方法。#20045
- 🐍 LangChain已升级到版本1.2.0,这是一个主要的依赖项更新,在向Python 3.13兼容性方面迈出重大一步,同时改进了用于文档加载和检索操作的RAG管道功能。#19991
[!TIP]
寻找企业版计划? – 立即联系我们的销售团队!获取增强功能,包括自定义主题和品牌、服务级别协议(SLA)支持等!
👏 衷心感谢我们出色的贡献者们,是他们的辛勤工作和奉献使这个版本得以实现: @rgaricano, @jekuaitk, @borisboc, @ascodeasice, @westbrook-ai, @Cyp9715, @joaoback, @aleixdorca, @taylorwilsdon, @Ithanil, @Zyfax, @okamototk, @ndrsfel, @kim-seokjin, @michi-onl, @ShirasawaSama, @broskees, @silentoplayz, @zengxy, @jolow99, @bitsofinfo, @Kylapaallikko, @Classic298
赞助商 🙌
🚀 我们想衷心感谢我们了不起的赞助商们的慷慨支持(注意:我们已将私人赞助商从此列表中排除。如果您希望在此展示,请随时联系我们!)
@amd, @roosi-gmbh, @rndmcnlly, @feddersen-group, @SRKConsulting, @mushmax, @icanbwell, @loitragg, @haka4githu6, @silenceroom, @crizCraig, @GenieDev101, @CubicleGangster, @TOWaB, @Classic298, @comet-ml, @FominVO, @catalyst-net-nz, @JrdnHans, @hkosm, @VeroFess, @joaoback, @LuxTronic
更新内容 (原始)
[0.6.42] - 2025-12-21
[!CAUTION] This release includes database schema changes; multi-worker, multi-server, or load-balanced deployments must update all instances simultaneously rather than performing rolling updates, as running mixed versions will cause application failures due to schema incompatibility between old and new instances.
[!WARNING] This release includes dependency version bumps; existing plugins may need to update their imports to remain compatible, as outdated import paths or APIs may cause build or runtime errors.
Added
- 📚 Knowledge base file management was overhauled with server-side pagination loading 30 files at a time instead of loading entire collections at once, dramatically improving performance and responsiveness for large knowledge bases with hundreds or thousands of files, reducing initial load times and memory usage while adding server-side search and filtering, view options for files added by the user versus shared files, customizable sorting by name or date, and file authorship tracking with upload timestamps. Commit
- ✨ Knowledge base file management was enhanced with automatic list refresh after file operations ensuring immediate UI updates, improved permission validation at the model layer, and automatic channel-file association for files uploaded with channel metadata. Commit
- 🔎 Knowledge command in chat input now uses server-side search for massive performance increases when selecting knowledge bases and files. Commit
- 🗂️ Knowledge workspace listing now uses server-side pagination loading 30 collections at a time with new search endpoints supporting query filtering and view options for created versus shared collections. Commit
- 📖 Knowledge workspace now displays all collections with read access including shared read-only collections, enabling users to discover and explore knowledge bases they don’t own while maintaining proper access controls through visual “Read Only” badges and automatically disabled editing controls for name, description, file uploads, content editing, and deletion operations. Commit
- 📁 Bulk website and YouTube video attachment now supports adding multiple URLs at once (newline-separated) with automatic YouTube detection and transcript retrieval, processed sequentially to prevent resource strain, and both websites and videos can now be added directly to knowledge bases through the workspace UI. Commit, #6202, #19587, #8231
- 🪟 Sidebar width is now resizable on desktop devices with persistent storage in localStorage, enforcing minimum and maximum width constraints (220px to 480px) while all layout components now reference the dynamic sidebar width via CSS variables for consistent responsive behavior. Commit
- 📝 Notes feature now supports server-side search and filtering with view options for notes created by the user versus notes shared with them, customizable sorting by name or date in both list and grid view modes within a redesigned interface featuring consolidated note management controls in a unified header, group-based permission sharing with read, write, and read-only access control displaying note authorship and sharing status for better collaboration, and paginated infinite scroll for improved performance with large note collections. Commit
- 👁️ Notes now support read-only access permissions, allowing users to share notes for viewing without granting edit rights, with the editor automatically becoming non-editable and appropriate UI indicators when read-only access is detected. Commit
- 📄 Notes can now be created directly from the chat input field, allowing users to save drafted messages or content as notes without navigation or retyping. Commit
- 🪟 Sidebar folders, channels, and pinned models sections now automatically expand when creating new items or pinning models, providing immediate visual feedback for user actions. Commit, #19929
- 📋 Chat file associations are now properly tracked in the database through a new “chat_file” table, enabling accurate file management across chats and ensuring proper cleanup of files when chats are deleted, while improving database consistency in multi-node deployments. Commit
- 🖼️ User-uploaded images are now automatically converted from base64 to actual file storage on the server, eliminating large inline base64 strings from being stored in chat history and reducing message payload sizes while enabling better image management and sharing across multiple chats. Commit
- 📸 Shared chats with generated or edited images now correctly display images when accessed by other users by properly linking generated images to their chat and message through the chat_file table, ensuring images remain accessible in shared chat links. Commit, #19393
- 📊 File viewer modal was significantly enhanced with native-like viewers for Excel/CSV spreadsheets rendering as interactive scrollable tables with multi-sheet navigation support, Markdown documents displaying with full typography including headers, lists, links, and tables, and source code files showing syntax highlighting, all accessible through a tabbed interface defaulting to raw text view. #20035, #2867
- 📏 Chat input now displays an expand button in the top-right corner when messages exceed two lines, providing optional access to a full-screen editor for composing longer messages with enhanced workspace and visibility while temporarily disabling the main input to prevent editing conflicts. Commit
- 💬 Channel message data lazy loading was implemented, deferring attachment and file metadata retrieval until needed to improve initial message list load performance. Commit
- 🖼️ Channel image upload handling was optimized to process and store compressed images directly as files rather than inline data, improving memory efficiency and message load times. Commit
- 🎥 Video file playback support was added to channel messages, enabling inline video viewing with native player controls. Commit
- 🔐 LDAP authentication now supports user entries with multiple username attributes, correctly handling cases where the username field contains a list of values. Commit, #19878
- 👨👩👧👦 The “ENABLE_PUBLIC_ACTIVE_USERS_COUNT” environment variable now allows restricting active user count visibility to administrators, reducing backend load and addressing privacy concerns in large deployments. #20027, #13026
- 🚀 Models page search input performance was optimized with a 300ms debounce to reduce server load and improve responsiveness. #19832
- 💨 Frontend performance was optimized by preventing unnecessary API calls for API Keys and Channels features when they are disabled in admin settings, reducing backend noise and improving overall system efficiency. #20043, #19967
- 📎 Channel file association tracking was implemented, automatically linking uploaded files to their respective channels with a dedicated association table enabling better organization and future file management features within channels. Commit
- 👥 User profile previews now display group membership information for easier identification of user roles and permissions. Commit
- 🌍 The “SEARXNG_LANGUAGE” environment variable now allows configuring search language for SearXNG queries, replacing the hardcoded “en-US” default with a configurable setting that defaults to “all”. #19909
- ⏳ The “MINERU_API_TIMEOUT” environment variable now allows configuring request timeouts for MinerU document processing operations. #20016, #18495
- 🔧 The “RAG_EXTERNAL_RERANKER_TIMEOUT” environment variable now allows configuring request timeouts for external reranker operations. #20049, #19900
- 🎨 OpenAI GPT-IMAGE 1.5 model support was added for image generation and editing with automatic image size capabilities. Commit
- 🔑 The “OAUTH_AUDIENCE” environment variable now allows OAuth providers to specify audience parameters for JWT access token generation. #19768
- ⏰ The “REDIS_SOCKET_CONNECT_TIMEOUT” environment variable now allows configuring socket connection timeouts for Redis and Sentinel connections, addressing potential failover and responsiveness issues in distributed deployments. #19799, Docs:#882
- ⏱️ The “WEB_LOADER_TIMEOUT” environment variable now allows configuring request timeouts for SafeWebBaseLoader operations. #19804, #19734
- 🚀 Models API endpoint performance was optimized through batched model loading, eliminating N+1 queries and significantly reducing response times when filtering models by user permissions. Commit
- 🔀 Custom model fallback handling was added, allowing workspace-created custom models to automatically fall back to the default chat model when their configured base model is not found; set “ENABLE_CUSTOM_MODEL_FALLBACK” to true to enable, preventing workflow disruption when base models are removed or renamed, while ensuring other requests remain unaffected. Commit, #19985
- 📡 A new /feedbacks/all/ids API endpoint was added to return only feedback IDs without metadata, significantly improving performance for external integrations working with large feedback collections. Commit
- 📈 An experimental chat usage statistics endpoint (GET /api/v1/chats/stats/usage) was added with pagination support (50 chats per page) and comprehensive per-chat analytics including model usage counts, user and assistant message breakdowns, average response times calculated from message timestamps, average content lengths, and last activity timestamps; this endpoint remains experimental and not suitable for production use as it performs intensive calculations by processing entire message histories for each chat without caching. Commit
- 🔄 Various improvements were implemented across the frontend and backend to enhance performance, stability, and security.
- 🌐 Translations for German, Danish, Finnish, Korean, Portuguese (Brazil), Simplified Chinese, Traditional Chinese, Catalan, and Spanish were enhanced and expanded.
Fixed
- ⚡ External reranker operations were optimized to prevent event loop blocking by offloading synchronous HTTP requests to a thread pool using asyncio.to_thread(), eliminating application freezes during RAG reranking queries. #20049, #19900
- 💭 Text loss in the explanation feature when using the “CHAT_STREAM_RESPONSE_CHUNK_MAX_BUFFER_SIZE” environment variable was resolved by correcting newline handling in streaming responses. #19829
- 📚 Knowledge base batch file addition failures caused by Pydantic validation errors are now prevented by making the meta field optional in file metadata responses, allowing files without metadata to be processed correctly. #20022, #14220
- 🗄️ PostgreSQL null byte insertion failures when attaching web pages or processing embedded content are now prevented by consolidating text sanitization logic across chat messages, web search results, and knowledge base documents, removing null bytes and invalid UTF-8 surrogates before database insertion. #20072, #19867, #18201, #15616
- 🎫 MCP OAuth 2.1 token exchange failures are now fixed by removing duplicate credential passing that caused “ID1,ID1” concatenation and 401 errors from the token endpoint. #20076, #19823
- 📝 Notes “Improve” action now works correctly after the streaming API change in v0.6.41 by ensuring uploaded files are fully retrieved with complete metadata before processing, restoring note improvement and summarization functionality. Commit, #20078
- 🔑 MCP OAuth 2.1 tool servers now work correctly in multi-node deployments through lazy-loading of OAuth clients from Redis-synced configuration, eliminating 404 errors when load balancers route requests to nodes that didn’t process the original config update. #20076, #19902, #19901
- 🧩 Chat loading failures when channels permissions were disabled are now prevented through graceful error handling. Commit
- 🔍 Search bar freezing and crashing issues in Models, Chat, and Archived Chat pages caused by excessively long queries exceeding server URL limits were resolved by truncating queries to 500 characters, and knowledge base layout shifting with long names was fixed by adjusting flex container properties. #19832
- 🎛️ Rate limiting errors (HTTP 429) with Brave Search free tier when generating multiple queries are now prevented through asyncio.Semaphore-based concurrency control applied globally to all search engines. #20070, #20003, #14107, #15134
- 💥 UI crashes and white screen errors caused by null chat lists during loading or network failures were prevented by adding null safety checks to chat iteration in folder placeholders and archived chat modals. #19898
- 🧩 Chat overview tab crashes caused by undefined model references were resolved by adding proper null checks when accessing deleted or ejected models. #19935
- 🔄 MultiResponseMessages component crashes when navigating chat history after removing or changing selected models are now prevented through proper component re-initialization. Commit, #18599
- 🚫 Channel API endpoint access is now correctly blocked when channels are globally disabled, preventing users with channel permissions from accessing channel data via API requests when the feature is turned off in admin settings. #19957, #19914
- 👤 User list popup display in the admin panel was fixed to correctly track user identity when sorting or filtering changes the list order, preventing popups from showing incorrect user information. Commit, #20046
- 👥 User selection in the “Edit User Group” modal now preserves pagination position, allowing administrators to select multiple users across pages without resetting to page 1. #19959
- 📸 Model avatar images now update immediately in the admin models list through proper Cache-Control headers, eliminating the need for manual cache clearing. #19959
- 🔒 Temporary chat permission enforcement now correctly prevents users from enabling the feature through personal settings when disabled in default or group permissions. #19785
- 🎨 Image editing with reference images now correctly uses both previously generated images and newly uploaded reference images. Commit
- 🧠 Image generation and editing operations are now explicitly injected into system context, improving LLM comprehension even for weaker models so they reliably acknowledge operations instead of incorrectly claiming they cannot generate images. Commit
- 📑 Source citation rendering errors when citation syntax appeared in user messages or contexts without source data were resolved. Commit
- 📄 DOCX file parsing now works correctly in temporary chats through client-side text extraction, preventing raw data from being displayed. Commit
- 🔧 Pipeline settings save failures when valve properties contain null values are now handled correctly. #19791
- ⚙️ Model usage settings are now correctly preserved when switching between models instead of being unexpectedly cleared or reset. #19868, #19549
- 🛡️ Invalid PASSWORD_VALIDATION_REGEX_PATTERN configurations no longer cause startup warnings, with automatic fallback to the default pattern when regex compilation fails. #20058
- 🎯 The DefaultFiltersSelector component in model settings now correctly displays when only global toggleable filters are present, enabling per-model default configuration. #20066
- 🎤 Audio file upload failures caused by MIME type matching issues with spacing variations and codec parameters were resolved by implementing proper MIME type parsing. #17771, #17761
- ⌨️ Regenerate response keyboard shortcut now only activates when chat input is selected, preventing unintended regeneration when modals are open or other UI elements are focused. #19875
- 📋 Log truncation issues in Docker deployments during application crashes were resolved by disabling Python stdio buffering, ensuring complete diagnostic output is captured. #19844
- 🔴 Redis cluster compatibility issues with disabled KEYS command were resolved by replacing blocking KEYS operations with production-safe SCAN iterations. #19871, #15834
- 🔤 File attachment container layout issues when using RTL languages were resolved by applying chat direction settings to file containers across all message types. #19891, #19742
- 🔃 Ollama model list now automatically refreshes after model deletion, preventing deleted models from persisting in the UI and being inadvertently re-downloaded during subsequent pull operations. #19912
- 🌐 Ollama Cloud web search now correctly applies domain filtering to search results. Commit
- 📜 Tool specification serialization now preserves non-ASCII characters including Chinese text, improving LLM comprehension and tool selection accuracy by avoiding Unicode escape sequences. #19942
- 🛟 Model editor stability was improved with null safety checks for tools, functions, and file input operations, preventing crashes when stores are undefined or file objects are invalid. #19939
- 🗣️ MoA completion handling stability was improved with null safety checks for response objects, boolean casting for settings, and proper timeout type definitions. #19921
- 🎛️ Chat functionality failures caused by empty logit_bias parameter values are now prevented by properly handling empty strings in the parameter parsing middleware. #19982
- 🔏 Administrators can now delete read-only knowledge bases from deleted users, resolving permission issues that previously prevented cleanup of orphaned read-only content. Commit
- 💾 Cloned prompts and tools now correctly preserve their access control settings instead of being reset to null, preventing unintended visibility changes when duplicating private or restricted items. #19960, #19360
- 🎚️ Text scale adjustment buttons in Interface Settings were fixed to correctly increment and decrement the scale value. #19699
- 🎭 Group channel invite button text visibility in light theme was corrected to display properly against dark backgrounds. #19828
- 📁 The move button is now hidden when no folders exist, preventing display of non-functional controls. #19705
- 📦 Qdrant client dependency was updated to resolve startup version incompatibility warnings. #19757
- 🧮 The “ENABLE_ASYNC_EMBEDDING” environment variable is now correctly applied to embedding operations when configured exclusively via environment variables. #19748
- 🌄 The “COMFYUI_WORKFLOW_NODES” and “IMAGES_EDIT_COMFYUI_WORKFLOW_NODES” environment variables are now correctly loaded and parsed as JSON lists, and the configuration key name was corrected from “COMFYUI_WORKFLOW” to “COMFYUI_WORKFLOW_NODES”. #19918, #19886
- 💫 Channel name length is now limited to 128 characters with validation to prevent display issues caused by excessively long names. Commit
- 🔐 Invalid PASSWORD_VALIDATION_REGEX_PATTERN configurations no longer cause startup warnings, with automatic fallback to the default pattern when regex compilation fails. #20058
- 🔎 Bocha search with filter list functionality now works correctly by returning results as a list instead of a dictionary wrapper, ensuring compatibility with result filtering operations. Commit, #19733
Changed
- ⚠️ This release includes database schema changes; multi-worker, multi-server, or load-balanced deployments must update all instances simultaneously rather than performing rolling updates, as running mixed versions will cause application failures due to schema incompatibility between old and new instances.
- 📡 WEB_SEARCH_CONCURRENT_REQUESTS default changed from 10 to 0 (unlimited) — This setting now applies to all search engines instead of only DuckDuckGo; previously users were implicitly limited to 10 concurrent queries, but now have unlimited parallel requests by default; set to 1 for sequential execution if using rate-limited APIs like Brave free tier. #20070
- 💾 SQLCipher absolute path handling was fixed to properly support absolute database paths (e.g., “/app/data.db”) instead of incorrectly stripping leading slashes and converting them to relative paths; this restores functionality for Docker volume mounts and explicit absolute path configurations while maintaining backward compatibility with relative paths. #20074
- 🔌 Knowledge base file listing API was redesigned with paginated responses and new filtering parameters; the GET /knowledge/{id}/files endpoint now returns paginated results with user attribution instead of embedding all files in the knowledge object, which may require updates to custom integrations or scripts accessing knowledge base data programmatically. Commit
- 🗑️ Legacy knowledge base support for deprecated document collections and tag-based collections was removed; users with pre-knowledge base documents must migrate to the current knowledge base system as legacy items will no longer appear in selectors or command menus. Commit
- 🔨 Source-level log environment variables (AUDIO_LOG_LEVEL, CONFIG_LOG_LEVEL, MODELS_LOG_LEVEL, etc.) were removed as they provided limited configuration options and added significant complexity across 100+ files; the GLOBAL_LOG_LEVEL environment variable, which already took precedence over source-level settings, now serves as the exclusive logging configuration method. #20045
- 🐍 LangChain was upgraded to version 1.2.0, representing a major dependency update and significant progress toward Python 3.13 compatibility while improving RAG pipeline functionality for document loading and retrieval operations. #19991
[!TIP]
Looking for an Enterprise Plan? – Speak with Our Sales Team Today!Get enhanced capabilities, including custom theming and branding, Service Level Agreement (SLA) support, and more!
👏 Massive thanks to our incredible contributors for their hard work and dedication to making this release possible: @rgaricano, @jekuaitk, @borisboc, @ascodeasice, @westbrook-ai, @Cyp9715, @joaoback, @aleixdorca, @taylorwilsdon, @Ithanil, @Zyfax, @okamototk, @ndrsfel, @kim-seokjin, @michi-onl, @ShirasawaSama, @broskees, @silentoplayz, @zengxy, @jolow99, @bitsofinfo, @Kylapaallikko, @Classic298
Sponsors 🙌
🚀 We’d like to extend a heartfelt thank you to our amazing sponsors for their generous support (Note: We’ve excluded private sponsors from this list. If you’d like to get featured here, feel free to reach out to us!)
@amd, @roosi-gmbh, @rndmcnlly, @feddersen-group, @SRKConsulting, @mushmax, @icanbwell, @loitragg, @haka4githu6, @silenceroom, @crizCraig, @GenieDev101, @CubicleGangster, @TOWaB, @Classic298, @comet-ml, @FominVO, @catalyst-net-nz, @JrdnHans, @hkosm, @VeroFess, @joaoback, @LuxTronic