open-webui v0.6.35 版本更新介绍
发布日期: 2025-11-06
版本号: v0.6.35
Open WebUI 版本 0.6.35(2025年11月6日发布)带来了多项重要更新。在功能新增方面,图像生成系统进行了重大升级,支持使用文本提示对现有图片进行全面编辑,兼容OpenAI、Gemini及ComfyUI引擎,并新增了Gemini 2.5 Flash和通义万相图像编辑集成。同时,为WebSocket连接增加了CORS来源验证以防范攻击,并实现了版本更新时的页面自动刷新。系统还为Python 3.13兼容性做了初步准备,并改进了图片压缩策略以保留原格式、提升加载性能。语音方面新增了对Mistral Voxtral文本转语音模型的支持,并引入了全局音频队列以防止播放重叠。此外,增强了ElevenLabs、OAuth、Mistral OCR的API端点配置灵活性,允许外部文档加载器转发用户信息头,并改进了侧边栏、模型编辑、代码块格式、快捷键提示及暗色模式样式等多处UI体验。 在问题修复上,重点解决了多项安全问题,包括直接连接中的SSE代码注入漏洞和“以富文本插入提示”中的DOM XSS漏洞。同时修复了MCP服务器连接中断导致的CPU占用、查询知识库时的UI冻结、多端点模型ID重复、长密码登录失败、OAuth客户端过期等错误。其他修复涵盖了聊天标题生成、参数验证、Ollama代理中的令牌限制、文档处理、图片/视频上传反馈、笔记PDF导出、Mermaid图表渲染、网页搜索代理支持、语音转录输入保留、功能删除后更新、工具调用上下文共享以及众多UI显示和交互细节问题。 最后,变更部分说明Firecrawl集成已改用官方SDK以提高可靠性,并且MinerU内容提取引擎因上游变化仅支持PDF文件。
更新内容 (中文)
[0.6.35] - 2025-11-06
新增功能
- 🖼️ 图像生成系统进行了全面升级,新增了多项重要功能:完整图像编辑支持,允许用户使用文本提示通过 OpenAI、Gemini 或 ComfyUI 引擎修改现有图像;添加了 Gemini 2.5 Flash Image (Nano Banana) 支持;集成了 Qwen Image Edit;解决了 base64 编码图像的显示问题;通过将参数整合到灵活的 JSON 参数字段中简化了 AUTOMATIC1111 配置;并为 ComfyUI 工作流管理增强了带有代码编辑器模态框的用户界面。#17434, #16976, 提交, 提交, 提交, 提交
- 🔒 为 WebSocket 连接添加了 CORS 源验证,作为纵深防御安全措施,以抵御跨站 WebSocket 劫持攻击。#18411, #18410
- 🔄 当通过 WebSocket 连接检测到版本更新时,现在会自动刷新页面,确保用户始终运行最新版本,避免缓存问题。提交
- 🐍 通过更新具有安全增强和密码学改进的依赖项,为 Python 3.13 兼容性进行了实验性的初步准备。#18430, #18424
- ⚡ 图像压缩现在保留原始图像格式,而不是转换为 PNG,显著减小了文件大小并提高了聊天加载性能。#18506
- 🎤 添加了对 Mistral Voxtral 模型的文本转语音支持,包括 voxtral-small 和 voxtral-mini 模型,同时支持转录和聊天完成 API。#18934
- 🔊 文本转语音现在使用全局音频队列系统来防止重叠播放,确保一次只有一个 TTS 实例播放,具有正确的停止/启动控制,并在消息间切换时自动清理。#16152, #18744, #16150
- 🔊 ELEVENLABS_API_BASE_URL 环境变量现在允许配置自定义 ElevenLabs API 端点,支持满足欧盟居住权 API 要求。#18402
- 🔐 OAUTH_ROLES_SEPARATOR 环境变量现在允许为包含逗号的 OAuth 角色自定义角色分隔符,对指定为 LDAP 语法的角色很有用。#18572
- 📄 当启用 ENABLE_FORWARD_USER_INFO_HEADERS 时,外部文档加载器现在可以选择性地转发用户信息头,以便对外部服务进行成本跟踪、审计日志和使用分析。#18731
- 📄 MISTRAL_OCR_API_BASE_URL 环境变量现在允许配置自定义 Mistral OCR API 端点,提供灵活的部署选项。提交
- ⌨️ 侧边栏按钮上现在显示键盘快捷键提示,并重构了快捷键模态框,能准确反映不同键盘布局下的所有可用热键。#18473
- 🛠️ 在模型编辑页面上,当鼠标悬停在工具名称上时,工具提示现在会显示工具描述,提高了易用性并提供了即时上下文。#18707
- 📝 从搜索模态框选择“创建新笔记”现在会立即创建一个新的私有笔记并在编辑器中打开,而不是导航到通用的笔记页面。#18255
- 🖨️ 代码块输出现在保留空白格式并使用等宽字体,以准确反映终端行为。#18352
- ✏️ 工作区部分的模型三点菜单中现在有编辑按钮,可快速访问模型编辑功能,菜单已重新组织以提升用户体验,编辑、克隆、复制链接和分享选项被逻辑分组。#18574
- 📌 侧边栏模型部分现在可折叠,允许用户展开和折叠固定的模型列表,以改善侧边栏组织。提交
- 🌙 为选择元素添加了使用 Tailwind CSS 类的暗色模式样式,提高了界面一致性。#18636
- 🔄 在前端和后端实施了多项改进,以增强性能、稳定性和安全性。
- 🌐 增强并扩展了葡萄牙语(巴西)、希腊语、德语、繁体中文、简体中文、西班牙语、格鲁吉亚语、丹麦语和爱沙尼亚语的翻译。
修复
- 🔒 通过阻止来自不受信任的外部模型服务器的事件发送,解决了直接连接中的服务器发送事件(SSE)代码注入漏洞;不再支持来自直接连接模型服务器的事件发送器,从而防止在用户浏览器中执行任意 JavaScript。提交
- 🛡️ 通过在渲染前使用 DOMPurify 清理 HTML 内容,解决了“以富文本插入提示”中的 DOM XSS 漏洞。提交
- ⚙️ 通过反转断开连接顺序以遵循 LIFO 并正确处理异常,防止了 MCP 服务器取消范围损坏,解决了在恢复具有过期令牌的聊天或使用多个可流式 MCP 服务器时 CPU 使用率达到 100% 的问题。#18537
- 🔧 通过正确初始化引文中的距离数组,解决了查询包含不一致距离指标的知识库模型时的 UI 冻结问题。#18585
- 🤖 来自多个 OpenAI 端点的重复模型 ID 现在在服务器端自动去重,防止聚合多个提供商的统一网关代理用户出现前端崩溃。提交
- 🔐 通过安全地截断过大的密码以兼容 bcrypt,解决了密码超过 72 字节时的登录失败问题。#18157
- 🔐 OAuth 2.1 MCP 工具连接现在在存储的客户端 ID 变得过时时自动重新注册客户端,防止在编辑工具端点后出现 unauthorized_client 错误,并为回调失败提供详细的错误消息。#18415, #18309
- 🔓 当启用 trust_env 时,OAuth 2.1 发现、元数据获取和动态客户端注册现在正确使用 HTTP 代理环境变量。提交
- 🔌 MCP 服务器连接失败现在会在聊天界面显示清晰的错误消息,而不是静默失败。#18892, #18889
- 💬 即使界面设置中禁用了标题自动生成,聊天标题现在也能正确生成,修复了聊天会一直标记为“新聊天”的问题。#18761, #18717, #6478
- 🔍 通过正确验证和处理“order_by”参数以确保请求的列存在,防止了聊天查询错误。#18400, #18452
- 🔧 代理到 Ollama 时不再丢弃根级别的 max_tokens 参数,而是正确转换为 num_predict 以按预期限制输出令牌长度。#18618
- 🔑 自托管的 Marker 实例现在可以无需 API 密钥即可使用,同时为 datalab Marker 服务用户保持其可选。#18617
- 🔧 通过将模型路由器端点更改为“/list”,解决了“/api/v1/models”和“/api/v1/models/”之间的 OpenAPI 规范端点冲突,防止了生成 TypeScript API 客户端时出现重复的 operationId 错误。#18758
- 🏷️ 模型选择器和工作区模型页面中的模型标签现在不区分大小写地进行去重,防止了不同大小写的重复条目出现在过滤器下拉菜单中。#18716, #18711
- 📄 通过修复“DOCLING_PARAMS”参数名称中的拼写错误,Docling RAG 参数配置现在可以在管理界面正确保存。#18390
- 📃 Tika 文档处理现在自动检测内容类型,而不是依赖可能不正确的浏览器提供的 MIME 类型,提高了处理 RTF 等格式的文件准确性。#18765, #18683
- 🖼️ 当内容提取引擎不支持这些文件类型时,图像和视频上传到知识库现在会显示适当的错误消息,而不是显示无限旋转器。#18514
- 📝 笔记 PDF 导出现在可以正确检测并一致地在笔记列表和单个笔记页面应用暗色模式样式,使用共享实用函数以消除代码重复。#18526
- 💭 即使用户消息中存在相同的标签,推理内容的详情标签现在也能被正确识别和渲染。#18840, #18294
- 📊 Mermaid 和 Vega 渲染错误现在内联显示在代码旁边,而不是显示重复的 toast 通知,改善了当模型生成无效图表语法时的用户体验。提交
- 📈 Mermaid 图表渲染错误不再导致 UI 不可用或在输入框下方显示错误消息。#18493, #18340
- 🔗 Web 搜索的 SSL 验证现在是异步的,防止网站在 Web 搜索操作期间挂起。#18714, #18699
- 🌍 当启用 WEB_SEARCH_TRUST_ENV 时,Web 搜索结果现在正确使用 HTTP 代理环境变量。#18667, #7008
- 🔍 Google 可编程搜索引擎现在正确包含 referer 头,支持在 Google Cloud Console 中配置了 HTTP referrer 限制的 API 密钥。#18871, #18870
- ⚡ YouTube 视频字幕获取现在在使用代理连接时可以正常工作。#18419
- 🎙️ 语音转文字转录不再删除或替换提示输入框中的现有文本,正确保留了任何先前输入的内容。#18540
- 🎙️ “语音转录后立即自动发送”设置现在可以正常工作,并在启用时自动发送转录文本。#18466
- ⚙️ 通过在 sessionStorage 为空时初始化默认值,重新打开选项卡或开始新会话时聊天设置现在能正确加载。#18438
- 🔎 侧边栏中的文件夹标签搜索现在通过将所有空格替换为下划线来正确处理包含多个空格的文件夹名称。提交
- 🛠️ 函数页面在删除函数后现在立即更新,无需手动重新加载页面。#18912, #18908
- 🛠️ 原生工具调用现在正确支持具有共享上下文的顺序工具调用,允许工具访问同一对话中先前工具执行的图像和数据。#18664
- 🎯 模型编辑器中全局启用的操作现在正确作为全局应用,而不是被当作禁用。#18577
- 📋 通过“{{CLIPBOARD}}”提示变量粘贴的剪贴板图像现在在发送到后端之前正确转换为 base64 格式,解决了 base64 编码错误。#18432, #18425
- 📋 切换到不支持文件上传的模型时,文件列表现在会被清除,防止文件发送到不兼容的模型。#18496
- 📂 当文件夹为空时,“移动”菜单不再显示。#18484
- 📁 文件夹和频道创建现在会验证名称不为空,防止创建没有名称的文件夹或频道,并在尝试时显示错误提示。#18564
- 🖊️ 富文本输入在粘贴包含比较运算符的代码时,不再删除等号之间的文本。#18551
- ⌨️ 键盘快捷键现在通过使用 Keyboard API 检测用户的布局来显示国际和非 QWERTY 键盘布局的正确按键。#18533
- 🌐 当模型不支持文件上传时,“附加网页”按钮现在显示正确的禁用样式。#18483
- 🎚️ 当未启用任何集成时,集成菜单中不再显示分隔线。#18487
- 📱 对于没有管理员或明确聊天控制权限的用户,聊天控制按钮现在在移动端被正确隐藏。#18641
- 📍 用户菜单、下载子菜单和移动子菜单现在被重新定位,以防止在聊天控制侧边栏打开时与其重叠。提交
- 🎯 当没有可显示的制品时,制品按钮不再出现在聊天菜单中。提交
- 🎨 打开包含制品的现有对话时,制品视图现在会自动显示,改善了用户体验。#18215
- 🖌️ 格式化工具栏不再隐藏在聊天中的图像或代码块下方,现在正确显示在所有消息内容上方。
- 🎨 通过在系统提示为空时正确渲染聊天组件,防止了系统指令附近的布局偏移。#18594
- 📐 通过添加稳定的滚动条槽位,防止了由滚动条出现引起的模态框布局偏移。#18591
- ✨ 用户菜单下拉项中的图标和标签之间的间距现在一致。#18595
- 💬 通过使用复合键实现适当的键管理,重复的提示建议不再导致网页冻结或抛出 JavaScript 错误。#18841, #18566
- 🔍 通过修复先前导致越界错误的索引边界检查,搜索模态框中的聊天预览加载现在对所有搜索结果都能正确工作。#18911
- ♿ 通过将消息包装在具有描述性 aria-label 的语义元素中,添加“助理正在输入”和“响应完成”公告以增强屏幕阅读器支持,改善了可访问性。#18735
- 🔒 移除了 OAuth 2.1 流程中错误的 await 调用,消除了身份验证期间的记录异常。#18236
- 🛡️ 移除了清单文件中重复的 crossorigin 属性。#18413
变更
- 🔄 Firecrawl 集成已重构为使用官方 Firecrawl SDK 而不是直接 HTTP 请求和 langchain_community FireCrawlLoader,通过批量抓取支持和增强的错误处理提高了可靠性和性能。#18635
- 📄 MinerU 内容提取引擎现在仅支持 PDF 文件,这是因为在 2.0.0 版本中上游移除了 LibreOffice 文档转换功能;需要处理 Office 文档的用户应先将其转换为 PDF 格式。#18448
[!TIP]
寻找 企业版计划? – 今天就联系我们的销售团队!获取增强功能,包括自定义主题和品牌、服务水平协议(SLA)支持等!
👏 非常感谢我们出色的贡献者们的辛勤工作和奉献,使这个版本得以实现: @joaoback, @kaiwinut, @taylorwilsdon, @Classic298, @duncansmart, @silentoplayz, @sinejespersen, @acomarcho, @Davixk, @Ithanil, @zhsh-12, @athoik, @acomarcho, @wangweixuan, @ShirasawaSama, @acwoo97, @IllimarR, @rgaricano, @OAburub, @iPagar, @mkhludnev, @jmleksan, @attilaolah, @htulipe, @ricdikulous, @andrewbbaek, @Tsafaras, @Classic298, @ivanostanin, @wei840222
赞助者 🙌
🚀 我们想衷心感谢我们出色的赞助者的慷慨支持(注意:我们已将私人赞助者从此列表中排除。如果您希望在此处展示,请随时联系我们!)
@amd, @roosi-gmbh, @rndmcnlly, @feddersen-group, @SRKConsulting, @mushmax, @icanbwell, @agency-agency, @Classic298, @loitragg, @haka4githu6, @GenieDev101, @CubicleGangster, @TOWaB, @comet-ml, @FominVO, @catalyst-net-nz, @JrdnHans, @hkosm, @VeroFess, @joaoback
更新内容 (原始)
[0.6.35] - 2025-11-06
Added
- 🖼️ Image generation system received a comprehensive overhaul with major new capabilities including full image editing support allowing users to modify existing images using text prompts with OpenAI, Gemini, or ComfyUI engines, adding Gemini 2.5 Flash Image (Nano Banana) support, Qwen Image Edit integration, resolution of base64-encoded image display issues, streamlined AUTOMATIC1111 configuration by consolidating parameters into a flexible JSON parameters field, and enhanced UI with a code editor modal for ComfyUI workflow management. #17434, #16976, Commit, Commit, Commit, Commit
- 🔒 CORS origin validation was added to WebSocket connections as a defense-in-depth security measure against cross-site WebSocket hijacking attacks. #18411, #18410
- 🔄 Automatic page refresh now occurs when a version update is detected via WebSocket connection, ensuring users always run the latest version without cache issues. Commit
- 🐍 Experimental initial preparations for Python 3.13 compatibility by updating dependencies with security enhancements and cryptographic improvements. #18430, #18424
- ⚡ Image compression now preserves the original image format instead of converting to PNG, significantly reducing file sizes and improving chat loading performance. #18506
- 🎤 Mistral Voxtral model support was added for text-to-speech, including voxtral-small and voxtral-mini models with both transcription and chat completion API support. #18934
- 🔊 Text-to-speech now uses a global audio queue system to prevent overlapping playback, ensuring only one TTS instance plays at a time with proper stop/start controls and automatic cleanup when switching between messages. #16152, #18744, #16150
- 🔊 ELEVENLABS_API_BASE_URL environment variable now allows configuration of custom ElevenLabs API endpoints, enabling support for EU residency API requirements. #18402
- 🔐 OAUTH_ROLES_SEPARATOR environment variable now allows custom role separators for OAuth roles that contain commas, useful for roles specified in LDAP syntax. #18572
- 📄 External document loaders can now optionally forward user information headers when ENABLE_FORWARD_USER_INFO_HEADERS is enabled, enabling cost tracking, audit logs, and usage analytics for external services. #18731
- 📄 MISTRAL_OCR_API_BASE_URL environment variable now allows configuration of custom Mistral OCR API endpoints for flexible deployment options. Commit
- ⌨️ Keyboard shortcut hints are now displayed on sidebar buttons with a refactored shortcuts modal that accurately reflects all available hotkeys across different keyboard layouts. #18473
- 🛠️ Tooltips now display tool descriptions when hovering over tool names on the model edit page, improving usability and providing immediate context. #18707
- 📝 “Create a new note” from the search modal now immediately creates a new private note and opens it in the editor instead of navigating to the generic notes page. #18255
- 🖨️ Code block output now preserves whitespace formatting with monospace font to accurately reflect terminal behavior. #18352
- ✏️ Edit button is now available in the three-dot menu of models in the workspace section for quick access to model editing, with the menu reorganized for better user experience and Edit, Clone, Copy Link, and Share options logically grouped. #18574
- 📌 Sidebar models section is now collapsible, allowing users to expand and collapse the pinned models list for better sidebar organization. Commit
- 🌙 Dark mode styles for select elements were added using Tailwind CSS classes, improving consistency across the interface. #18636
- 🔄 Various improvements were implemented across the frontend and backend to enhance performance, stability, and security.
- 🌐 Translations for Portuguese (Brazil), Greek, German, Traditional Chinese, Simplified Chinese, Spanish, Georgian, Danish, and Estonian were enhanced and expanded.
Fixed
- 🔒 Server-Sent Event (SSE) code injection vulnerability in Direct Connections is resolved by blocking event emission from untrusted external model servers; event emitters from direct connected model servers are no longer supported, preventing arbitrary JavaScript execution in user browsers. Commit
- 🛡️ DOM XSS vulnerability in “Insert Prompt as Rich Text” is resolved by sanitizing HTML content with DOMPurify before rendering. Commit
- ⚙️ MCP server cancellation scope corruption is prevented by reversing disconnection order to follow LIFO and properly handling exceptions, resolving 100% CPU usage when resuming chats with expired tokens or using multiple streamable MCP servers. #18537
- 🔧 UI freeze when querying models with knowledge bases containing inconsistent distance metrics is resolved by properly initializing the distances array in citations. #18585
- 🤖 Duplicate model IDs from multiple OpenAI endpoints are now automatically deduplicated server-side, preventing frontend crashes for users with unified gateway proxies that aggregate multiple providers. Commit
- 🔐 Login failures with passwords longer than 72 bytes are resolved by safely truncating oversized passwords for bcrypt compatibility. #18157
- 🔐 OAuth 2.1 MCP tool connections now automatically re-register clients when stored client IDs become stale, preventing unauthorized_client errors after editing tool endpoints and providing detailed error messages for callback failures. #18415, #18309
- 🔓 OAuth 2.1 discovery, metadata fetching, and dynamic client registration now correctly use HTTP proxy environment variables when trust_env is enabled. Commit
- 🔌 MCP server connection failures now display clear error messages in the chat interface instead of silently failing. #18892, #18889
- 💬 Chat titles are now properly generated even when title auto-generation is disabled in interface settings, fixing an issue where chats would remain labeled as “New chat”. #18761, #18717, #6478
- 🔍 Chat query errors are prevented by properly validating and handling the “order_by” parameter to ensure requested columns exist. #18400, #18452
- 🔧 Root-level max_tokens parameter is no longer dropped when proxying to Ollama, properly converting to num_predict to limit output token length as intended. #18618
- 🔑 Self-hosted Marker instances can now be used without requiring an API key, while keeping it optional for datalab Marker service users. #18617
- 🔧 OpenAPI specification endpoint conflict between “/api/v1/models” and “/api/v1/models/” is resolved by changing the models router endpoint to “/list”, preventing duplicate operationId errors when generating TypeScript API clients. #18758
- 🏷️ Model tags are now de-duplicated case-insensitively in both the model selector and workspace models page, preventing duplicate entries with different capitalization from appearing in filter dropdowns. #18716, #18711
- 📄 Docling RAG parameter configuration is now correctly saved in the admin UI by fixing the typo in the “DOCLING_PARAMS” parameter name. #18390
- 📃 Tika document processing now automatically detects content types instead of relying on potentially incorrect browser-provided mime-types, improving file handling accuracy for formats like RTF. #18765, #18683
- 🖼️ Image and video uploads to knowledge bases now display proper error messages instead of showing an infinite spinner when the content extraction engine does not support these file types. #18514
- 📝 Notes PDF export now properly detects and applies dark mode styling consistently across both the notes list and individual note pages, with a shared utility function to eliminate code duplication. #18526
- 💭 Details tags for reasoning content are now correctly identified and rendered even when the same tag is present in user messages. #18840, #18294
- 📊 Mermaid and Vega rendering errors now display inline with the code instead of showing repetitive toast notifications, improving user experience when models generate invalid diagram syntax. Commit
- 📈 Mermaid diagram rendering errors no longer cause UI unavailability or display error messages below the input box. #18493, #18340
- 🔗 Web search SSL verification is now asynchronous, preventing the website from hanging during web search operations. #18714, #18699
- 🌍 Web search results now correctly use HTTP proxy environment variables when WEB_SEARCH_TRUST_ENV is enabled. #18667, #7008
- 🔍 Google Programmable Search Engine now properly includes referer headers, enabling API keys with HTTP referrer restrictions configured in Google Cloud Console. #18871, #18870
- ⚡ YouTube video transcript fetching now works correctly when using a proxy connection. #18419
- 🎙️ Speech-to-text transcription no longer deletes or replaces existing text in the prompt input field, properly preserving any previously entered content. #18540
- 🎙️ The “Instant Auto-Send After Voice Transcription” setting now functions correctly and automatically sends transcribed text when enabled. #18466
- ⚙️ Chat settings now load properly when reopening a tab or starting a new session by initializing defaults when sessionStorage is empty. #18438
- 🔎 Folder tag search in the sidebar now correctly handles folder names with multiple spaces by replacing all spaces with underscores. Commit
- 🛠️ Functions page now updates immediately after deleting a function, removing the need for a manual page reload. #18912, #18908
- 🛠️ Native tool calling now properly supports sequential tool calls with shared context, allowing tools to access images and data from previous tool executions in the same conversation. #18664
- 🎯 Globally enabled actions in the model editor now correctly apply as global instead of being treated as disabled. #18577
- 📋 Clipboard images pasted via the “{{CLIPBOARD}}” prompt variable are now correctly converted to base64 format before being sent to the backend, resolving base64 encoding errors. #18432, #18425
- 📋 File list is now cleared when switching to models that do not support file uploads, preventing files from being sent to incompatible models. #18496
- 📂 Move menu no longer displays when folders are empty. #18484
- 📁 Folder and channel creation now validates that names are not empty, preventing creation of folders or channels with no name and showing an error toast if attempted. #18564
- 🖊️ Rich text input no longer removes text between equals signs when pasting code with comparison operators. #18551
- ⌨️ Keyboard shortcuts now display the correct keys for international and non-QWERTY keyboard layouts by detecting the user’s layout using the Keyboard API. #18533
- 🌐 “Attach Webpage” button now displays with correct disabled styling when a model does not support file uploads. #18483
- 🎚️ Divider no longer displays in the integrations menu when no integrations are enabled. #18487
- 📱 Chat controls button is now properly hidden on mobile for users without admin or explicit chat control permissions. #18641
- 📍 User menu, download submenu, and move submenu are now repositioned to prevent overlap with the Chat Controls sidebar when it is open. Commit
- 🎯 Artifacts button no longer appears in the chat menu when there are no artifacts to display. Commit
- 🎨 Artifacts view now automatically displays when opening an existing conversation containing artifacts, improving user experience. #18215
- 🖌️ Formatting toolbar is no longer hidden under images or code blocks in chat and now displays correctly above all message content.
- 🎨 Layout shift near system instructions is prevented by properly rendering the chat component when system prompts are empty. #18594
- 📐 Modal layout shift caused by scrollbar appearance is prevented by adding a stable scrollbar gutter. #18591
- ✨ Spacing between icon and label in the user menu dropdown items is now consistent. #18595
- 💬 Duplicate prompt suggestions no longer cause the webpage to freeze or throw JavaScript errors by implementing proper key management with composite keys. #18841, #18566
- 🔍 Chat preview loading in the search modal now works correctly for all search results by fixing an index boundary check that previously caused out-of-bounds errors. #18911
- ♿ Screen reader support was enhanced by wrapping messages in semantic elements with descriptive aria-labels, adding “Assistant is typing” and “Response complete” announcements for improved accessibility. #18735
- 🔒 Incorrect await call in the OAuth 2.1 flow is removed, eliminating a logged exception during authentication. #18236
- 🛡️ Duplicate crossorigin attribute in the manifest file was removed. #18413
Changed
- 🔄 Firecrawl integration was refactored to use the official Firecrawl SDK instead of direct HTTP requests and langchain_community FireCrawlLoader, improving reliability and performance with batch scraping support and enhanced error handling. #18635
- 📄 MinerU content extraction engine now only supports PDF files following the upstream removal of LibreOffice document conversion in version 2.0.0; users needing to process office documents should convert them to PDF format first. #18448
[!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: @joaoback, @kaiwinut, @taylorwilsdon, @Classic298, @duncansmart, @silentoplayz, @sinejespersen, @acomarcho, @Davixk, @Ithanil, @zhsh-12, @athoik, @acomarcho, @wangweixuan, @ShirasawaSama, @acwoo97, @IllimarR, @rgaricano, @OAburub, @iPagar, @mkhludnev, @jmleksan, @attilaolah, @htulipe, @ricdikulous, @andrewbbaek, @Tsafaras, @Classic298, @ivanostanin, @wei840222
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, @agency-agency, @Classic298, @loitragg, @haka4githu6, @GenieDev101, @CubicleGangster, @TOWaB, @comet-ml, @FominVO, @catalyst-net-nz, @JrdnHans, @hkosm, @VeroFess, @joaoback