mirror of
https://github.com/open-webui/open-webui.git
synced 2026-10-05 02:41:34 +00:00
Merge 4981a9d8f6 into f50f9e6252
This commit is contained in:
commit
4f61e1b782
1 changed files with 176 additions and 0 deletions
176
CHANGELOG.md
176
CHANGELOG.md
|
|
@ -5,6 +5,182 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.11.5] - 2026-10-01
|
||||
|
||||
### Added
|
||||
|
||||
- 📡 **Lighter multi-instance streaming.** Deployments that share websocket traffic through Redis use less CPU while streaming, because each server now skips live updates for rooms it has no one in; set "WEBSOCKET_REDIS_ROOM_CHANNELS" to false to restore the previous delivery. [#28818](https://github.com/open-webui/open-webui/pull/28818)
|
||||
- 📑 **Word and PowerPoint files from code.** The code interpreter can now create Word documents and PowerPoint decks that open in Office, using libraries bundled with Open WebUI so it also works without internet access. [#30382](https://github.com/open-webui/open-webui/pull/30382), [#30361](https://github.com/open-webui/open-webui/issues/30361)
|
||||
- 🧲 **Reordering filtered model lists.** Models on the admin models page can now be dragged into place while a search, view or tag filter is active, with every model hidden by the filter keeping its position. [#30390](https://github.com/open-webui/open-webui/pull/30390), [#29634](https://github.com/open-webui/open-webui/issues/29634)
|
||||
- 🖨️ **Images in note PDFs.** Downloading a note as a PDF now includes the images pasted into it, where the PDF held only the title and text. [#30975](https://github.com/open-webui/open-webui/pull/30975), [#30974](https://github.com/open-webui/open-webui/issues/30974)
|
||||
- 🕵️ **Tavily search depth.** Administrators can now choose how deep Tavily web searches go, from ultra-fast to advanced, in the Tavily settings of the web search page or through "TAVILY_SEARCH_DEPTH", separately from the existing extract depth. [#31308](https://github.com/open-webui/open-webui/pull/31308), [#29891](https://github.com/open-webui/open-webui/issues/29891)
|
||||
- 🏎️ **Native hybrid search on Milvus.** Hybrid search on Milvus 2.5 and newer, with one collection per knowledge base or with multitenancy, now runs inside Milvus with its built-in BM25 full-text search next to the vectors in the same collection, where every search loaded every chunk of the collection into Open WebUI and scored it there, making hybrid search on Milvus much faster and lighter on memory; the BM25 weight setting works the same way it does on pgvector. [#31645](https://github.com/open-webui/open-webui/pull/31645), [#31660](https://github.com/open-webui/open-webui/pull/31660), [#26243](https://github.com/open-webui/open-webui/issues/26243)
|
||||
- 🪙 **Input and output tokens in analytics.** Hovering, focusing or clicking the token total on the admin Analytics dashboard now shows how many of those tokens were input and how many were output. [Commit](https://github.com/open-webui/open-webui/commit/7e317fbada4acc5c48f326aa5935b3928275ea78), [#31646](https://github.com/open-webui/open-webui/issues/31646)
|
||||
- 🚀 **Faster JSON handling across the app.** Every instance now reads and writes JSON with orjson, speeding up request and response bodies, streamed provider responses and live socket updates, which now encode about 17 times and decode about 3 times faster. [#31616](https://github.com/open-webui/open-webui/pull/31616)
|
||||
- 🎚️ **Separate switches for Tools, Functions and tool servers.** Administrators can now turn off workspace Tools, Functions or external tool servers on their own with "ENABLE_TOOLS", "ENABLE_FUNCTIONS" and "ENABLE_TOOL_SERVERS", so in-process plugins can be switched off while OpenAPI, MCP and Open Terminal servers keep working, or the other way round. [Commit](https://github.com/open-webui/open-webui/commit/f50f9e6252209760d0b96f090766e91fb826ecba), [#31509](https://github.com/open-webui/open-webui/issues/31509)
|
||||
- 🔄 **General improvements.** Various improvements were implemented across the application to enhance performance, stability, and security.
|
||||
- 🌐 **Translation updates.** Translations for German, Italian, Turkish, Persian, Indonesian, Catalan, French, Malay and Simplified Chinese were enhanced and expanded.
|
||||
|
||||
### 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](https://github.com/open-webui/open-webui/security)
|
||||
- 🚷 **Revoked access ends live updates.** Removing someone's access to a shared channel or a note, or deleting it, now also stops the live messages and edits their open sessions were still receiving from it. [Commit](https://github.com/open-webui/open-webui/commit/e93a59f4dd8eea5b1df55b4e6dcc57465887b95d)
|
||||
- 📄 **Docling file names.** A document sent to a Docling server for extraction now carries only its file name, where it previously revealed the full path the file is stored under on the server. [#30357](https://github.com/open-webui/open-webui/pull/30357), [#30352](https://github.com/open-webui/open-webui/issues/30352)
|
||||
- 🔒 **Share links of deleted folders.** Deleting a folder together with its chats now also removes those chats' share links, where the shared conversations stayed reachable through them. [#31306](https://github.com/open-webui/open-webui/pull/31306), [#31305](https://github.com/open-webui/open-webui/issues/31305)
|
||||
- 🙈 **Admin chat access setting enforced everywhere.** With "ENABLE_ADMIN_CHAT_ACCESS" turned off, administrators can no longer read, change, share, clone, delete, message into or attach other users' chats through direct API requests, where only opening them was refused. [#31416](https://github.com/open-webui/open-webui/pull/31416), [#31413](https://github.com/open-webui/open-webui/issues/31413)
|
||||
- 👥 **Direct message members.** The person who started a direct message can no longer add or remove people through the API, where someone added this way could read the whole earlier conversation and the original pair ended up in a second, empty direct message. [#31575](https://github.com/open-webui/open-webui/pull/31575), [#31570](https://github.com/open-webui/open-webui/issues/31570)
|
||||
- 📡 **Channels permission for live messages and automations.** Users without the Channels permission no longer receive live channel messages, and an automation that posts into a channel no longer runs once its creator has lost that permission. [#31578](https://github.com/open-webui/open-webui/pull/31578), [#31577](https://github.com/open-webui/open-webui/pull/31577)
|
||||
- 🫥 **Temporary chats leave no sub-agent chats.** Temporary chats no longer offer the model sub-agents or timers, whose conversations were saved on the server although a temporary chat should leave nothing behind. [#31573](https://github.com/open-webui/open-webui/pull/31573), [#31567](https://github.com/open-webui/open-webui/issues/31567)
|
||||
- 🧾 **Passwords kept out of the audit log.** With request auditing on, a new password from a password change and passwords typed into admin settings such as YaCy or Jupyter are now masked in the audit log, where only fields named exactly "password" were. [#31622](https://github.com/open-webui/open-webui/pull/31622)
|
||||
- 👁️ **Cloning shared chats checks access first.** Cloning a shared chat now checks access to the share before its content is read, the same order the shared chat view uses. [#30388](https://github.com/open-webui/open-webui/pull/30388)
|
||||
- 📁 **Files attached to folders.** Files attached to a folder when it is created, or newly added by someone editing a shared folder, are now checked against that person's own access, so a folder can no longer be used to reach files they cannot open. [#30442](https://github.com/open-webui/open-webui/pull/30442)
|
||||
- 🚪 **Removed channel members stop receiving messages.** Removing someone from a group channel now also disconnects their open sessions from it, so they stop receiving its live messages right away. [#30446](https://github.com/open-webui/open-webui/pull/30446)
|
||||
- 🗝️ **Stronger generated secret key.** The secret key Open WebUI generates when "WEBUI_SECRET_KEY" is not set now comes from a cryptographically secure random source. [#30441](https://github.com/open-webui/open-webui/pull/30441)
|
||||
- 🐌 **Wildcard searches on SQLite.** Searches on SQLite can no longer tie up the server with a search term full of wildcards, which could make matching take exponentially long. [#30393](https://github.com/open-webui/open-webui/pull/30393)
|
||||
- 🌀 **Message cleanup for background tasks.** Cleaning details blocks and images out of messages before titles, tags and follow-ups are generated can no longer stall on crafted message content. [#30394](https://github.com/open-webui/open-webui/pull/30394)
|
||||
- 🗃️ **Live document saves limited to notes.** Live collaborative edits are now only saved for note documents, the only documents that have a save handler. [#30395](https://github.com/open-webui/open-webui/pull/30395)
|
||||
- 🛑 **Sub-agent results after a role change.** A chat now only continues with a finished sub-agent's result while its owner still has an active role, the same check timers already make, so a deactivated or pending account no longer keeps generating replies. [#31451](https://github.com/open-webui/open-webui/pull/31451)
|
||||
- 🔗 **Only safe file links open.** File attachment links and file links in code execution results now open only web, mail, phone and relative links, the same check links in chat messages go through. [#31491](https://github.com/open-webui/open-webui/pull/31491)
|
||||
- 🎛️ **Tool approval mode no longer restored from drafts.** Restoring a saved message draft no longer switches the chat's tool approval mode, which could save settings and approve tools without asking. [Commit](https://github.com/open-webui/open-webui/commit/332237662f446f8264cd4db10a1b4513ba5fb76b)
|
||||
- 🧱 **Safety checks for generated image downloads.** When an image generation backend returns a link instead of the image, the download now goes through the same safety checks as other external image downloads, while links on the configured ComfyUI address stay trusted. [#31623](https://github.com/open-webui/open-webui/pull/31623)
|
||||
- 🎫 **Login check when loading the app settings.** Loading the app's settings now uses the same login check as every other request, so a session that is no longer valid only gets the logged-out settings. [#31621](https://github.com/open-webui/open-webui/pull/31621)
|
||||
- 📝 **Notes permission for live note editing.** Opening a note for live collaborative editing now requires the Notes permission, like the rest of the Notes feature. [#31552](https://github.com/open-webui/open-webui/pull/31552)
|
||||
- 📆 **Calendar tools check calendar access.** Editing or deleting a calendar event through the chat tools now checks access to the event's calendar the same way the calendar API does. [#31537](https://github.com/open-webui/open-webui/pull/31537)
|
||||
- 🔑 **OAuth sessions survive parallel requests.** Chatting through a connection that forwards your single sign-on token no longer logs your OAuth session out when two requests renew an expiring token at once against a provider that rotates refresh tokens, including requests handled by different workers or replicas sharing Redis, which previously cost every following request its token until you signed in again. [#30426](https://github.com/open-webui/open-webui/pull/30426), [#30450](https://github.com/open-webui/open-webui/pull/30450), [#30416](https://github.com/open-webui/open-webui/issues/30416)
|
||||
- 🪪 **Token exchange group mapping.** With OAuth group mapping on, signing in through token exchange now assigns groups from the token's own groups claim when the provider's user info leaves it out, as it already did for roles. [Commit](https://github.com/open-webui/open-webui/commit/f412538756f745b531036840bc0a153e62b0f003)
|
||||
- 🧱 **Blocked OAuth groups not created.** With automatic group creation on, groups matching "OAUTH_BLOCKED_GROUPS" are no longer created at sign-in, where a provider sending a user's full directory membership could fill the groups list with thousands of empty groups. [#31316](https://github.com/open-webui/open-webui/pull/31316), [#29558](https://github.com/open-webui/open-webui/issues/29558)
|
||||
- 🗣️ **Interface language detection.** Browsers reporting a bare or regional language code, such as German, Dutch or Polish in Firefox, Japanese, or Latin American Spanish in Chrome, get the matching translation again, where 0.11.4 fell back to English. [#30377](https://github.com/open-webui/open-webui/pull/30377)
|
||||
- ⏰ **Automations on Windows with PostgreSQL.** Automations can be created, edited and run again on Windows servers using PostgreSQL, where 0.11.4 rejected every schedule with an error and the scheduler failed on each tick. [#30424](https://github.com/open-webui/open-webui/pull/30424), [#30400](https://github.com/open-webui/open-webui/issues/30400)
|
||||
- 🤖 **Automations keep their model's tools.** The first automation run after a restart now uses its model's tools, MCP servers, default features and filters, where it previously ran without them and a channel automation showed the model ID instead of its name. [#30379](https://github.com/open-webui/open-webui/pull/30379), [#27694](https://github.com/open-webui/open-webui/issues/27694)
|
||||
- 🕰️ **Last run after Run now.** Running an automation with Run now now updates its last run time on the automation page and in the Automations list right away, where they kept showing "Last run Never" or the last scheduled run. [#31583](https://github.com/open-webui/open-webui/pull/31583), [#31580](https://github.com/open-webui/open-webui/issues/31580)
|
||||
- ⏲️ **Failed timers show their error.** A timer that fails before the model starts answering, for example because its model was removed, now shows the error in its reply, where the chat kept a blank reply that looked stuck. [#31483](https://github.com/open-webui/open-webui/pull/31483), [#31481](https://github.com/open-webui/open-webui/issues/31481)
|
||||
- 💻 **Skills from personal terminals.** Skills and the AGENTS.md instructions file from a terminal you added in your own settings are now read through your browser, so they reach the model even when only your browser can reach that terminal, such as one running on your own machine. [Commit](https://github.com/open-webui/open-webui/commit/7ad0ae46873511723f59c7f78bfd59f7c3982e1f), [#30410](https://github.com/open-webui/open-webui/issues/30410)
|
||||
- 🪆 **Sub-agents get personal tools.** Sub-agents and chats resuming after a tool approval now get the same personal tool servers, such as Open Terminal, as the main model, where they received none of them. [#31424](https://github.com/open-webui/open-webui/pull/31424), [#29893](https://github.com/open-webui/open-webui/issues/29893)
|
||||
- 🪃 **Background replies show up live.** When a background sub-agent finishes or a timer goes off, its result and the model's follow-up reply now appear in the open chat right away, where they only showed after a page reload. [#31576](https://github.com/open-webui/open-webui/pull/31576), [#31566](https://github.com/open-webui/open-webui/issues/31566)
|
||||
- 🌿 **One branch with background sub-agents.** When a background sub-agent finishes while the answer that started it is still being written, its report now follows that answer, where the chat switched to another branch that hid the latest question and answer and the model replied without seeing them. [#31557](https://github.com/open-webui/open-webui/pull/31557), [#31507](https://github.com/open-webui/open-webui/issues/31507)
|
||||
- ✅ **Approving several tool calls at once.** With tool approval set to ask, every tool the model calls in one turn now gets its own approval card in turn, where only the first did and the others stayed on "Executing..." forever. [#31315](https://github.com/open-webui/open-webui/pull/31315), [#29293](https://github.com/open-webui/open-webui/issues/29293)
|
||||
- 🔁 **Approved tool results kept.** With tool approval set to ask, the result of an approved tool call now stays in the chat once the reply finishes, so the model still sees it in later turns and a second tool call no longer sends the first back to waiting for approval and runs it again. [#31502](https://github.com/open-webui/open-webui/pull/31502)
|
||||
- 🗣️ **System prompt after a tool approval.** With tool approval set to ask, the request sent after approving a tool call now carries the system prompt and, in a compacted chat, the conversation summary instead of the whole history, taking the prompt from the chat Controls, then your personal settings, then the admin default; a system prompt sent only in an API request is still not kept. [#31501](https://github.com/open-webui/open-webui/pull/31501), [#31499](https://github.com/open-webui/open-webui/issues/31499)
|
||||
- 🎯 **Skills from the / menu.** A skill picked from the / menu in the chat input is now applied to the reply the same way as one picked from the $ menu, where it was inserted as a mention and never loaded. [#31429](https://github.com/open-webui/open-webui/pull/31429), [#29978](https://github.com/open-webui/open-webui/issues/29978)
|
||||
- ♻️ **Skill toggles reach the chat.** Turning a skill on or off in the workspace now updates the skill menu in chat right away, where the old list stayed until a page reload. [#30966](https://github.com/open-webui/open-webui/pull/30966), [#30965](https://github.com/open-webui/open-webui/issues/30965)
|
||||
- 🪟 **Terminal instructions on Windows hosts.** The AGENTS.md file in the home folder of a terminal running on Windows now reaches the model, where it was skipped because the Windows home path was not recognized. [#31342](https://github.com/open-webui/open-webui/pull/31342), [#31340](https://github.com/open-webui/open-webui/issues/31340)
|
||||
- ⚙️ **Settings labels on reload.** Settings labels no longer turn into raw keys such as "settings.admin.connections.title" from the second page load on. [#30354](https://github.com/open-webui/open-webui/pull/30354), [#30348](https://github.com/open-webui/open-webui/issues/30348)
|
||||
- 🧠 **Ollama system prompt after tool calls.** With native function calling on an Ollama model, the model's system prompt now stays in place after a tool result, so the final answer follows the model's instructions again. [#30375](https://github.com/open-webui/open-webui/pull/30375), [#30161](https://github.com/open-webui/open-webui/issues/30161)
|
||||
- 🧰 **Chats recover from broken tool history.** A chat where a tool call was saved without its result, or a result without its call, no longer fails on every following message with Anthropic and Bedrock models, because such unmatched pieces are now left out of what is sent to the model. [#31431](https://github.com/open-webui/open-webui/pull/31431), [#28937](https://github.com/open-webui/open-webui/issues/28937)
|
||||
- 📌 **Attached files after context compaction.** With native function calling, files attached to a message now stay tied to that message after older messages are compacted and after a tool approval, where the model could be handed an older file's reference or none at all for a new upload. [Commit](https://github.com/open-webui/open-webui/commit/af6b82a18cc058b43ca1dc13ccf970f242e39a78), [#31411](https://github.com/open-webui/open-webui/issues/31411)
|
||||
- 🧯 **Responses API errors kept.** Errors from providers on connections set to the Responses API now appear in the chat and are still there after a reload, where some never showed at all and others vanished and left an empty reply. [#31439](https://github.com/open-webui/open-webui/pull/31439), [#31433](https://github.com/open-webui/open-webui/issues/31433)
|
||||
- 🔡 **Missing space after thinking.** Reasoning model answers no longer lose a space right after the thinking block, where "The answer is 4." could be shown and saved as "The answeris 4.". [#31438](https://github.com/open-webui/open-webui/pull/31438), [#31435](https://github.com/open-webui/open-webui/issues/31435)
|
||||
- 🏁 **Stray end of solution marker.** Replies from models that wrap their answer in solution markers no longer show the closing marker, and text written after it appears as a normal part of the reply. [#31436](https://github.com/open-webui/open-webui/pull/31436), [#31434](https://github.com/open-webui/open-webui/issues/31434)
|
||||
- 🔭 **Thinking indicator after tool calls.** A group of collapsed steps in a reply now shows "Exploring" with a spinner while the model is still thinking inside it, such as after a tool call, where it already read "Explored" and the chat looked stuck. [Commit](https://github.com/open-webui/open-webui/commit/19957bc19b769388a61bc9ebd7322deb006ddd62), [#29531](https://github.com/open-webui/open-webui/issues/29531)
|
||||
- 📏 **Output limit for Ollama through the API.** A "max_tokens" value sent through the API to an Ollama model now limits the reply length and overrides the value saved in the model's advanced parameters, where Ollama ignored it and replies ran to full length. [#31437](https://github.com/open-webui/open-webui/pull/31437), [#31432](https://github.com/open-webui/open-webui/issues/31432)
|
||||
- 🦙 **Ollama connection headers and sign-in everywhere.** An Ollama connection's custom headers, authentication type and cookie forwarding now apply to every request, including checking the connection, loading, uploading, downloading and unloading models and the Manage Ollama dialog, so Ollama servers behind gateways such as Cloudflare Access work throughout and no key is sent when the authentication type is None, which also applies to unloading models from llama.cpp connections. [Commit](https://github.com/open-webui/open-webui/commit/bc2416c5db5f5268de0f97730c5a51f55018837a), [#29868](https://github.com/open-webui/open-webui/issues/29868), [#31489](https://github.com/open-webui/open-webui/pull/31489), [#31487](https://github.com/open-webui/open-webui/issues/31487), [#31490](https://github.com/open-webui/open-webui/pull/31490)
|
||||
- 📸 **MCP tool images reach the model.** An image returned by an MCP tool, such as a camera snapshot, is now handed to the model as well as shown in the tool call, so the model can answer about what it shows. [#30358](https://github.com/open-webui/open-webui/pull/30358), [#30327](https://github.com/open-webui/open-webui/issues/30327)
|
||||
- 🔐 **MCP OAuth scopes.** MCP tool servers using OAuth with dynamic client registration, such as Atlassian and Notion, now receive the scopes they need so tool calls work after connecting, and connections set up earlier recover them without registering again. [#30384](https://github.com/open-webui/open-webui/pull/30384), [#29967](https://github.com/open-webui/open-webui/issues/29967)
|
||||
- 💽 **Leaner storage of MCP media.** Images and audio returned by MCP tools are no longer saved a second time inside the database, which kept growing it with every such result. [#30419](https://github.com/open-webui/open-webui/pull/30419), [#30411](https://github.com/open-webui/open-webui/issues/30411)
|
||||
- ⌛ **MCP tool call timeout.** MCP tool calls now stop after the time set in "AIOHTTP_CLIENT_TIMEOUT_TOOL_SERVER", or "AIOHTTP_CLIENT_TIMEOUT" when that is unset, and the model sees the timeout as a tool error, where a hung MCP server kept the chat waiting until the connection was closed. [#31641](https://github.com/open-webui/open-webui/pull/31641), [#31640](https://github.com/open-webui/open-webui/issues/31640)
|
||||
- 🔔 **Webhook chat links.** The link in "chat finished" and "chat failed" webhook notifications opens the chat again, where the missing "/c/" part of the address led to a 404 page. [#31572](https://github.com/open-webui/open-webui/pull/31572), [#31565](https://github.com/open-webui/open-webui/issues/31565)
|
||||
- 🎙️ **Voice calls recover from speech failures.** When the text-to-speech provider fails during a voice call, the call now shows the provider's error once and goes back to listening, where it previously hung in "speaking" with no sound until tapped. [#30372](https://github.com/open-webui/open-webui/pull/30372), [#30052](https://github.com/open-webui/open-webui/issues/30052)
|
||||
- 🎧 **Read Aloud on iPhone and iPad.** Replies read aloud automatically and voice calls now play sound on iOS and iPadOS, and a failed playback returns the speaker button to idle with an error message, where it previously stayed stuck in "speaking". [#30373](https://github.com/open-webui/open-webui/pull/30373), [#30262](https://github.com/open-webui/open-webui/issues/30262)
|
||||
- 🎤 **Voice mode stops when leaving the chat.** Leaving a chat with voice mode active, for example to open the workspace or notes, now turns the microphone off, where it previously kept listening and sending what you said as prompts. [#30417](https://github.com/open-webui/open-webui/pull/30417), [#30405](https://github.com/open-webui/open-webui/issues/30405)
|
||||
- 🔇 **Mute shortcut during voice calls.** Pressing M during a voice call mutes the microphone after every turn again, where it previously typed an "m" into the chat box. [#30421](https://github.com/open-webui/open-webui/pull/30421), [#30406](https://github.com/open-webui/open-webui/issues/30406)
|
||||
- 📁 **Folder clicks keep a chat's tools.** Clicking a folder name in the sidebar while a chat is open no longer swaps that chat's tools and skills for those of the folder's default model. [#30376](https://github.com/open-webui/open-webui/pull/30376), [#30226](https://github.com/open-webui/open-webui/issues/30226)
|
||||
- 🗂️ **Blank folder names rejected.** Renaming or creating a folder with a name made only of spaces now shows "Folder name cannot be empty." instead of saving a blank name that made the folder and its chats disappear from the sidebar after a refresh. [#31380](https://github.com/open-webui/open-webui/pull/31380), [#31379](https://github.com/open-webui/open-webui/issues/31379)
|
||||
- 📝 **Cleared chat system prompt.** Clearing a chat's own system prompt now falls back to your personal system prompt, where the chat was previously sent no system prompt at all. [#30333](https://github.com/open-webui/open-webui/pull/30333)
|
||||
- 🧩 **Default features when comparing models.** Adding a second model to a chat keeps web search, image generation and code interpreter on when every selected model has them as default features, and the web search toggle now always matches what is actually sent. [#30383](https://github.com/open-webui/open-webui/pull/30383), [#30310](https://github.com/open-webui/open-webui/issues/30310)
|
||||
- 🌊 **Per-chat streaming setting.** A chat's own Stream Chat Response setting in Controls now takes effect, where it was ignored whenever the account-wide setting was set. [#31362](https://github.com/open-webui/open-webui/pull/31362), [#31361](https://github.com/open-webui/open-webui/issues/31361)
|
||||
- 📬 **Send queue recovers.** Deleting or editing a queued message held back by a failed attachment now lets the rest of the queue send, where the chat's queue previously stayed stuck until the chat was reopened. [#30447](https://github.com/open-webui/open-webui/pull/30447), [#28880](https://github.com/open-webui/open-webui/issues/28880)
|
||||
- ⏩ **Send now on queued messages.** Clicking Send now on one queued message sends only that message, where it could send the whole queue at once and leave two replies mixed together in the chat until a reload. [Commit](https://github.com/open-webui/open-webui/commit/aea7d34f456e5a6621c7daa6e74a586c65488b45), [#30027](https://github.com/open-webui/open-webui/issues/30027)
|
||||
- 💲 **Clipboard variable keeps dollar signs.** The clipboard variable in prompts now pastes text exactly as copied, where a pair of dollar signs turned into one and broke shell commands and math formulas. [#31364](https://github.com/open-webui/open-webui/pull/31364), [#31363](https://github.com/open-webui/open-webui/issues/31363)
|
||||
- 🏅 **Copied replies start unrated.** A reply saved as a copy no longer carries over the original's rating, so rating the copy no longer overwrites the original's feedback. [#30962](https://github.com/open-webui/open-webui/pull/30962), [#30961](https://github.com/open-webui/open-webui/issues/30961)
|
||||
- 🎭 **Artifacts pane after deleting a message.** Deleting the message holding the newest artifact while the artifacts pane shows it now moves the pane to the last remaining artifact, where it kept showing the deleted one with wrong version numbers. [#30435](https://github.com/open-webui/open-webui/pull/30435), [#30287](https://github.com/open-webui/open-webui/issues/30287)
|
||||
- ⭐ **Default model kept on settings save.** Saving the Interface settings no longer replaces your chosen default model with the administrator's default or cuts a multi-model default down to its first model. [#30953](https://github.com/open-webui/open-webui/pull/30953), [#30952](https://github.com/open-webui/open-webui/issues/30952)
|
||||
- 👆 **Clicking outside menus.** Clicking outside the model selector or another open menu now only closes it, where the click also went through to whatever was underneath, such as a suggested prompt. [Commit](https://github.com/open-webui/open-webui/commit/8fc416ee78bd8264f7a716f147d4000c466ae646), [#29878](https://github.com/open-webui/open-webui/issues/29878)
|
||||
- 🔌 **Deleting a direct connection sticks.** Deleting one of your own direct connections in Settings is now saved right away, where it came back after a reload unless you also pressed Save. [#31384](https://github.com/open-webui/open-webui/pull/31384), [#31383](https://github.com/open-webui/open-webui/issues/31383)
|
||||
- 🧹 **Add Connection form reset.** Adding several connections in a row no longer silently saves the advanced settings of the first one, such as its headers, provider and API type, with the next. [#30958](https://github.com/open-webui/open-webui/pull/30958), [#30957](https://github.com/open-webui/open-webui/issues/30957)
|
||||
- ⌨️ **Ctrl+Enter to Send in channels.** With "Ctrl+Enter to Send" turned on, Enter in a channel or thread reply now starts a new line and Ctrl+Enter sends, where Enter always sent the message. [#31319](https://github.com/open-webui/open-webui/pull/31319), [#31318](https://github.com/open-webui/open-webui/issues/31318)
|
||||
- 📱 **Composer buttons at larger UI scale.** On phones with UI Scale at 1.2x or more, the + and Integrations buttons in the message input stay visible and tappable, with the model name shortened to make room. [#30374](https://github.com/open-webui/open-webui/pull/30374), [#29989](https://github.com/open-webui/open-webui/issues/29989)
|
||||
- 📥 **Imported chats marked as read.** Imported and cloned chats no longer show as unread in the sidebar or count toward folder unread badges. [#30754](https://github.com/open-webui/open-webui/pull/30754), [#30750](https://github.com/open-webui/open-webui/issues/30750)
|
||||
- 🪧 **Chat title with title generation off.** With title generation turned off, a new chat now shows its first message as the title in the header and browser tab right away, where it showed "New Chat" until a reload and a note's chat panel showed the whole model reply as its title; a title that arrives before the new chat has finished opening is no longer dropped either. [#31355](https://github.com/open-webui/open-webui/pull/31355), [#31348](https://github.com/open-webui/open-webui/issues/31348), [Commit](https://github.com/open-webui/open-webui/commit/82b51813721d171f0e347c9348be1042f9b010e8), [#31492](https://github.com/open-webui/open-webui/issues/31492)
|
||||
- 🏷️ **Tags after bulk chat actions.** Unarchiving all chats now brings their tags back, and deleting all chats removes tags no longer used by any chat from the suggestions. [#30453](https://github.com/open-webui/open-webui/pull/30453), [#30452](https://github.com/open-webui/open-webui/issues/30452)
|
||||
- 🔗 **Share link access after relinking.** Deleting a shared chat's link and creating a new one without closing the Share dialog now shows the new link's own access, where the dialog kept showing the old link's setting such as Public. [#31037](https://github.com/open-webui/open-webui/pull/31037), [#31029](https://github.com/open-webui/open-webui/issues/31029)
|
||||
- 🗨️ **Share dialog wording.** The Share dialog now says a new link stays private until you choose who can view it, where it claimed anyone with the URL could view the chat. [#31420](https://github.com/open-webui/open-webui/pull/31420), [#31417](https://github.com/open-webui/open-webui/issues/31417)
|
||||
- 🖱️ **First click in dialogs opened from menus.** Menus such as the sidebar chat menu, the chat header menu, folder and note menus, the knowledge Add Content menu and the Actions menus now close when an item is picked, so the first click in the dialog it opens works, where buttons such as Copy Link and Confirm had to be clicked twice. [#31488](https://github.com/open-webui/open-webui/pull/31488), [Commit](https://github.com/open-webui/open-webui/commit/fdae17f8a6fc163f925b73286622eae32f029308), [#31486](https://github.com/open-webui/open-webui/issues/31486), [#31496](https://github.com/open-webui/open-webui/pull/31496), [#31493](https://github.com/open-webui/open-webui/issues/31493)
|
||||
- 🧰 **Model menu actions in the model selector.** Picking Edit, Keep in Sidebar, Copy Link or Delete from the menu next to a model in the model selector works again, where the selector closed and the action never ran, and Edit and Delete now close the selector so the first click in the window they open is not lost. [#31503](https://github.com/open-webui/open-webui/pull/31503)
|
||||
- ⌨️ **Enter after a smiley.** Pressing Enter now sends a message that ends in a smiley such as ":)" or in a word starting with ":", "/" or "#", where it did nothing because an empty suggestion list still held on to the key. [#31506](https://github.com/open-webui/open-webui/pull/31506), [#31504](https://github.com/open-webui/open-webui/issues/31504)
|
||||
- 🧪 **Code Interpreter when switching chats.** Opening another chat from the sidebar now turns Code Interpreter off like web search and image generation, where it stayed on and was saved into the next chat's draft; a chat's own draft and a model's default features still decide. [#31500](https://github.com/open-webui/open-webui/pull/31500), [#31472](https://github.com/open-webui/open-webui/issues/31472)
|
||||
- 🔎 **Hybrid search on large Chroma collections.** Hybrid search over a knowledge base of more than about 32,000 chunks stored in Chroma now returns results, where it previously failed with "Error querying knowledge base". [#30368](https://github.com/open-webui/open-webui/pull/30368), [#30351](https://github.com/open-webui/open-webui/issues/30351)
|
||||
- 🧭 **Qdrant strict mode.** File uploads and hybrid search now work on Qdrant with strict mode enabled, where every upload after the first failed with "Limit exceeded" and hybrid search found nothing, and hybrid search now falls back to normal vector search whenever a collection cannot be read. [#31461](https://github.com/open-webui/open-webui/pull/31461), [#31460](https://github.com/open-webui/open-webui/pull/31460), [#31459](https://github.com/open-webui/open-webui/issues/31459)
|
||||
- 🎨 **Generated image formats.** Generated images that come back as JPEG or WebP are now saved, downloaded and served as what they are, where they were always labelled as PNG. [#30359](https://github.com/open-webui/open-webui/pull/30359), [#29948](https://github.com/open-webui/open-webui/issues/29948)
|
||||
- ✏️ **Shared knowledge file edits.** Users with write access to a shared knowledge base can now save edits to its files, where the editor reported success but the old content stayed in place. [#30448](https://github.com/open-webui/open-webui/pull/30448), [#30319](https://github.com/open-webui/open-webui/issues/30319)
|
||||
- 💯 **Relevance scores on knowledge tool citations.** Citations from knowledge and chat file searches made by the model through native function calling now show their relevance percentage, as the same sources already did with classic retrieval. [#31307](https://github.com/open-webui/open-webui/pull/31307), [#29776](https://github.com/open-webui/open-webui/issues/29776)
|
||||
- 🔤 **Korean and Japanese text files.** Korean and Japanese text files in legacy encodings such as EUC-KR and Shift-JIS are now read correctly for chats and knowledge bases, where they were stored as garbled Chinese characters. [#31356](https://github.com/open-webui/open-webui/pull/31356), [#31352](https://github.com/open-webui/open-webui/issues/31352)
|
||||
- 🧵 **Backslashes in HTML uploads.** Uploaded HTML files now keep their backslashes as written, where a path such as "C:\new\table" gained line breaks and one containing "C:\Users" failed to upload. [#31450](https://github.com/open-webui/open-webui/pull/31450), [#31440](https://github.com/open-webui/open-webui/issues/31440)
|
||||
- 🐍 **Code mentioning matplotlib.** Python code that only mentions matplotlib in a comment, a string or an availability check now runs, and the code editor's Python formatter works on code that imports it. [#30381](https://github.com/open-webui/open-webui/pull/30381), [#29894](https://github.com/open-webui/open-webui/issues/29894)
|
||||
- 🖼️ **ComfyUI Save Image (Advanced).** Images from ComfyUI workflows that end in the "Save Image (Advanced)" node, such as the Qwen Image Edit template, now appear in the chat for both generation and editing. [#30420](https://github.com/open-webui/open-webui/pull/30420), [#30404](https://github.com/open-webui/open-webui/issues/30404)
|
||||
- 🕸️ **Unreachable links named.** Attaching or adding a link that cannot be fetched, such as one whose server refuses the connection or returns an error page, now reports "Could not read content from" the link instead of a vague processing or knowledge base error. [#31351](https://github.com/open-webui/open-webui/pull/31351), [#31354](https://github.com/open-webui/open-webui/pull/31354), [#31347](https://github.com/open-webui/open-webui/issues/31347)
|
||||
- 🧾 **Document loader headers checked on save.** Invalid headers for the external document loader now show an error on save whichever extraction engine is selected, where they silently kept the documents settings from saving. [#30434](https://github.com/open-webui/open-webui/pull/30434), [#30294](https://github.com/open-webui/open-webui/issues/30294)
|
||||
- 🌍 **Attach Webpage user agent.** Attaching a webpage now sends the configured "USER_AGENT" from the first request, so sites such as Wikipedia that block the default agent no longer fail with 403 Forbidden. [#30385](https://github.com/open-webui/open-webui/pull/30385), [#29617](https://github.com/open-webui/open-webui/issues/29617)
|
||||
- ☁️ **Long non-Latin S3 file names.** Files stored on S3 with long names in scripts such as Cyrillic are now read correctly, so their content reaches the model instead of failing with "File name too long". [#30418](https://github.com/open-webui/open-webui/pull/30418), [#30409](https://github.com/open-webui/open-webui/issues/30409)
|
||||
- 📈 **Leaderboard chart for slashed model IDs.** The leaderboard activity chart now shows data for models whose ID contains a slash, such as Hugging Face models served through Ollama. [#30456](https://github.com/open-webui/open-webui/pull/30456), [#30455](https://github.com/open-webui/open-webui/issues/30455)
|
||||
- 👥 **Admin user chat list after deletion.** Deleting a chat from a user's chat list in the admin panel no longer leaves the list empty. [#30604](https://github.com/open-webui/open-webui/pull/30604), [#30601](https://github.com/open-webui/open-webui/issues/30601)
|
||||
- 📇 **User CSV import blank line.** Importing users from a CSV file that ends with a line break no longer reports the empty last line as an invalid row. [#31374](https://github.com/open-webui/open-webui/pull/31374), [#31373](https://github.com/open-webui/open-webui/issues/31373)
|
||||
- 🛠️ **Refused authentication settings.** When the server refuses a value on the admin authentication page, such as a JWT expiration without a time unit, the page now shows the value actually stored instead of the refused one. [#30433](https://github.com/open-webui/open-webui/pull/30433), [#30293](https://github.com/open-webui/open-webui/issues/30293)
|
||||
- 🏟️ **Arena models after editing.** Editing an arena model in the admin models page, for example to set its tools, no longer removes its access settings and model pool, where non-admin users lost the arena model and its chats ignored the configured models. [#31309](https://github.com/open-webui/open-webui/pull/31309), [#29564](https://github.com/open-webui/open-webui/issues/29564)
|
||||
- 📅 **Calendar event end moves with its date.** Changing a calendar event's date now moves its end along with it, where the end kept its old date and events could span several days or lose their duration. [#31303](https://github.com/open-webui/open-webui/pull/31303), [#31302](https://github.com/open-webui/open-webui/issues/31302)
|
||||
- 🔂 **Repeating events that started earlier.** A repeating calendar event that is still running when the visible dates begin, such as a weekly event from 23:00 to 01:00, now shows on the following day, where only the same event without a repeat did. [#31606](https://github.com/open-webui/open-webui/pull/31606), [#31605](https://github.com/open-webui/open-webui/issues/31605)
|
||||
- 📋 **Copy buttons in account settings.** Copying your token or API key in the account settings no longer also saves the account form and any unsaved profile changes along with it. [#30956](https://github.com/open-webui/open-webui/pull/30956), [#30955](https://github.com/open-webui/open-webui/issues/30955)
|
||||
- 🚫 **Read-only prompt controls.** Prompts you can only read now show their edit, share, delete and enable controls in the workspace as unavailable, where they looked usable but could not be changed. [Commit](https://github.com/open-webui/open-webui/commit/ff89756b6dcafc129d29dea3c4a7c0f93ebc0895), [#30219](https://github.com/open-webui/open-webui/issues/30219)
|
||||
- 🔃 **Model sync API on SQLite.** Syncing models through the API on a default SQLite setup now saves changes to existing models, where the request stalled and returned an empty list with "database is locked" in the log. [#31349](https://github.com/open-webui/open-webui/pull/31349), [#31346](https://github.com/open-webui/open-webui/issues/31346)
|
||||
- 🐘 **Non-ASCII search on PostgreSQL.** Searching automations by a word from their prompt and filtering models or prompts by a tag now find non-ASCII words such as Chinese on PostgreSQL, where they found nothing. [#31423](https://github.com/open-webui/open-webui/pull/31423), [#31422](https://github.com/open-webui/open-webui/issues/31422)
|
||||
- 📨 **Anthropic Messages endpoint with empty tools.** Requests to the Anthropic-compatible Messages endpoint that send an empty or null tools list, as Claude Code does for text-only requests, no longer fail against backends such as vLLM and OpenAI. [#31343](https://github.com/open-webui/open-webui/pull/31343), [#31341](https://github.com/open-webui/open-webui/issues/31341)
|
||||
- 🚧 **Failed streams on the Anthropic Messages endpoint.** A streamed request to the Anthropic-compatible Messages endpoint that fails partway now ends with an error, so clients such as Claude Code no longer take the cut-off answer as complete. [#31405](https://github.com/open-webui/open-webui/pull/31405), [#31403](https://github.com/open-webui/open-webui/issues/31403)
|
||||
- 📊 **Scrollable admin analytics.** The analytics tab in the admin settings now scrolls, so the full model and user ranking tables can be reached where their lower rows were cut off. [#30429](https://github.com/open-webui/open-webui/pull/30429), [#30428](https://github.com/open-webui/open-webui/issues/30428)
|
||||
- 🕐 **Group filter on the hourly analytics chart.** The analytics chart for the last 24 hours now respects the selected group, where it counted every user's messages while the rest of the page was filtered. [#30978](https://github.com/open-webui/open-webui/pull/30978), [#30977](https://github.com/open-webui/open-webui/issues/30977)
|
||||
- 📜 **Title generation log noise.** Starting a new chat no longer writes a misleading "Error generating initial chat title" traceback to the server log. [#30356](https://github.com/open-webui/open-webui/pull/30356), [#30339](https://github.com/open-webui/open-webui/issues/30339)
|
||||
- 🔲 **Full-screen chat input error.** Opening the full-screen chat input with text in it no longer throws an error in the browser console. [Commit](https://github.com/open-webui/open-webui/commit/b39abad5c28db8e69885b9fbc5f756ff74666a90), [#31465](https://github.com/open-webui/open-webui/issues/31465)
|
||||
- 🪪 **Clear message for failed SSO sign-ins.** When signing in through an OAuth or OIDC provider fails, for example because access was denied, the account has no email or its email domain is not allowed, the login page now says the sign-in with the identity provider failed, where it claimed the email or password was wrong; the exact reason still goes to the server log. [#31629](https://github.com/open-webui/open-webui/pull/31629), [#31627](https://github.com/open-webui/open-webui/issues/31627)
|
||||
- ✏️ **Folder rename saves once.** Renaming a folder in the sidebar and pressing Enter now saves the name once and shows one confirmation, where it saved it twice. [#31584](https://github.com/open-webui/open-webui/pull/31584), [#31582](https://github.com/open-webui/open-webui/issues/31582)
|
||||
- 🔤 **Non-English text in searches and size limits.** With "ENABLE_ORJSON" off, non-English letters are now saved as written instead of as escape codes, so case-insensitive searches such as model tag filters and automation search find them, and user and chat variables in Cyrillic or Chinese are no longer refused as too large at about a sixth of the 100,000 character limit; text saved earlier keeps the escape codes until it is next edited. [#31615](https://github.com/open-webui/open-webui/pull/31615)
|
||||
- 🛰️ **Tool prompts across instances.** With "WEBSOCKET_MANAGER" set to redis and several instances or workers, a confirmation or input dialog from a tool or Function now receives the user's answer whichever instance the browser tab is connected to, where the tool waited until it timed out. [#31620](https://github.com/open-webui/open-webui/pull/31620)
|
||||
- 🌊 **Code blocks fenced with tildes.** Code blocks fenced with ~~~ now show as code blocks with their language label and Copy button, where they were shown as a single line of plain text. [#31543](https://github.com/open-webui/open-webui/pull/31543), [#31542](https://github.com/open-webui/open-webui/issues/31542)
|
||||
- 🗺️ **DEFAULT_LOCALE on the first visit.** A new visitor now gets the language set in "DEFAULT_LOCALE" again, where since 0.11.4 they always got their browser's language; a language picked in Settings or a ?lang= link still takes precedence. [#31551](https://github.com/open-webui/open-webui/pull/31551), [#31548](https://github.com/open-webui/open-webui/issues/31548)
|
||||
- 📋 **Multi-line table cells in notes.** A note table cell with more than one line now stays inside its row in the note's Markdown download and its Chat panel, where the second line broke the row and shifted cells into other columns. [#31539](https://github.com/open-webui/open-webui/pull/31539), [#31538](https://github.com/open-webui/open-webui/issues/31538)
|
||||
- 🎯 **Exact matches on Weaviate.** With Weaviate, a chunk identical to the query now scores 1 instead of 0, so perfect matches no longer land at the bottom of the results or fall below the relevance threshold. [#31531](https://github.com/open-webui/open-webui/pull/31531), [#31527](https://github.com/open-webui/open-webui/issues/31527)
|
||||
- 📍 **Unpinning folder chats by dragging.** Dragging a pinned chat out of a folder onto Chats now unpins it, where it stayed pinned. [#31368](https://github.com/open-webui/open-webui/pull/31368), [#31367](https://github.com/open-webui/open-webui/issues/31367)
|
||||
- 🧮 **jina-colbert-v2 reranker.** The jinaai/jina-colbert-v2 reranking model loads again on the current transformers release, and saving the Documents settings no longer quietly turns hybrid search off with it. [#31532](https://github.com/open-webui/open-webui/pull/31532), [#31522](https://github.com/open-webui/open-webui/issues/31522)
|
||||
- 🔍 **New chat from the search dialog.** Starting a new conversation from the search dialog now sends the typed text unchanged, where everything from a # or & on was dropped and + turned into a space. [#31592](https://github.com/open-webui/open-webui/pull/31592), [#31469](https://github.com/open-webui/open-webui/issues/31469)
|
||||
- 📈 **OpenTelemetry logs sent once.** With "ENABLE_OTEL", "ENABLE_OTEL_TRACES" and "ENABLE_OTEL_LOGS" all on, each log line now reaches the collector once instead of twice, so "OTEL_PYTHON_LOG_AUTO_INSTRUMENTATION=false" is no longer needed as a workaround. [#31528](https://github.com/open-webui/open-webui/pull/31528), [#31524](https://github.com/open-webui/open-webui/issues/31524)
|
||||
- 📎 **Large pastes in channels.** With Paste Large Text as File on, pasting more than 1,000 characters into a channel or thread now attaches it as a text file, where the text vanished. [#31366](https://github.com/open-webui/open-webui/pull/31366), [#31365](https://github.com/open-webui/open-webui/issues/31365)
|
||||
- 📑 **Copy Last Code Block with Artifacts open.** The Copy Last Code Block shortcut now copies the last code block in the chat, where it copied the Artifacts pane's full HTML whenever the pane was open. [#31613](https://github.com/open-webui/open-webui/pull/31613), [#31476](https://github.com/open-webui/open-webui/issues/31476)
|
||||
- 🗓️ **Scheduled Tasks calendar run counts.** An automation limited to a number of runs now shows only the runs still to come in the Scheduled Tasks calendar, and very frequent schedules no longer show up short or empty. [#31604](https://github.com/open-webui/open-webui/pull/31604), [#31600](https://github.com/open-webui/open-webui/issues/31600)
|
||||
- 🖼️ **Pasted images in notes.** Images pasted into a note now stay when the note is cut and pasted, edited from its Chat panel or edited by a model, where they disappeared. [#31513](https://github.com/open-webui/open-webui/pull/31513), [#31512](https://github.com/open-webui/open-webui/issues/31512)
|
||||
- 🪢 **SCIM group member links.** Members in SCIM group responses now carry the link to their user, where every member came back with "$ref": null. [#31529](https://github.com/open-webui/open-webui/pull/31529), [#31525](https://github.com/open-webui/open-webui/issues/31525)
|
||||
- 🔑 **Google MCP connections stay signed in.** MCP tool servers that sign in through Google, such as Google's Gmail, Drive and Calendar servers, now receive a refresh token, so the connection renews itself instead of being dropped about an hour after signing in; existing connections pick this up at the next sign-in. [#31395](https://github.com/open-webui/open-webui/pull/31395), [#28319](https://github.com/open-webui/open-webui/issues/28319)
|
||||
- 🈳 **Input methods with a follow-up suggestion.** Typing with a Chinese, Japanese or Korean input method into the empty chat input while a suggested follow-up is shown as grey text now works, where iOS lost focus after the first character and Chromium left the first letter behind. [#31393](https://github.com/open-webui/open-webui/pull/31393), [#31372](https://github.com/open-webui/open-webui/issues/31372)
|
||||
- ⏏️ **Ejecting models over HTTPS.** Ejecting a model from the model selector on llama.cpp and Ollama connections served with a self-signed or internal certificate now follows "AIOHTTP_CLIENT_SESSION_SSL", where it failed with a certificate error. [#31391](https://github.com/open-webui/open-webui/pull/31391), [#31371](https://github.com/open-webui/open-webui/issues/31371)
|
||||
- 🧩 **Tool HTML embeds with entities.** HTML embeds, arguments and file links from tools now show exactly what the tool returned, where an embed containing an entity such as " did not show at all and & or < were turned into real characters. [#31390](https://github.com/open-webui/open-webui/pull/31390), [#28085](https://github.com/open-webui/open-webui/issues/28085)
|
||||
- 🐑 **Cloned chats in shared folders.** Cloning a chat in a folder shared with you with write access now keeps the clone in that folder, where it landed at the top of your chat list. [#31370](https://github.com/open-webui/open-webui/pull/31370), [#31369](https://github.com/open-webui/open-webui/issues/31369)
|
||||
- ↩️ **Pending reply when switching channels.** Switching to another channel now drops a reply you had started, where it carried over, failed to send and left a faded copy behind. [#31376](https://github.com/open-webui/open-webui/pull/31376), [#31375](https://github.com/open-webui/open-webui/issues/31375)
|
||||
- 💾 **Connection dialog after a Headers error.** The connection dialog's Save button works again after an invalid Headers error, where it stayed disabled until the page was reloaded. [#31378](https://github.com/open-webui/open-webui/pull/31378), [#31377](https://github.com/open-webui/open-webui/issues/31377)
|
||||
- 🎨 **Invalid image Additional Parameters.** Saving the Images settings with invalid JSON in the Additional Parameters for OpenAI or AUTOMATIC1111 now shows an error, where Save kept spinning. [#31382](https://github.com/open-webui/open-webui/pull/31382), [#31381](https://github.com/open-webui/open-webui/issues/31381)
|
||||
- 🗒️ **Read-only notes in the chat's note picker.** Searching the note picker in a chat now finds notes shared with you read only, where they disappeared as soon as you typed. [#30968](https://github.com/open-webui/open-webui/pull/30968), [#30967](https://github.com/open-webui/open-webui/issues/30967)
|
||||
- ♻️ **Editing a repeating event from a later occurrence.** Opening a repeating calendar event from a later occurrence and saving it now keeps the series' own start date, where it moved the start to the clicked occurrence and deleted every earlier one. [#30971](https://github.com/open-webui/open-webui/pull/30971), [#30970](https://github.com/open-webui/open-webui/issues/30970)
|
||||
- 🪨 **OpenAI models on Amazon Bedrock.** GPT-5.6 and GPT-6 models on an Amazon Bedrock OpenAI-compatible connection, with ids such as us.openai.gpt-6-sol, now receive their token limit as max_completion_tokens, where Bedrock rejected every request with a token limit, including title and emoji generation. [#30976](https://github.com/open-webui/open-webui/pull/30976), [#30510](https://github.com/open-webui/open-webui/issues/30510)
|
||||
- 💬 **Readable mention notifications.** Notifications for channel messages that mention a user or channel now show the mention as it appears in the channel, such as "@Alex", where they showed the raw mention markup with the internal id. [#31601](https://github.com/open-webui/open-webui/pull/31601), [#31586](https://github.com/open-webui/open-webui/issues/31586)
|
||||
- 🎹 **Enter in the search dialog.** Pressing Enter on a highlighted chat in the search dialog now opens it, where the dialog only closed. [#31004](https://github.com/open-webui/open-webui/pull/31004), [#31003](https://github.com/open-webui/open-webui/issues/31003)
|
||||
- 🪄 **Artifact preview stays open.** The artifact preview no longer closes right after opening on its own, which happened now and then in any chat and every time a filter function wrote part of the reply before the model answered. [#31653](https://github.com/open-webui/open-webui/pull/31653), [#31652](https://github.com/open-webui/open-webui/pull/31652), [#31643](https://github.com/open-webui/open-webui/issues/31643)
|
||||
- 📸 **iPhone photos with vision models.** HEIC and HEIF photos from iPhones are now converted and uploaded as JPEG in chats, channels and notes whatever type the browser reports, where Firefox and some other browsers uploaded them as HEIC and vision models failed with an error. [#31649](https://github.com/open-webui/open-webui/pull/31649), [#28411](https://github.com/open-webui/open-webui/issues/28411)
|
||||
- 📦 **New files in shared chats.** Files attached to a message together with a file already in the chat now open in shared copies of the chat, where none of the new files were recorded and people opening the shared chat could not open them. [#31650](https://github.com/open-webui/open-webui/pull/31650), [#31648](https://github.com/open-webui/open-webui/issues/31648)
|
||||
- 🎭 **Pages with several main sections in the Playwright loader.** The Playwright web loader now reads the whole page when it has more than one main section, such as Ubiquiti tech specs pages, where it returned only the site menu and lost the actual content. [#31644](https://github.com/open-webui/open-webui/pull/31644), [#28643](https://github.com/open-webui/open-webui/issues/28643)
|
||||
- 📱 **No keyboard popping up from menus on phones.** Closing the Integrations menu or opening a dropdown in the automation dialog on a phone no longer brings up the on-screen keyboard. [#31657](https://github.com/open-webui/open-webui/pull/31657), [#31656](https://github.com/open-webui/open-webui/issues/31656)
|
||||
|
||||
### Changed
|
||||
|
||||
- ⚠️ **IMPORTANT for Milvus and Milvus multitenancy users: back up your Milvus data before upgrading**: On its first start with "ENABLE_DB_MIGRATIONS" on (the default), this release rebuilds every existing Milvus collection so its vectors, text and BM25 keyword index live together, and Open WebUI only finishes starting once that is done; every collection is copied in full, vectors included, which ran at 11 to 22 MB/s on one 16-thread machine with the official Milvus docker compose setup, so 200 GB takes about 2.5 to 5 hours depending on chunk size, and it needs free disk space for a second copy of all your Milvus data until it finishes. Nothing is re-embedded, and the original collections are only dropped after every copy has succeeded: a failed run changes nothing and is retried on the next start. The migration was tested extensively on real installations, including across a Milvus 2.6 to 3.0.2 upgrade, but no testing covers every setup, so back up first and avoid upgrading Milvus and Open WebUI on the same day where you can. Hybrid search on Milvus needs Milvus 2.5 or newer; on 2.4 and older the migration is skipped and there is no native hybrid search. [#31645](https://github.com/open-webui/open-webui/pull/31645), [#31660](https://github.com/open-webui/open-webui/pull/31660)
|
||||
- 🔌 **ENABLE_PLUGINS is the master switch.** Setting "ENABLE_PLUGINS=false" now turns off every kind of plugin, including external OpenAPI, MCP and Open Terminal servers and personal direct connections, and overrides "ENABLE_TOOLS", "ENABLE_FUNCTIONS" and "ENABLE_TOOL_SERVERS"; all four need a restart to take effect. [Commit](https://github.com/open-webui/open-webui/commit/f50f9e6252209760d0b96f090766e91fb826ecba), [#31509](https://github.com/open-webui/open-webui/issues/31509)
|
||||
- ⚡ **orjson on by default.** "ENABLE_ORJSON" now defaults to on, and setting "ENABLE_ORJSON=false" switches back to the standard JSON encoder. [#31616](https://github.com/open-webui/open-webui/pull/31616)
|
||||
- 🔁 **Update Redis-backed instances together.** Where several servers share their websocket traffic through Redis, every instance should be updated at the same time, since live chat updates sent by an updated instance do not reach one still on an older version unless "WEBSOCKET_REDIS_ROOM_CHANNELS" is set to false. [#28818](https://github.com/open-webui/open-webui/pull/28818)
|
||||
|
||||
## [0.11.4] - 2026-09-21
|
||||
|
||||
### Added
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue