发布日期: 2026-03-08
版本号: v0.8.9

Open WebUI 发布了多项功能更新和问题修复,主要围绕增强 Open Terminal 文件浏览器功能和优化系统性能展开。新增功能包括在 Open Terminal 中直接执行 Jupyter Notebook 单元格、浏览和查询 SQLite 数据库、渲染 Mermaid 图表、预览 Jupyter Notebook、支持文件自动刷新与一键复制内容、为代码文件添加语法高亮并改进 XLSX 预览、以交互式树状视图显示 JSON 文件并渲染 SVG、查看端口信息、直接预览音视频文件、使用 CodeMirror 编辑器编辑 HTML 文件、内联渲染 Word 文档、Excel 表格和 PowerPoint 演示文稿。同时,为代码解释器增加了 Pyodide 文件系统支持,允许上传和操作文件,并让工具能访问聊天上下文中的文件。性能方面,通过优化 Markdown 渲染、数组操作、流式处理、API 中间件、模型列表加载及页面初始加载等多个环节,显著提升了聊天、消息列表、源列表和整体响应速度。其他改进包括管理员可配置 WebSocket 事件超时、文件刷新按钮在查看文件时可见、支持创建嵌套文件夹、横幅在页面导航时加载、通过 OpenTelemetry 监控系统指标、更新多语言翻译以及优化网络搜索工具说明。

问题修复涵盖数据库迁移内存管理、SQLCipher 连接稳定性、停止序列错误、Microsoft OAuth 刷新令牌、无参数工具调用与流式工具调用处理、工具服务器 URL 斜杠处理、引用解析器错误处理、Artifacts 组件内存泄漏与无限循环、思考块 HTML 渲染、浮动快速操作可用性、后续建议格式、TTS 思考内容处理、按钮旋转图标对齐、终端保活、聊天归档处理、BeautifulSoup4 依赖、群组用户默认排序、工具访问权限、Open Terminal 权限、固定模型清理、OpenTelemetry 指标描述符、非流式 token 追踪、行内代码输入、变量输入换行处理、Android 照片拍摄、Windows 路径解析、聊天概览图像尺寸、排队消息显示、临时聊天图像生成、Ollama 模型卸载、横幅类型下拉菜单、分析页面 URL 编码与聊天列表重复项,以及文件夹知识库工具调用。

更新内容 (中文)

