发布日期: 2026-08-31
版本号: v0.11.2

Open WebUI 发布了包含安全修复的重要更新,建议尽快升级生产环境。此次更新增强了终端文件的预览效果,优化了无管道配置和多工作节点下的性能,包括消息处理开销、模型列表刷新及大型 WebSocket 服务器的负载。新增了用于调整模型调用载荷的请求过滤器步骤、触摸屏上的面板拖拽调整、界面字体自定义以及更广泛的无障碍模式支持。同时修复了多项问题,涵盖对话中断、流式回复卡顿、工具调用处理、跨实例停止响应、UI 元素显示错误及自动化的调度问题。变更方面,日历事件的每日重复频率受到限制,并将“高对比度模式”更名为“无障碍模式”。此外,多个语言的翻译也得到了更新和扩展。

更新内容 (中文)

新增

  • 🖼️ 终端文件预览更丰富。 在终端中生成的Word文档和幻灯片现在会以最终文档形式预览,而非近似呈现;所有文档预览侧边新增带编号缩略图的页面导航条,点击可直接跳转至指定页面。预览与下载内容可能不同的警告现已移除,因为预览结果已完全一致。提交提交提交提交提交
  • 每条消息处理开销降低。 未配置流水线的部署(默认设置)不再在每条聊天消息和后台任务中执行流水线初始化工作。#29146
  • 🏎️ 模型列表刷新更轻量。 在运行多个工作线程的部署中,若模型列表未发生变化,刷新时各线程不再重复重写整个列表至共享缓存,从而减少每次刷新的工作量和流量消耗。#29264
  • 🧵 繁忙WebSocket服务器运行更流畅。 大型Redis支持的WebSocket部署现在清理旧会话、从Redis读取自身会话数据以及检查每个发出的WebSocket消息是否包含Open WebUI未发送的文件附件时耗时大幅减少,使得频道推送、协作更新、心跳和实时聊天更新对繁忙服务器的负载更低。#28835#28180
  • 🧰 新增请求过滤步骤。 过滤器作者现在可以在每次模型调用前(包括工具使用后的后续调用)使用 request 调整有效载荷,而现有的 inletstreamoutlet 过滤器继续正常工作。提交提交
  • 🤏 触屏文件预览空间更大。 手机和平板电脑上的文件预览不再显示覆盖在本已狭小预览区域上的缩放按钮,改由捏合缩放手势完成操作。#29176#29152
  • 👆 通过触控调整面板尺寸。 主侧边栏或侧边面板旁的分隔线现可在触摸屏或手写笔上拖动调整,鼠标拖动在指针离开窗口时仍会持续跟踪。提交提交提交
  • 🔤 界面字体选择。 界面设置现提供字体系列字段,可指定计算机已安装字体,并实时在输入时预览应用效果;留空字段则恢复为标准字体。提交
  • 无障碍模式覆盖范围更广。 无障碍模式现提升更多界面元素的对比度,包括淡化文本、表格文本、图标、元素悬停时的颜色变化,以及指向侧边栏和菜单项时的背景高光,确保低对比度区域在明暗主题下均符合无障碍指南要求。文件夹对话框的关闭按钮现已可向屏幕阅读器通告自身,文档和幻灯片预览也支持键盘操作。提交提交#29160提交提交
  • 🌐 翻译更新。 波兰语、简体中文、德语、爱尔兰语、加泰罗尼亚语和葡萄牙语(巴西)的翻译已扩展、修正并更新至最新界面文本。#29029#29043#29108#29151#29184#29179#29247#29217

修复

  • 🛡️ 安全公告:本次发布包含安全与访问控制修复。建议尽快更新生产环境部署。此版本中的部分安全修复可能未在修复部分全部列出,部分修复可能暂不披露,以便管理员有时间升级。安全公告
  • 💥 回复不再中断聊天。 对话不再在浏览器中失败并停止显示助手回复直至重新加载,已保存为该状态的聊天现在可正常显示和编辑。#29250#29244
  • ⌨️ 预览快捷键作用范围限于预览窗口。 方向键现在仅在文档或幻灯片预览获得焦点时用于翻页,而非从页面任意位置捕获方向键,避免干扰其他文本输入。提交提交
  • 🧊 推理模型的流式传输不再卡顿。 推理模型的回复现在会持续流式传输至结束,而非仅显示前几个词后即冻结至生成完成。#29053#29035
  • 💭 思考内容保持在“思考”区域。 模型使用工具后,其下一步推理现在显示在折叠的“思考”区域内,而非作为普通文本写入回复。#29052#29040
  • 🧠 大型工具调用通过兼容Anthropic的客户端流式传输更快。 当流式工具调用发送大量参数块时,Open WebUI现在会等待该块完整接收后再进行校验,而非对每个微小片段重复执行昂贵校验。#28858
  • 🛑 跨实例停止响应生效。 停止响应现在在Redis集群支持的多实例部署中生效,而非回复继续生成至结束。#29165#19840
  • 🎯 减少不必要的聊天重载。 包含较早未完成回复的对话不再每次其他回复完成时整体重载,仅重载实际更新的回复。提交
  • 📆 包含下划线文本的横幅显示正常。 包含下划线文本的横幅现可正常显示,不再渲染失败。#29118#29115
  • 🧰 固定模型默认使用自身工具。 从侧边栏固定模型开始聊天时,现在应用该模型自身的工具和技能,而非沿用上次使用的模型工具。#29058#29050
  • 被拒绝的ask_user调用不再终止回复。 若模型以Open WebUI拒绝的方式向用户提问,模型现在会收到错误信息并可继续或重试,而非使聊天停止且无回复。#29252#29077
  • 🚫 禁用模型不再消失。 在管理员模型列表中关闭模型后,该模型仍会显示,以便重新启用,而非消失且无法恢复。#29037#29036
  • ✂️ 消息文本保持完整。 包含尖括号和美元符号的文本不再被误判为技能提及并在消息发送至模型前静默删除。#29051#29041
  • 📆 移动的日历事件保持可见。 更改事件日期不再导致其从日历消失,已处于该状态的事件重新显示。#29085#29067
  • 🔁 重复事件基于自身日期计算。 重复事件现在基于自身日期和时间计算发生次数,避免重复规则携带自身开始日期可能导致的错误星期或小时。提交
  • 🔟 重复自动化保持运行次数。 设置为固定运行次数的自动化不再显示为运行一次,且下次打开保存时被静默重写为单次运行。#29261#29263
  • 📅 计划在保存后保持。 带有开始日期的自动化现在在列表中显示其实际计划,并在保存时保持每周或每月设置,而非显示原始规则文本并回退为每日。#29263
  • 🧩 自定义自动化计划保持自定义。 重新打开带有自定义重复规则的自动化不再从编辑器中丢失自定义规则。#29260
  • 🔢 管理员用户计数准确。 管理员用户标签页上的计数现在随搜索更新,切换标签页时重置,而非显示过时或未筛选的数字。#29080#29079
  • 🧷 侧边栏文件夹不再表现过时。 从侧边栏移除的文件夹现在同时从内部侧边栏注册表中移除,后续操作不再针对已不在屏幕上的文件夹。#29121
  • 📱 小屏幕上模型列表可读性提升。 工作区模型列表中的模型标识符和时间戳在窄屏上不再与模型名称重叠。#29084#29083
  • 🧱 长设置值不再挤压标签。 设置行现在允许长控件在可用空间内缩小,而非挤压相邻标签。#29229
  • 🧭 模型默认设置面板保持可用。 管理员设置中的模型功能和提示建议部分现在在面板内滚动,而非超出可用空间增长。#29235
  • 📲 下拉菜单保持屏幕内。 窄屏边缘的下拉菜单现在向内偏移以完全可见,而非超出边缘并裁剪选项标签。#29226#29225
  • 🌗 下拉列表跟随主题。 下拉菜单打开的列表现在从界面其他部分获取明暗配色,而非系统默认。提交
  • 🎛️ 阀门对话框保持边界。 选择选项形成长行的阀门不再将其输入拉伸至对话框边缘并覆盖背后页面。#29203#29202
  • 🧹 共享聊天搜索重置。 重新打开共享聊天对话框时,搜索框和完整列表现在重置为空,而非保留上次搜索词并显示未筛选结果。#29082#29081
  • 🔎 非英文内容支持大小写不敏感搜索。 基于SQLite的安装中,按标签搜索和筛选现在忽略带重音和非拉丁文本的大小写,而非仅匹配不带重音的英文大小写字母。提交
  • 🏷️ 包含冒号和示例URL的标签正确翻译。 Warning:http://localhost:8000https://mineru.net/api/v4 等界面文本现在正确显示,不再被翻译系统误读。#29161#29154
  • 🔑 SQLite上精确账户匹配。 通过身份提供商登录时,现在基于精确标识符匹配账户,避免标识符为异常长数字或零填充数字的账户与其他账户混淆。提交
  • 🗃️ 知识列表可靠加载。 工作区中的知识页面现在在打开时填充列表,而非偶尔保持空白。提交
  • 🎟️ 无需密钥的工具服务器。 未保存密钥的工具服务器连接不再发送空授权头,避免部分服务器直接拒绝。提交
  • 🐍 代码解释器在Windows上启动。 内置代码解释器现在使用浏览器安全文件类型提供脚本和WebAssembly文件,避免Windows主机覆盖导致Pyodide无法加载。#29139#29133