新增

  • ▶️ Open Terminal notebook cell执行。 用户现在可以在Open Terminal文件浏览器中直接运行Jupyter Notebook代码单元,一键执行整个notebook,运行前编辑修改单元,并控制内核——将完整的交互式notebook执行体验带到浏览器中。提交
  • 🗃️ Open Terminal SQLite浏览器。 用户现在可以在Open Terminal文件浏览器中直接浏览SQLite数据库文件,查看表结构并运行查询,无需先下载。提交
  • 📉 Open Terminal Mermaid图表渲染。 包含Mermaid代码块的Markdown文件现在会在Open Terminal文件浏览器中直接渲染为图表,更方便地可视化流程图和其他图表。提交
  • 📓 Open Terminal Jupyter Notebook预览。 用户现在可以在Open Terminal文件浏览器中直接预览Jupyter Notebook文件,更方便地查看notebook内容,无需先下载。提交
  • 🔃 Open Terminal自动刷新。 Open Terminal文件浏览器现在会在模型写入或修改文件时自动刷新,无需手动刷新即可保持视图同步。提交
  • 📎 Open Terminal文件复制按钮。 用户现在可以在Open Terminal文件浏览器中一键将文件内容直接复制到剪贴板,更方便地快速获取文件内容,无需下载。提交
  • 💻 Open Terminal中的代码语法高亮和XLSX改进。 代码文件现在在Open Terminal文件浏览器中会显示语法高亮,XLSX电子表格现在会显示列标题和行号,便于浏览。提交
  • 🌳 Open Terminal JSON树视图。 JSON、JSONC、JSONL和JSON5文件现在在Open Terminal文件浏览器中显示为可折叠的交互式树视图,SVG文件会渲染为预览图像并支持语法高亮。提交
  • 🛜 Open Terminal端口查看。 用户现在可以在Open Terminal文件浏览器中查看监听端口,并直接从UI打开到这些端口的代理连接。提交
  • 🎬 Open Terminal视频预览。 用户现在可以在Open Terminal文件浏览器中直接预览视频和音频文件,更方便地查看媒体内容,无需先下载。提交
  • ✏️ Open Terminal HTML编辑。 用户现在可以在Open Terminal中使用CodeMirror编辑器编辑HTML源文件,并且保存按钮在预览模式下会正确隐藏。提交
  • 📄 Open Terminal DOCX预览。 AI生成或修改的Word文档现在可以直接在文件浏览器中查看,格式化文本、表格和图像会内联渲染——无需下载并在单独的应用程序中打开。提交
  • 📊 Open Terminal XLSX预览。 文件浏览器中的Excel电子表格现在会渲染为带有列标题和行号的交互式表格,便于验证AI生成或处理的数据。提交
  • 📽️ Open Terminal PPTX预览。 AI创建的PowerPoint演示文稿现在可以在文件浏览器中逐页查看,无需离开浏览器即可进行快速审查和迭代。提交
  • 📁 Pyodide文件系统支持。 用户现在可以上传文件用于代码解释器中的Python代码执行。上传的文件在/mnt/uploads/目录中可用,代码可以将输出文件写入该目录以供下载。文件系统在同一个会话内的代码执行之间会持久存在。代码解释器现在还会告知模型Pyodide环境中不可用pip install,引导其使用可用模块的替代方法。#3583, 提交, 提交
  • 🧰 工具文件访问。 工具现在可以通过其元数据中的files属性访问当前聊天上下文中的文件,从而实现更强大的工具集成。提交
  • 聊天性能。 由于优化了Markdown渲染,聊天消息的加载和显示速度显著提升,消除了查看包含数学表达式的消息时的延迟。#22196, #20878
  • 📜 消息列表性能。 通过优化数组操作,将复杂度从O(n²)降低到O(n),提升了消息列表的渲染性能。#22280
  • 🧵 流式Markdown性能。 通过在内容未更改时跳过不必要的Markdown重新解析,提升了流式传输期间的聊天响应速度,消除了模型暂停期间的浪费处理。#22183
  • 🏃 聊天流式传输性能。 对于不使用语音通话功能的用户,聊天流式传输现在更快,因为跳过了每个token上运行的不必要文本解析。#22195
  • 🔖 源列表性能。 由于优化了计算,避免了不必要的重新计算(包括将sourceIds计算移至响应式变量),聊天中的源列表现在渲染更快。#22279, 提交, 提交
  • 💨 聊天消息树操作。 聊天消息树操作现在显著加快,提升了整体聊天响应速度。#22194
  • 🚀 初始页面加载速度。 由于延迟加载语法高亮库,页面加载现在显著加快,减少了几个兆字节的初始JavaScript包大小。#22304
  • 🗓️ 操作优先级查询优化。 通过修复N+1查询模式,提升了操作优先级解析的性能,减少了加载模型操作时的数据库往返次数。#22301
  • 🔑 API密钥中间件优化。 API密钥限制中间件被转换为纯ASGI中间件,以提升流式传输性能,移除了每个块的调用开销。#22188
  • 🏎️ 模型列表加载性能。 由于优化了自定义模型匹配,使用字典查找代替嵌套循环,模型列表现在加载速度显著提升。#22299, 提交, 提交
  • ⏱️ 事件调用超时配置。 管理员现在可以通过WEBSOCKET_EVENT_CALLER_TIMEOUT环境变量配置WebSocket事件调用超时,让用户有更多时间响应event_call表单,而不是在60秒后超时。#22222, #22220
  • 🔁 文件刷新按钮可见性。 聊天文件浏览器中的刷新按钮现在在查看文件和目录时都会显示,允许用户随时刷新文件视图。提交
  • 📂 嵌套文件夹支持。 用户现在可以在父文件夹中创建子文件夹,改进了聊天的组织方式。在文件夹上下文菜单中有一个新的“创建子文件夹”选项。#22073, 提交
  • 🔔 导航时横幅加载。 管理员配置的横幅现在在导航到主页时加载,而不仅仅是在页面刷新时加载,确保用户立即看到新横幅。#22340, #22180
  • 📡 通过OpenTelemetry的系统指标。 管理员现在可以通过现有的OpenTelemetry管道监控Python运行时和系统指标,包括CPU、内存、垃圾回收和线程数。#22265
  • 🔄 常规改进。 在整个应用程序中实现了各种改进,以增强性能、稳定性和安全性。
  • 🌐 增强并扩展了法语、芬兰语、土耳其语、德语、简体中文和繁体中文的翻译。
  • 🔍 网页搜索工具引导。 网页搜索工具描述已更新,鼓励在检查知识库之前直接使用,使希望立即搜索网页的用户更清楚。#22264