变更

  • ⏱️ 重复频率每日限制。 日历事件不再允许设置超过每天一次的重复频率,保存更频繁的重复设置时将被拒绝并提示限制说明。提交
  • 🏷️ 高对比度模式更名为无障碍模式。 界面设置中原有的“高对比度模式”现更名为“无障碍模式”,开关位置不变。提交

更新内容 (原始)

Added

  • 🖼️ Richer previews for terminal files. Word documents and slide decks produced in the terminal are now previewed as the finished document rather than an approximation, and every document preview gains a page strip down the side with numbered thumbnails you can click to jump straight to a page, and the notice warning that a preview might differ from the download is gone now that it does not. Commit, Commit, Commit, Commit, Commit
  • Less overhead on every message. Deployments without pipelines configured, which is the default, no longer pay setup work for them on each chat message and background task. #29146
  • 🏎️ Lighter model list refreshes. On deployments running several workers, a refresh that finds the model list unchanged no longer has every worker rewrite the whole list to the shared cache, cutting the work and the traffic each refresh costs. #29264
  • 🧵 Smoother busy websocket servers. Large Redis-backed websocket deployments now spend far less time sweeping old sessions, reading their own session data back from Redis, and checking every outgoing websocket message for file attachments Open WebUI does not send, so channel posts, collaboration updates, heartbeats, and live chat updates put less load on busy servers. #28835, #28180
  • 🧰 A new request filter step. Filter authors can now use request to adjust the payload right before each model call, including follow-up calls after tool use, while existing inlet, stream, and outlet filters keep working as before. Commit, Commit
  • 🤏 More room in file previews on touch screens. File previews on phones and tablets no longer show zoom buttons that sit over an already small preview, leaving pinch to zoom to do the job. #29176, #29152
  • 👆 Resizing panels by touch. The divider beside the main sidebar or a side panel can now be dragged on a touchscreen or with a stylus, and a drag made with the mouse keeps following the pointer when it leaves the window. Commit, Commit, Commit
  • 🔤 Choice of interface font. Interface settings now offer a font family field where you can name a font installed on your computer and watch it apply across the interface as you type, with an empty field returning to the standard font. Commit
  • Wider accessibility mode coverage. Accessibility mode now lifts the contrast of more of the interface, including muted text, table text, icons, the colours elements change to on hover, and the highlight behind sidebar and menu items you point at, so low-contrast areas meet the level the accessibility guidelines ask for in both light and dark themes, and the close button on the folder dialog now announces itself to screen readers, as do document and slide previews, which can now be reached with the keyboard. Commit, Commit, #29160, Commit, Commit
  • 🌐 Translation updates. Polish, Simplified Chinese, German, Irish, Catalan, and Portuguese (Brazil) translations were expanded, corrected, and brought up to date with newer interface text. #29029, #29043, #29108, #29151, #29184, #29179, #29247, #29217

Fixed

  • 🛡️ Security Advisory: This release includes security and access-control fixes. We recommend updating production deployments at your earliest convenience. Not all security fixes in this version may be enumerated in the fixed section. Some may be withheld for a short time to give administrators time to upgrade. Advisories
  • 💥 Replies stop breaking mid-chat. A conversation no longer fails in the browser and stops showing the assistant reply until you reload, and chats already saved in that state display and can be edited again. #29250, #29244
  • ⌨️ Preview shortcuts stay in the preview. Arrow keys now page a document or slide preview only while that preview has focus, instead of paging it from anywhere on the page and taking the arrow keys away from whatever you were typing in. Commit, Commit
  • 🧊 Streaming no longer stalls on reasoning models. A reply from a reasoning model now streams through to the end instead of showing its first few words and then freezing until generation finishes. #29053, #29035
  • 💭 Thinking stays in Thoughts. After a model uses a tool, its reasoning for the next step now appears in the collapsed Thoughts section instead of being written into the reply as ordinary text. #29052, #29040
  • 🧠 Large tool calls stream faster through Anthropic-compatible clients. When a streamed tool call sends a large block of arguments, Open WebUI now waits until that block can actually be complete before checking it, instead of doing the same expensive check again on every tiny piece. #28858
  • 🛑 Stop works across instances. Stopping a response now takes effect on deployments that spread people across several instances backed by a Redis cluster, instead of the reply continuing to the end regardless. #29165, #19840
  • 🎯 Fewer needless chat reloads. A conversation holding an older unfinished reply no longer reloads itself each time some other response in it finishes, reloading only for the reply the update actually concerns. Commit
  • 📖 Banners with underlined text. A banner containing underlined text now displays instead of failing to render. #29118, #29115
  • 🧰 Pinned models start with their own tools. Starting a chat from a pinned model in the sidebar now applies that model’s tools and skills instead of carrying over the ones from the model you used last. #29058, #29050
  • Rejected ask_user calls no longer kill the reply. If a model asks the user a question in a way Open WebUI refuses, the model now receives that error and can continue or retry, instead of leaving the chat stopped with no answer. #29252, #29077
  • 🚫 Disabled models no longer vanish. Turning a model off in the admin Models list now keeps it in view so you can turn it back on, instead of it disappearing with no way to recover it. #29037, #29036
  • ✂️ Message text kept intact. Text containing angle brackets and a dollar sign is no longer mistaken for a skill mention and silently removed before your message reaches the model. #29051, #29041
  • 📆 Moved calendar events stay visible. Changing an event’s date no longer makes it disappear from the calendar, and events already stuck in that state show up again. #29085, #29067
  • 🔁 Repeats follow the event. A repeating event now works out its occurrences from its own date and time, where a repeat rule carrying a start date of its own could place them on the wrong weekday or at the wrong hour. Commit
  • 🔟 Repeating automations keep their count. An automation set to run a fixed number of times is no longer shown as running once and quietly rewritten to a single run the next time you open and save it. #29261, #29263
  • 🗓️ Schedules survive a save. An automation carrying a start date now shows its real schedule in the list and keeps its weekly or monthly setting when saved, instead of showing raw rule text and falling back to daily. #29263
  • 🧩 Custom automation schedules stay custom. Reopening an automation with a custom repeat rule no longer loses the custom rule from the editor. #29260
  • 🔢 Accurate admin user counts. The counts on the admin Users tabs now follow your search and reset when you switch tabs, instead of showing stale or unfiltered numbers. #29080, #29079
  • 🧷 Sidebar folders stop acting stale. A folder that has been removed from the sidebar is now removed from the internal sidebar registry too, so later sidebar actions do not target a folder that is no longer on screen. #29121
  • 📱 Readable model list on small screens. The model identifier and timestamp in the workspace model list no longer overlap the model name on narrow displays. #29084, #29083
  • 🧱 Long setting values stop crushing labels. Settings rows now let long controls shrink inside the available space instead of squeezing the label beside them. #29229
  • 🧭 Model defaults panels stay usable. The model capabilities and prompt suggestion sections in admin settings now scroll inside their panels instead of growing past the available space. #29235
  • 📲 Dropdowns stay on screen. A dropdown near the edge of a narrow screen now shifts inward to stay fully visible instead of opening past the edge with its option labels cut off. #29226, #29225
  • 🌗 Dropdown lists follow the theme. The list a dropdown opens now takes its light or dark colouring from the rest of the interface instead of the system default. Commit
  • 🎛️ Valves dialog stays in bounds. A valve whose selected options form a long line no longer stretches its input past the edge of the dialog and over the page behind it. #29203, #29202
  • 🧹 Shared chats search resets. Reopening the shared chats dialog now starts with an empty search box and the full list, rather than a leftover search term above unfiltered results. #29082, #29081
  • 🔎 Case-insensitive search beyond English. Searching and filtering by tag now ignore letter case for accented and non-Latin text on installations backed by SQLite, where only unaccented English letters were matched whatever their case. Commit
  • 🏷️ Labels with colons and example URLs translate correctly. Interface text such as Warning:, http://localhost:8000, and https://mineru.net/api/v4 now appears correctly instead of being misread by the translation system. #29161, #29154
  • 🔑 Precise account matching on SQLite. Signing in through an identity provider now matches your account on its exact identifier, so accounts whose identifier is an unusually long or zero-padded number are no longer at risk of being confused with another. Commit
  • 🗃️ Knowledge list loads reliably. The Knowledge page in the workspace now fills in its list on opening instead of occasionally staying empty. Commit
  • 🎟️ Tool servers without a key. A tool server connection saved without a key is no longer sent an empty authorization header, which some servers refused outright. Commit
  • 🐍 Code interpreter starts on Windows. The built-in code interpreter now serves its script and WebAssembly files with the browser-safe file types Windows hosts sometimes overwrite, so Pyodide can load instead of failing before code runs. #29139, #29133

Changed

  • ⏱️ Daily limit on repeats. A calendar event can no longer be set to repeat more often than once a day, and saving one that repeats more often is now refused with a message explaining the limit. Commit
  • 🏷️ High Contrast Mode is now Accessibility Mode. The interface setting previously called ‘High Contrast Mode’ is now called ‘Accessibility Mode’, with the same switch in the same place. Commit

下载链接