修复

  • 🗄️ 迁移内存使用。 大型部署中的数据库迁移现在会分批处理消息,而不是将所有内容加载到内存中,防止升级过程中出现内存不足错误。#21542, #21539
  • 🔒 SQLCipher连接稳定性。 修复了在使用SQLCipher进行数据库加密时,由于更改默认连接池行为而导致在多线程操作(如用户注册)期间发生的崩溃。#22273, #22258
  • 🛑 停止序列错误。 修复了一个错误,即在模型上设置停止序列会导致聊天因分割错误而失败,阻止任何响应返回。该修复处理了停止token的字符串和数组格式。#22251, 提交
  • 🔐 Microsoft OAuth刷新令牌修复。 通过添加对必需范围参数的支持,修复了Microsoft OAuth刷新令牌请求因错误AADSTS90009而失败的错误。用户现在可以使用Microsoft OAuth可靠地保持登录状态。#22359
  • 🛠️ 无参数工具调用。 通过更正默认参数初始化,修复了流式传输期间无参数工具调用失败的问题,消除了不必要的模型重试。#22189
  • 🔧 工具调用流修复。 修复了两个错误,在这些错误中,流式工具调用对GPT-5等模型静默失败:函数名在多个增量块中发送时被错误地重复,包含多个JSON对象的参数未正确拆分。工具现在正确执行,而不是在没有解释的情况下失败。#22177, 提交, 提交
  • 🔗 工具服务器URL尾部斜杠。 通过在路径连接之前删除尾部斜杠,修复了当URL包含尾部斜杠时工具服务器连接失败的问题。之前,像“http://host:8080/v1/” + “/openapi.json”这样的URL会产生双斜杠URL,一些服务器会拒绝。#22116, #21917
  • 🛡️ 引用解析器错误处理。 通过向引用解析器添加类型守卫,修复了当工具返回错误字符串而不是预期数据结构时的崩溃。系统现在返回空源列表,而不是因AttributeError崩溃。#22118
  • 🧠 Artifacts内存泄漏。 修复了Artifacts组件中的Svelte store订阅在组件卸载时未正确清理而导致内存泄漏的问题,这会导致内存随时间累积。#22303
  • ♾️ Artifacts响应式循环修复。 通过将动画帧逻辑移出响应式块,修复了聊天中存在Artifacts时的无限响应式循环,防止持续重新渲染和CPU使用。#22238, 提交
  • 🔀 Artifact导航。 通过箭头按钮进行的Artifact导航现在可以正常工作;内容更新时不再重置所选的artifact。#22239
  • 🧩 Artifact思考块修复。 修复了一个错误,对于某些模型(如Mistral和Z.ai),HTML预览会在思考块内渲染代码块,导致在实际artifact之前出现带有“>”符号的孤立代码。该修复在提取代码进行artifact渲染之前剥离思考块。#22267, 提交
  • 💬 浮动快速操作可用性。 修复了在使用已不再可用模型的聊天中选择文本时,“提问”和“解释”浮动快速操作缺失的问题。#22149, #22139
  • 💡 后续建议。 通过更正提示模板中矛盾的格式说明,修复了后续建议不出现的问题,确保LLM返回正确的JSON对象格式。#22212
  • 🔊 TTS思考内容。 通过处理思考内容中的代码块阻碍正确标签移除的边缘情况,修复了TTS播放读取思考标签而不是跳过它们的问题。#22237, #22197
  • 🎨 按钮旋转器对齐。 多个模态框中的按钮旋转器现在可以正确对齐,并保持在与按钮文本相同的行上,修复了显示加载状态时的布局问题。#22227
  • 📶 终端保活。 终端连接现在会保持活动状态,不会被代理或负载均衡器的空闲超时关闭,并且不再出现虚假的断开连接消息。提交
  • 📥 聊天归档处理程序。 聊天导航栏中的归档按钮现在确实会归档聊天并刷新聊天列表,而不是无动于衷。#22229
  • 🐍 BeautifulSoup4依赖。 在后端需求中添加了缺失的BeautifulSoup4包,修复了使用依赖HTML解析的功能时的失败。#22231
  • 👥 组用户默认排序。 管理面板中的组成员现在默认按最后活动时间排序,而不是按创建日期,更容易找到活跃用户。#22211
  • 🔓 工具访问权限。 用户现在可以将工具和技能访问权限从私有更改为公共,而不会出错。#22325, #22324
  • 🖥️ Open Terminal权限修复。 Open Terminal现在无需“允许语音转文本”权限即可可见,修复了没有麦克风访问权限的用户无法访问终端功能的问题。#22374, 提交
  • 📌 固定模型清理。 已删除或隐藏的固定模型现在会自动取消固定,保持您的固定模型列表最新。提交
  • 📏 OpenTelemetry指标描述。 修复了导致OpenTelemetry收集器中出现警告的冲突指标仪器描述,为管理员提供了更干净的遥测日志。#22293
  • 🔢 非流式令牌跟踪。 非流式聊天响应的令牌使用量现在已正确保存到数据库中,修复了管理面板分析中缺失的令牌计数。之前,非流式响应保存NULL使用数据,导致消息被排除在令牌聚合查询之外。#22166
  • ⌨️ 内联代码输入。 修复了一个错误,即使用反引号输入内联代码时会错误地删除开反引号之前的字符,因此格式化为内联代码的文本现在会正确产生完整的单词,而不是缺少最后一个字符。#20417, 提交
  • 📝 变量输入换行。 修复了一个错误,即包含换行符的变量在聊天消息中未正确显示,并且来自Windows系统的输入值现在已正确规范化为使用标准行尾。#21447, 提交
  • 📷 Android照片捕获。 通过使用替代的画布导出方法,修复了在某些Android设备上聊天中拍摄的第一张照片显示为完全黑色的问题。#22317
  • 🪟 Open Terminal Windows路径修复。 修复了一个错误,即在Windows上导航回父目录时添加了不正确的前导斜杠,导致目录加载失败。路径现在已针对Windows驱动器号正确规范化。#22352, 提交
  • 🖼️ 聊天概览个人资料图片尺寸。 修复了一个错误,即聊天概览中的个人资料图片在空间紧凑时可能不正确地缩小。图片现在通过flex-shrink-0属性保持其适当大小。#22261
  • 📨 排队消息显示。 修复了排队消息可能被截断或隐藏的问题。排队消息区域现在会在内容超过可见区域时正确滚动,最多显示视口高度的25%。#22176
  • 🖌️ 临时聊天中的图像生成。 使用内置图像生成工具时,生成的图像现在在临时聊天模式下正确显示。之前,图像未显示是因为代码用null数据库响应覆盖了图像列表。#22330, #22309
  • 🤖 Ollama模型卸载修复。 修复了一个错误,即通过Open WebUI代理从Ollama卸载模型时,因提示字段而出现“字段必填”错误。代理现在正确允许在使用keep_alive: 0卸载模型时省略提示。#22260, 提交
  • 🏷️ 横幅类型下拉菜单修复。 修复了一个错误,即选择横幅类型需要两次点击才能注册,因为第一次选择由于DOM结构更改而被吞掉。下拉菜单现在在第一次点击时即可正常工作。#22378
  • 📈 分析URL编码修复。 修复了一个错误,即分析页面无法加载ID中包含斜杠(如“anthropic/claude-opus-4.6”)的模型的数据。前端现在正确对URL进行编码,允许模型分析正确加载。#22380, #22382
  • 📋 分析聊天列表重复修复。 修复了一个错误,即在分页期间聊天ID重复时,分析页面聊天列表抛出“each_key_duplicate” Svelte错误。该修复添加了确定性排序以防止重复条目。#22383
  • 📂 文件夹知识库本机工具调用修复。 修复了一个错误,即附加了知识库的文件夹在使用本机工具调用模式时会查询知识库两次。该修复现在正确区分知识文件和常规附件,让内置的query_knowledge_files工具处理知识搜索,而不是重复RAG查询。#22236, 提交, 提交

更新内容 (原始)

Added

  • ▶️ Open Terminal notebook cell execution. Users can now run Jupyter Notebook code cells directly in the Open Terminal file navigator, execute entire notebooks with a single click, edit and modify cells before running, and control the kernel - bringing full interactive notebook execution to the browser. Commit
  • 🗃️ Open Terminal SQLite browser. Users can now browse SQLite database files directly in the Open Terminal file navigator, viewing tables and running queries without downloading them first. Commit
  • 📉 Open Terminal Mermaid diagram rendering. Markdown files with Mermaid code blocks are now rendered as diagrams directly in the Open Terminal file navigator, making it easier to visualize flowcharts and other diagrams. Commit
  • 📓 Open Terminal Jupyter Notebook previews. Users can now preview Jupyter Notebook files directly in the Open Terminal file navigator, making it easier to view notebook content without downloading them first. Commit
  • 🔃 Open Terminal auto-refresh. The Open Terminal file navigator now automatically refreshes when the model writes or modifies files, keeping the view in sync without manual refresh. Commit
  • 📎 Open Terminal file copy button. Users can now copy file contents directly to clipboard in the Open Terminal file navigator with a single click, making it easier to quickly grab file content without downloading. Commit
  • 💻 Code syntax highlighting and XLSX improvements in Open Terminal. Code files now display with syntax highlighting in the Open Terminal file navigator, and XLSX spreadsheets now show column headers and row numbers for easier navigation. Commit
  • 🌳 Open Terminal JSON tree view. JSON, JSONC, JSONL, and JSON5 files now display as interactive collapsible tree views in the Open Terminal file navigator, and SVG files render as preview images with syntax highlighting support. Commit
  • 🛜 Open Terminal port viewing. Users can now view listening ports in the Open Terminal file navigator and open proxy connections to them directly from the UI. Commit
  • 🎬 Open Terminal video previews. Users can now preview video and audio files directly in the Open Terminal file navigator, making it easier to view media without downloading them first. Commit
  • ✏️ Open Terminal HTML editing. Users can now edit HTML source files in Open Terminal with CodeMirror editor, and the save button is properly hidden in preview mode. Commit
  • 📄 Open Terminal DOCX preview. Word documents generated or modified by the AI can now be viewed directly in the file navigator with formatted text, tables, and images rendered inline — no need to download and open in a separate application. Commit
  • 📊 Open Terminal XLSX preview. Excel spreadsheets in the file navigator now render as interactive tables with column headers and row numbers, making it easy to verify data the AI has generated or processed. Commit
  • 📽️ Open Terminal PPTX preview. PowerPoint presentations created by the AI can now be viewed slide-by-slide directly in the file navigator, enabling quick review and iteration without leaving the browser. Commit
  • 📁 Pyodide file system support. Users can now upload files for Python code execution in the code interpreter. Uploaded files are available in the /mnt/uploads/ directory, and code can write output files there for download. The file system persists across code executions within the same session. The code interpreter now also informs models that pip install is not available in the Pyodide environment, guiding them to use alternative approaches with available modules. #3583, Commit, Commit
  • 🧰 Tool files access. Tools can now access the files from the current chat context via the files property in their metadata, enabling more powerful tool integrations. Commit
  • Chat performance. Chat messages now load and display significantly faster thanks to optimized markdown rendering, eliminating delays when viewing messages with mathematical expressions. #22196, #20878
  • 📜 Message list performance. Improved message list rendering performance by optimizing array operations, reducing complexity from O(n²) to O(n). #22280
  • 🧵 Streaming markdown performance. Improved chat responsiveness during streaming by skipping unnecessary markdown re-parsing when the content hasn’t changed, eliminating wasted processing during model pauses. #22183
  • 🏃 Chat streaming performance. Chat streaming is now faster for users not using the voice call feature by skipping unnecessary text parsing that was running on every token. #22195
  • 🔖 Source list performance. Source lists in chat now render faster thanks to optimized computation that avoids unnecessary recalculations, including moving sourceIds computation to a reactive variable. #22279, Commit, Commit
  • 💨 Chat message tree operations. Chat message tree operations are now significantly faster, improving overall chat responsiveness. #22194
  • 🚀 Initial page load speed. Page load is now significantly faster thanks to deferred loading of the syntax highlighting library, reducing the initial JavaScript bundle by several megabytes. #22304
  • 🗓️ Action priority query optimization. Improved performance of action priority resolution by fixing an N+1 query pattern, reducing database round-trips when loading model actions. #22301
  • 🔑 API key middleware optimization. The API key restriction middleware was converted to a pure ASGI middleware for improved streaming performance, removing per-chunk call overhead. #22188
  • 🏎️ Model list loading performance. Model lists now load significantly faster thanks to optimized custom model matching that uses dictionary lookups instead of nested loops. #22299, Commit, Commit
  • ⏱️ Event call timeout configuration. Administrators can now configure the WebSocket event call timeout via the WEBSOCKET_EVENT_CALLER_TIMEOUT environment variable, giving users more time to respond to event_call forms instead of timing out after 60 seconds. #22222, #22220
  • 🔁 File refresh button visibility. The refresh button in the chat file navigator now appears when viewing files as well as directories, allowing users to refresh the file view at any time. Commit
  • 📂 Nested folders support. Users can now create subfolders within parent folders, improving organization of chats. A new “Create Subfolder” option is available in the folder context menu. #22073, Commit
  • 🔔 Banner loading on navigation. Admin-configured banners now load when navigating to the homepage, not just on page refresh, ensuring users see new banners immediately. #22340, #22180
  • 📡 System metrics via OpenTelemetry. Administrators can now monitor Python runtime and system metrics including CPU, memory, garbage collection, and thread counts through the existing OpenTelemetry pipeline. #22265
  • 🔄 General improvements. Various improvements were implemented across the application to enhance performance, stability, and security.
  • 🌐 Translations for French, Finnish, Turkish, German, Simplified Chinese, and Traditional Chinese were enhanced and expanded.
  • 🔍 Web search tool guidance. The web search tool description was updated to encourage direct usage without first checking knowledge bases, making it clearer for users who want to search the web immediately. #22264

Fixed

  • 🗄️ Migration memory usage. Database migration on large deployments now processes messages in batches instead of loading everything into memory, preventing out-of-memory errors during upgrades. #21542, #21539
  • 🔒 SQLCipher connection stability. Fixed a crash that occurred when using database encryption with SQLCipher by changing the default connection pool behavior, ensuring stable operation during multi-threaded operations like user signup. #22273, #22258
  • 🛑 Stop sequence error. Fixed a bug where setting stop sequences on a model caused the chat to fail with a split error, preventing any responses from being returned. The fix handles both string and array formats for stop tokens. #22251, Commit
  • 🔐 Microsoft OAuth refresh token fix. Fixed a bug where Microsoft OAuth refresh token requests failed with error AADSTS90009 by adding support for the required scope parameter. Users can now stay logged in reliably with Microsoft OAuth. #22359
  • 🛠️ Parameterless tool calls. Fixed parameterless tool calls failing during streaming by correcting the default arguments initialization, eliminating unnecessary model retries. #22189
  • 🔧 Tool call streaming fixes. Fixed two bugs where streaming tool calls failed silently for models like GPT-5: function names were incorrectly duplicated when sent in multiple delta chunks, and arguments containing multiple JSON objects were not properly split. Tools now execute correctly instead of failing without explanation. #22177, Commit, Commit
  • 🔗 Tool server URL trailing slash. Fixed tool server connection failures when URLs have trailing slashes by stripping them before path concatenation. Previously, URLs like “http://host:8080/v1/” + “/openapi.json” produced double-slash URLs that some servers rejected. #22116, #21917
  • 🛡️ Citation parser error handling. Fixed crashes when tools return error strings instead of expected data structures by adding type guards to the citation parser. The system now returns an empty source list instead of crashing with AttributeError. #22118
  • 🧠 Artifacts memory leak. Fixed a memory leak where Svelte store subscriptions in the Artifacts component were not properly cleaned up when the component unmounted, causing memory to accumulate over time. #22303
  • ♾️ Artifacts reactive loop fix. Fixed an infinite reactive loop in chat when artifacts are present by moving the animation frame logic outside the reactive block, preventing continuous re-rendering and CPU usage. #22238, Commit
  • 🔀 Artifact navigation. Artifact navigation via arrow buttons now works correctly; the selected artifact is no longer reset when content updates. #22239
  • 🧩 Artifact thinking block fix. Fixed a bug where HTML preview rendered code blocks inside thinking blocks for certain models like Mistral and Z.ai, causing stray code with “>” symbols to appear before the actual artifact. The fix strips thinking blocks before extracting code for artifact rendering. #22267, Commit
  • 💬 Floating Quick Actions availability. Fixed an issue where the “Ask” and “Explain” Floating Quick Actions were missing when selecting text in chats that used a model that is no longer available. #22149, #22139
  • 💡 Follow-up suggestions. Fixed follow-up suggestions not appearing by correcting contradictory format instructions in the prompt template, ensuring the LLM returns the correct JSON object format. #22212
  • 🔊 TTS thinking content. Fixed TTS playback reading think tags instead of skipping them by handling edge cases where code blocks inside thinking content prevented proper tag removal. #22237, #22197
  • 🎨 Button spinner alignment. Button spinners across multiple modals now align correctly and stay on the same line as the button text, fixing layout issues when loading states are displayed. #22227
  • 📶 Terminal keepalive. Terminal connections now stay active without being closed by idle timeouts from proxies or load balancers, and spurious disconnection messages no longer appear. Commit
  • 📥 Chat archive handler. The archive button in the chat navbar now actually archives the chat and refreshes the chat list, instead of doing nothing. #22229
  • 🐍 BeautifulSoup4 dependency. Added the missing BeautifulSoup4 package to backend requirements, fixing failures when using features that depend on HTML parsing. #22231
  • 👥 Group users default sort. Group members in the admin panel now sort by last active time by default instead of creation date, making it easier to find active users. #22211
  • 🔓 Tool access permissions. Users can now change tool and skill access permissions from private to public without errors. #22325, #22324
  • 🖥️ Open Terminal permission fix. Open Terminal is now visible without requiring “Allow Speech to Text” permission, fixing an issue where users without microphone access couldn’t access the terminal feature. #22374, Commit
  • 📌 Stale pinned models cleanup. Pinned models that are deleted or hidden are now automatically unpinned, keeping your pinned models list up to date. Commit
  • 📏 OpenTelemetry metric descriptions. Fixed conflicting metric instrument descriptions that caused warnings in the OpenTelemetry collector, resulting in cleaner telemetry logs for administrators. #22293
  • 🔢 Non-streaming token tracking. Token usage from non-streaming chat responses is now correctly saved to the database, fixing missing token counts in the Admin Panel analytics. Previously, non-streaming responses saved NULL usage data, causing messages to be excluded from token aggregation queries. #22166
  • ⌨️ Inline code typing. Fixed a bug where typing inline code with backticks incorrectly deleted the character immediately before the opening backtick, so text formatted as inline code now correctly produces the full word instead of missing the last character. #20417, Commit
  • 📝 Variable input newlines. Fixed a bug where variables containing newlines were not displayed correctly in chat messages, and input values from Windows systems are now properly normalized to use standard line endings. #21447, Commit
  • 📷 Android photo capture. Fixed an issue where the first photo taken in chat appeared completely black on some Android devices by using an alternative canvas export method. #22317
  • 🪟 Open Terminal Windows path fix. Fixed a bug where navigating back to parent directories on Windows added an incorrect leading slash, causing directory loads to fail. Paths are now properly normalized for Windows drive letters. #22352, Commit
  • 🖼️ Chat overview profile image sizing. Fixed a bug where profile images in the chat overview could shrink incorrectly in tight spaces. The images now maintain their proper size with the flex-shrink-0 property. #22261
  • 📨 Queued messages display. Fixed an issue where queued messages could be cut off or hidden. The queued messages area now scrolls properly when content exceeds the visible area, showing up to 25% of the viewport height. #22176
  • 🖌️ Image generation in temporary chats. Generated images now display correctly in temporary chat mode when using builtin image generation tools. Previously, images were not shown because the code was overwriting the image list with a null database response. #22330, #22309
  • 🤖 Ollama model unload fix. Fixed a bug where unloading a model from Ollama via the Open WebUI proxy failed with a “Field required” error for the prompt field. The proxy now correctly allows omitting the prompt when using keep_alive: 0 to unload models. #22260, Commit
  • 🏷️ Banner type dropdown fix. Fixed a bug where selecting a banner type required two clicks to register, as the first selection was being swallowed due to DOM structure changes. The dropdown now works correctly on the first click. #22378
  • 📈 Analytics URL encoding fix. Fixed a bug where the Analytics page failed to load data for models with slashes in their ID, such as “anthropic/claude-opus-4.6”. The frontend now properly URL-encodes forward slashes, allowing model analytics to load correctly. #22380, #22382
  • 📋 Analytics chat list duplicate fix. Fixed a bug where the Analytics page chat list threw an “each_key_duplicate” Svelte error when chat IDs were duplicated during pagination. The fix adds deterministic ordering to prevent duplicate entries. #22383
  • 📂 Folder knowledge base native tool call fix. Fixed a bug where folders with attached knowledge bases were querying the knowledge base twice when using native tool call mode. The fix now correctly separates knowledge files from regular attachments, letting the builtin query_knowledge_files tool handle knowledge searches instead of duplicating RAG queries. #22236, Commit, Commit

下载链接