CHANGELOG.md
Rama main · réplica de lectura del repositorio original.
# Changelog
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.13.3] - 2026-11-08
### Added
- 🦾 **Agents in automations.** The automation editor now lets you choose a terminal and working folder, then select a coding agent available there. Scheduled runs use that saved terminal and folder, and check that the terminal and agent are still available before starting. Agent automations send their results to a chat; channel destinations remain available for ordinary models. [Commit](https://github.com/open-webui/open-webui/commit/21fc016141c73a0e11b428c61bde20527bbc228a)
- 📂 **Change terminal and folder during a chat.** You can now choose a different terminal or working folder after sending messages, including in temporary chats. Both controls remain disabled while a reply is being generated. [Commit](https://github.com/open-webui/open-webui/commit/a518ff1630b74ed6edd62538c5da4bb26cc6dd20)
- 🇧🇷 **Brazilian Portuguese translations.** Added missing translations for terminal and folder controls, Git actions, spreadsheet editing, voice notes, tab shortcuts, notification sounds and tool settings. Updated the explanations for document retrieval, tool permissions and voice settings. [#33945](https://github.com/open-webui/open-webui/pull/33945)
### Fixed
- 📂 **Files tabs follow terminal changes.** Switching a chat to another terminal now updates its open Files tabs to show that terminal's files, instead of leaving the previous terminal's folders on screen. With a terminal set to "Per chat", the Files tab also switches to the chat's own files after the first message. [#33954](https://github.com/open-webui/open-webui/pull/33954)
- 🧭 **Agents in unsupported model pickers.** Connecting a terminal no longer adds its coding agents to Admin Models, base-model selectors, Arena candidates, task-model settings, group defaults, sub-agent settings, channel mentions or the Playground. Notes also stop choosing a terminal agent for title generation. Agents cannot be saved or imported as custom models or their base models, and their chat menu no longer offers Edit. [Commit](https://github.com/open-webui/open-webui/commit/21fc016141c73a0e11b428c61bde20527bbc228a), [Commit](https://github.com/open-webui/open-webui/commit/6d3123b5b4a90962bff44c69c7e0bae0c65557d5)
- 🔌 **Agent list after switching terminals.** Changing terminals immediately removes the previous terminal's agents from the chat's model list while the new list loads. A model-list request from a chat you have left can no longer replace the current list. [Commit](https://github.com/open-webui/open-webui/commit/21fc016141c73a0e11b428c61bde20527bbc228a)
- 📋 **Copy buttons over plain HTTP.** At a plain HTTP address on your local network, copying comment links, search links, shared-chat links, webhook URLs, chat IDs, Git branch names, commit hashes and spreadsheet cells now works. Copy Formatted Text preserves formatting, and copied text keeps its final line break. [#33939](https://github.com/open-webui/open-webui/pull/33939)
- 📝 **Clipboard prompts and Auto-Copy Response over plain HTTP.** Prompts using the clipboard placeholder now insert into chats and channels even when the browser blocks clipboard access, with a message explaining that the clipboard could not be read. Auto-Copy Response stays off and shows a permission message instead of silently failing to turn on; turning it off no longer requires clipboard access. [#33939](https://github.com/open-webui/open-webui/pull/33939)
- 🧠 **DeepSeek thinking mode with skills, knowledge and memories.** These chats no longer fail with a missing reasoning error when the connection's Provider is set to "llama.cpp". DeepSeek thinking mode still requires that setting; connections using "Default" are unchanged. [#33950](https://github.com/open-webui/open-webui/pull/33950)
- 🏷️ **Labels on grouped tool calls.** With Tool Call Labels enabled, a group of tool calls keeps the labels that are present even if one call has none. The unlabeled call shows its tool name instead of making the whole group lose its labels. [#33932](https://github.com/open-webui/open-webui/pull/33932)
- 💬 **Tool labels in later replies.** The model now sees the labels it wrote for earlier tool calls when continuing a reply or answering another message, removing a reason it could stop writing labels as the conversation continued. [#33953](https://github.com/open-webui/open-webui/pull/33953)
- 🔎 **Knowledge searches containing punctuation.** Searches in knowledge files now find text such as "Art. 40" when the model marks the period as literal punctuation, instead of returning no matches. [#33936](https://github.com/open-webui/open-webui/pull/33936)
- 🪟 **Side Chat with Temporary Chat disabled.** Leaving Enforce Temporary Chat switched on while disabling Temporary Chat no longer prevents users from sending and saving side chats or dragging an existing chat into the side panel. [#33930](https://github.com/open-webui/open-webui/pull/33930)
- 🏠 **Home folder tab title.** A Files tab at the connected machine's home directory now says "Home" instead of showing the directory name, including when reopening saved tabs. Other folders keep their names. [Commit](https://github.com/open-webui/open-webui/commit/241c8c0e47e19b0adeb13d577ca538d2252b0ad4)
- 🦙 **Missing Ollama in Docker images.** Building the image that includes Ollama now fails if Ollama was not installed, instead of producing an image that cannot start Ollama after its download failed. [#33944](https://github.com/open-webui/open-webui/pull/33944)
- 📄 **Errors after leaving a chat.** Closing or leaving a chat while its tab layout is being saved no longer fills the server log with an error report for the dropped connection. [#33929](https://github.com/open-webui/open-webui/pull/33929)
## [0.13.2] - 2026-11-08
### Fixed
- 🔓 **Chat over plain HTTP.** Opening Open WebUI over plain HTTP at a LAN or Docker address now loads new and existing chats instead of staying on a spinner with "crypto.randomUUID is not a function". [#33919](https://github.com/open-webui/open-webui/issues/33919)
- 📝 **Comments and Markdown editing over plain HTTP.** Creating, replying to and editing comments, and editing Markdown files containing rendered blocks such as Mermaid diagrams or callouts, no longer fail with the same UUID error. [Commit](https://github.com/open-webui/open-webui/commit/3c400952cbb30e8eb72652d83b2af2f75a3b9341)
- 🎛️ **Side Chat permission switch.** The Allow Side Chat switch is now visible even when Temporary Chat is off, so administrators can configure the two permissions independently. [#33920](https://github.com/open-webui/open-webui/pull/33920)
## [0.13.1] - 2026-11-03
### Added
- 🦾 **Coding agents as models.** On an Open Terminal that offers agents, coding agents such as Claude Code, Codex and Pi now appear in the model picker. You can chat with them or call them by voice, choose their reasoning effort and service tier, and approve their tool requests in the chat. Each conversation uses one agent, and agent chats cannot be regenerated, continued or edited and resent. If an agent's terminal goes away, its chats and new chats fall back to the default model and earlier replies keep the agent's name. Autocompletion in agent chats uses the task model, or is skipped when there is none. [#33843](https://github.com/open-webui/open-webui/pull/33843), [#33860](https://github.com/open-webui/open-webui/pull/33860), [#33880](https://github.com/open-webui/open-webui/pull/33880), [#33857](https://github.com/open-webui/open-webui/pull/33857)
- 🪢 **Introducing Tether.** [Tether](https://github.com/open-webui/tether) is the new desktop companion app for macOS, Windows and Linux that ties your own computer to Open WebUI. Sign in once and your computer shows up under Your devices in the terminal menu, so models, coding agents and automations can work in your real files, repositories and tools, and you can reach them from any browser, including your phone. Tether connects out to Open WebUI, so there are no ports to open, its terminal output resumes after a dropped connection, and it delivers notifications to your desktop even when no Open WebUI page is open. It signs in with a renewable session that expires after 90 days without use by default, set with "SESSION_EXPIRES_IN".
- 💸 **Much cheaper tool chats.** Chats that use tools now cost much less. Citation instructions, memory recall, the skills list and attached knowledge are no longer rewritten into the system prompt or your message on every tool round, so the start of the conversation stays the same between requests and providers can serve it from their prompt cache. Custom pipes see a different message layout as a result; see Context as hidden tool results under Changed. [#33852](https://github.com/open-webui/open-webui/issues/33852)
- 🚦 **Auto tool permissions.** Administrators can now turn on Auto, a third tool permission mode next to Full access and Ask for approval (off by default). A review model checks each tool call and runs it right away only when it judges that no confirmation is needed. The review sends the tool, its arguments and your last few messages to the configured scoring API, and any call it cannot review, because of an error, a timeout or too much context, asks for approval.
- 📚 **Full text for small files.** Files whose extracted text is shorter than a new threshold (50,000 characters by default, set with "RAG_FULL_TEXT_CHAR_THRESHOLD" or in the admin Documents settings) are now included in full instead of through retrieval. This applies both when Preload files adds the content to the conversation and when the model reads an attached file with its file search tool, and the file viewer shows when it happens.
- ⏱️ **Faster large chats.** Large chats now open about twice as fast, and marking a chat as read or unread or removing a tag from it is 4 to 6 times faster. [#33665](https://github.com/open-webui/open-webui/pull/33665), [#33666](https://github.com/open-webui/open-webui/pull/33666)
- 🏎️ **Faster chat access checks.** Sending messages, typing indicators, shared links, comments and file access no longer load the whole conversation just to check who may access it, which helps most on large chats. [#33667](https://github.com/open-webui/open-webui/pull/33667), [#33669](https://github.com/open-webui/open-webui/pull/33669)
- 🔧 **More forgiving tool calls.** Tool calls with arguments wrapped in code fences, encoded twice or sent as text instead of numbers and booleans now run, and tool calls a model writes out as plain text markup are recognised and executed. [#33868](https://github.com/open-webui/open-webui/issues/33868)
- 🛑 **Tool loop stops.** A tool call that fails twice in a row with the same arguments now ends the tool loop so the model writes a final answer, and a reply cut off by the token limit no longer runs its unfinished tool calls.
- 🛠️ **Default tools for models.** The Model Defaults section in the admin Models settings now has a Tools picker, models without their own tool list start new chats with those tools enabled, and the new model form preselects them. [#33749](https://github.com/open-webui/open-webui/pull/33749), [#33787](https://github.com/open-webui/open-webui/pull/33787)
- 🚀 **Faster channels.** The channel list, the channel messages and the replied-to messages in a channel now load much faster, especially with many channels or many replies, and new database indexes speed up channel threads and reactions. [#33690](https://github.com/open-webui/open-webui/pull/33690), [#33691](https://github.com/open-webui/open-webui/pull/33691), [#33688](https://github.com/open-webui/open-webui/pull/33688)
- 🪶 **Lighter reasoning streams.** Long reasoning replies from providers such as OpenRouter now send far less data to the browser and to Redis while they stream. [#33698](https://github.com/open-webui/open-webui/pull/33698)
- 🗂️ **Faster sidebar chat list.** The chat list in the sidebar now appears as soon as its own data is ready instead of waiting for the channel list. [#33686](https://github.com/open-webui/open-webui/pull/33686)
- ⌨️ **Faster typing after large pastes.** Typing in the chat input after pasting 16,000 lines of text is now about 117 times faster, down from 8.6 seconds to 74 milliseconds per keystroke. [#33729](https://github.com/open-webui/open-webui/pull/33729), [#12087](https://github.com/open-webui/open-webui/issues/12087)
- 🧮 **Faster Redis filter lookups.** With Redis enabled, chat requests now look up the filters of a model faster. [#33668](https://github.com/open-webui/open-webui/pull/33668)
- 🪟 **Split tab panes.** On large screens, dragging a tab or a chat to the edge of the workspace, or pressing the new Split screen button, splits it into resizable panes, so several tabs, including the chat, stay visible side by side. Tabs can also be reordered and moved between panes with a long press and drag on touch screens. [Commit](https://github.com/open-webui/open-webui/commit/b5eaa59d0a5f85a85940bd2ec1afb4aa4ff21a80)
- 🧳 **Tabs remembered per chat.** The open tabs, split layout and selected terminal of each chat are now saved privately for each user on the server and restored when you reopen the chat, even on another device. Signing out warns you about unsaved file edits. [#33899](https://github.com/open-webui/open-webui/pull/33899), [#33885](https://github.com/open-webui/open-webui/pull/33885)
- 🪣 **Batched Tool Search calls.** With Tool Search on, the model can run several independent tools it found in a single call_tool request, which saves model turns and so lowers the cost of tool-heavy chats.
- 🧭 **Tool Search engines.** Tool Search in the admin Interface settings can now match tools with embeddings from the Documents embedding model (kept in memory, not stored) or by sending the query and tool definitions to a relevance-scoring API, besides the default keyword search.
- 🏷️ **Readable tool call labels.** Administrators can now turn on Tool Call Labels in Admin Settings > Interface or with "ENABLE_TOOL_CALL_LABELS", off by default, to ask the model for short descriptions in the user's language of what each tool call is doing and what it did. [Commit](https://github.com/open-webui/open-webui/commit/2416b1fc0b83571652e0efff83f9591c89b62a64)
- ✂️ **Chat read limit.** Admins can limit how much of an earlier chat the Chat History tools return, with "VIEW_CHAT_MAX_CHARS" or the new Chat Read Limit field in Admin Settings > General, and the newest messages are kept while older ones are cut. [#33695](https://github.com/open-webui/open-webui/pull/33695), [#33608](https://github.com/open-webui/open-webui/issues/33608)
- 🌍 **Client IP header placeholders.** Custom headers of connections can now use "{{USER_IP}}" and "{{X_FORWARDED_FOR}}" to pass the client address on to the upstream provider, and both are empty for automations and background jobs. [#33833](https://github.com/open-webui/open-webui/pull/33833), [#33819](https://github.com/open-webui/open-webui/issues/33819)
- ✉️ **Non-ASCII email addresses.** The sign-up page and the add and edit user dialogs now accept email addresses with non-ASCII characters. [#33693](https://github.com/open-webui/open-webui/pull/33693), [#33681](https://github.com/open-webui/open-webui/issues/33681)
- 🕒 **Reply finish time.** Assistant replies now show the time they finished instead of the time the prompt was sent. [#33895](https://github.com/open-webui/open-webui/pull/33895)
- 🧐 **Channel message search.** Each channel header has a Search button that searches the messages of that channel.
- 🔔 **Notifications open their chat.** Clicking a desktop notification now brings Open WebUI to the front and opens the related chat, channel or calendar.
- 📮 **MCP Apps message the chat.** An MCP App can now send a text message to the chat, which you confirm first in a Confirm Prompt from Embed dialog. [#33907](https://github.com/open-webui/open-webui/pull/33907)
- 🖱️ **Drag chats into side panel.** Dragging a chat from the sidebar onto the chat area opens it as a side chat tab, and a side chat can now also be started from an empty new chat.
- 🪄 **Quick open files.** A new shortcut, Cmd+P (Ctrl+P elsewhere), opens a search box that finds files in the selected terminal by name or path and opens the one you pick in a tab.
- 🎹 **Tab keyboard shortcuts.** New shortcuts, which can be changed in Settings > Keyboard, open the Files, Desktop, Comments, new chat, new file, new terminal and new browser tabs, close and switch between tabs and toggle the split screen.
- 🗺️ **Working directory picker.** The message input has a working directory menu with folder search, a Recently Used list kept per user on the terminal and an Open Folder dialog.
- 📂 **Folder default terminal.** A folder can now have a default terminal and working directory in its Advanced settings, used for new chats in that folder.
- 🧾 **Editable spreadsheets.** Excel files in the file view can now be edited in the preview, with a formula bar, pasting from other spreadsheets and resizable columns, and saved back to the file, while formula cells and protected sheets stay read-only.
- 🖋️ **Markdown and code editing.** Markdown files in the file view now open in a rich text editor that saves back to Markdown, where pasted or dropped images are uploaded to the terminal, and the code editor suggests words that already appear in the file. Other text files and the Source view of previews now use the code editor directly, without a separate Edit step. [Commit](https://github.com/open-webui/open-webui/commit/b5eaa59d0a5f85a85940bd2ec1afb4aa4ff21a80)
- 🌳 **Clone Git repositories.** The file browser and the folder pickers can now clone a Git repository from an HTTP(S) or SSH URL into the chosen folder of the selected terminal.
- 🧬 **Git changes in the editor.** The code editor now marks the lines of a file that were added or changed since the last commit.
- 🔖 **File browser Git status.** Files and folders in the file browser are marked with a Git status letter such as M, A, D or U, and folders show that they contain changes.
- 🌿 **Git panel feedback and resizing.** The Git panel now shows what it is doing, such as staging, pushing or fetching, and its file list can be resized.
- 🧹 **Discard any Git change.** The Git panel can now discard staged and new files too, and its confirmation warns that files not in the last commit are deleted and that this cannot be undone.
- 🧲 **Drag files into chat.** Files from the terminal file browser can be dragged, one or several at once, into the message input to attach them, also with a long press on touch screens.
- 🗃️ **Multiple Files tabs.** The + menu can now open several Files tabs for the same terminal, each with its own folder and the folder name as its tab title, and moving files refreshes the other Files tabs on that terminal. [Commit](https://github.com/open-webui/open-webui/commit/0b7e7b3f707023c626ae51cc66a4db1c19ed7056)
- 🔲 **Drag to select files.** Several files in the file browser can now be selected by dragging a selection box over them.
- 🪂 **Spring-loaded Files tabs.** Holding a dragged file over a Files tab for half a second switches to that tab, so files can be moved into folders of another tab.
- ⚡ **Faster terminal rendering.** The terminal tab now renders with WebGL where the browser supports it and takes in bursts of output in larger batches, so heavy output is handled faster.
- 🩺 **Terminal system info.** The terminal menu now has a System info view with the terminal's CPU, memory, disk, network, uptime and top processes.
- 🖌️ **Edit images from the terminal.** The image edit tool can now take source images from the selected terminal by file path, as PNG, JPEG, WebP or GIF up to 25 megapixels. [#33824](https://github.com/open-webui/open-webui/issues/33824)
- 🎙️ **Voice notes in files.** A new shortcut, Cmd+Alt+M (Ctrl+Alt+M elsewhere), records a voice note, can transcribe it, and saves the recording with a Markdown note in the current folder of the selected terminal, then opens the note in a tab. Escape cancels a recording. [#33902](https://github.com/open-webui/open-webui/pull/33902), [#33903](https://github.com/open-webui/open-webui/pull/33903)
- 📢 **Model availability events.** Open WebUI now publishes model.available and model.unavailable events when a model appears in or disappears from the fetched model list.
- 🗒️ **Descriptions in model pickers.** The tool, skill, filter, action and sub-agent pickers in the model editor now show each item's description under its name. [#33723](https://github.com/open-webui/open-webui/pull/33723)
- 🔢 **Grouped token counts.** Whole numbers in the token usage tooltip are now grouped by thousands for the interface language, for example 26,678,623. [#33896](https://github.com/open-webui/open-webui/pull/33896)
- 🎼 **Notification sound styles.** The notification sound setting now offers Chime, Soft, Bell and Tap sounds, with a play button to preview each one.
- 🔄 **General improvements.** Various improvements were implemented across the application to enhance performance, stability, and security.
- 🌐 **Translation updates.** Translations for Portuguese (Brazil), Azerbaijani, Basque, Bengali, Bosnian, Bulgarian, Cebuano, Croatian, Czech, Danish, Dutch, Estonian, Faroese, Filipino, Galician, Georgian, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Irish, Japanese, Kabyle, Korean, Lithuanian, Malay, Norwegian Bokmål, Persian, Polish, Punjabi, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish (Spain), Swedish, Tamil, Thai, Tibetan, Turkish, Turkmen, Ukrainian, Urdu, Uyghur and Vietnamese were enhanced and expanded.
### Fixed
- 🛡️ **Security Advisory**: This release contains **security fixes**. We **strongly recommend updating** all deployments **as soon as possible** to have the latest security fixes in place. These fixes are **not listed in this changelog**; we will publish the security advisories for them immediately following CVE assignment. [Advisories](https://github.com/open-webui/open-webui/security)
- 🗄️ **Redis Cluster chats.** Sending a chat message on a Redis Cluster deployment no longer fails while the personal terminal relay starts. [#33766](https://github.com/open-webui/open-webui/pull/33766)
- 🚪 **Automatic SSO sign-in.** With automatic SSO redirect on, an expired session now signs you back in without a state mismatch error. [#33791](https://github.com/open-webui/open-webui/pull/33791), [#33783](https://github.com/open-webui/open-webui/issues/33783)
- 🎨 **OpenAI image default model.** Image generation with the OpenAI engine now defaults to GPT-IMAGE 2 instead of the shut-down DALL·E 2, and the shut-down DALL·E models are no longer offered. [#33694](https://github.com/open-webui/open-webui/pull/33694), [#33578](https://github.com/open-webui/open-webui/issues/33578)
- 🖼️ **Default GPT image requests.** OpenAI image generation and editing with no model explicitly set no longer send an unsupported response format to the default GPT image model. [#33875](https://github.com/open-webui/open-webui/pull/33875)
- 🔐 **Terminal Session authentication.** Terminal connections set to Session authentication now accept an API key, so Verify Connection, the policy settings and the terminal tools work again. [#33699](https://github.com/open-webui/open-webui/pull/33699), [#30001](https://github.com/open-webui/open-webui/issues/30001), [#33579](https://github.com/open-webui/open-webui/issues/33579)
- 🦙 **Ollama broken tool calls.** Chats with Ollama models no longer get stuck after a tool call with cut-off, rejected or empty arguments. [#33697](https://github.com/open-webui/open-webui/pull/33697), [#33671](https://github.com/open-webui/open-webui/issues/33671)
- 🧠 **Complete compaction summaries.** Context compaction summaries are no longer cut off at 1000 tokens, which could leave reasoning models with an empty or truncated summary. [#33726](https://github.com/open-webui/open-webui/pull/33726)
- 💾 **Prompt cache on tool results.** Tool results sent through OpenAI-compatible gateways now keep their prompt cache marker, so Anthropic models behind OpenRouter or LiteLLM can cache the prefix in tool loops. [#33757](https://github.com/open-webui/open-webui/pull/33757), [#33755](https://github.com/open-webui/open-webui/issues/33755)
- 📖 **File read size limit.** Reading a file by line range now stops at the same size limit as other reads, so one read can no longer overflow the context window of the model. [#33696](https://github.com/open-webui/open-webui/pull/33696), [#33607](https://github.com/open-webui/open-webui/issues/33607)
- 🧰 **Tool Search retries.** A malformed tool call with Tool Search on no longer disables tools for the rest of the reply, so the model can correct its arguments and try again. [#33872](https://github.com/open-webui/open-webui/pull/33872)
- 🧩 **Split tool calls.** When a model sends several tool calls glued into one, the chat no longer shows an extra tool call that never gets a result. [#33779](https://github.com/open-webui/open-webui/pull/33779), [#33778](https://github.com/open-webui/open-webui/issues/33778)
- 🔎 **External knowledge base queries.** External knowledge bases now search with every generated query at the same time instead of using only the results of the first one. [#33704](https://github.com/open-webui/open-webui/pull/33704), [#33184](https://github.com/open-webui/open-webui/issues/33184)
- 📊 **Large spreadsheet uploads.** Uploading a large, sparsely filled spreadsheet no longer takes minutes and stalls the server. [#33770](https://github.com/open-webui/open-webui/pull/33770), [#33768](https://github.com/open-webui/open-webui/issues/33768)
- 🧱 **Milvus knowledge base uploads.** Adding a file to a knowledge base on Milvus no longer processes the file a second time or stores its chunks twice. [#33745](https://github.com/open-webui/open-webui/pull/33745), [#33744](https://github.com/open-webui/open-webui/issues/33744)
- 📄 **MinerU 4.1 servers.** The MinerU document loader in local mode now works with MinerU 4.1 servers, where every document used to fail. [#33719](https://github.com/open-webui/open-webui/pull/33719), [#33718](https://github.com/open-webui/open-webui/issues/33718)
- 🔑 **MCP OAuth stays signed in.** The login to an MCP tool server that uses OAuth is no longer lost when the provider has a temporary outage while the token is refreshed. [#33805](https://github.com/open-webui/open-webui/pull/33805), [#33803](https://github.com/open-webui/open-webui/issues/33803)
- 📍 **Location lookup delays.** With location access turned on, sending a message no longer waits for a slow or unanswered browser location request.
- 🗓️ **Automation schedule examples.** Models creating automations through the built-in tool no longer hit "Invalid RRULE" errors caused by a wrong example schedule format. [#33732](https://github.com/open-webui/open-webui/pull/33732), [#33730](https://github.com/open-webui/open-webui/issues/33730)
- ♿ **Keyboard and screen reader fixes.** Keyboard focus now stays where it belongs: on buttons while they save, in place when you cancel a message edit, switch message versions or sort and page a workspace or notes list, on the first and last page buttons, and in the title field while a note title is generated. Closing a channel thread, a note panel or a chat menu returns focus to where it was, and the sign-in skip link moves focus to the form. The show password button is now wide enough to hit, and holding Shift no longer swaps row buttons for Delete while a keyboard user has focus.
- 🕵️ **Audit log secret masking.** With request auditing on, the audit log now masks API keys, tokens and secrets saved in the admin settings, not only passwords. [#33746](https://github.com/open-webui/open-webui/pull/33746)
- 🔇 **Queries kept out of logs.** The default server log no longer contains your search queries or the provider address of a failing external reranker. [#33701](https://github.com/open-webui/open-webui/pull/33701)
- 💬 **Chat message search.** Workspace search now finds message text and shows matching excerpts in chats whose messages are stored separately from the chat record. [Commit](https://github.com/open-webui/open-webui/commit/07029af63db59c9ce868b4562aa3f1c848e8b9e7)
- 🔃 **Search results stay current.** Notes, archived and shared chats, the admin user list and the knowledge and file pickers in the message input no longer let an older search replace the results of a newer one. [Commit](https://github.com/open-webui/open-webui/commit/53b1b1928b1ee08175c0218884d7fe40c6aa909c)
- 👎 **Feedback details saved.** A thumbs-down reason and comment are no longer lost when saved before the feedback tags finish generating. [#33716](https://github.com/open-webui/open-webui/pull/33716)
- 🎒 **Side chat default tools.** New side chats now start with the same default tools, skills, filters and web search as a normal chat with that model. [#33788](https://github.com/open-webui/open-webui/pull/33788)
- ✅ **Side chat tool approvals.** Tool calls in side chats now show working approval controls and resume the reply after approval. [#33889](https://github.com/open-webui/open-webui/pull/33889)
- ❓ **Side chat questions.** Questions asked through the model's ask_user tool now appear in side chats and can be answered or dismissed, including after reopening the chat. [#33901](https://github.com/open-webui/open-webui/pull/33901)
- ⏩ **Continued replies on Responses connections.** Continuing a reply on a Responses API connection now adds the new text to the existing reply.
- 🛂 **Model required before sending.** The file ask box, follow-up suggestions and queued messages now report "Model not selected" instead of trying to send when no model is selected. [#33838](https://github.com/open-webui/open-webui/pull/33838)
- 👻 **Temporary chat button with tabs.** The Temporary Chat button is back on new chats when the tabbed layout is on. [#33680](https://github.com/open-webui/open-webui/pull/33680)
- 🪧 **Stable MCP app views.** MCP apps in chat no longer reload and lose their state while the message around them updates.
- 🎴 **Artifacts keep the chat visible.** Opening an HTML or SVG preview from a reply now uses the side pane instead of replacing the visible chat tab. [#33894](https://github.com/open-webui/open-webui/pull/33894)
- 📣 **Banners in tabbed view.** Admin banners and license notices now show on the new chat page when the terminal tabs split the screen. [#33789](https://github.com/open-webui/open-webui/pull/33789)
- 📡 **Tabs over plain HTTP.** The New File, New Terminal and Browser tabs in the side panel now open when Open WebUI is reached over plain HTTP on a LAN or Docker address. [#33847](https://github.com/open-webui/open-webui/pull/33847), [#33845](https://github.com/open-webui/open-webui/issues/33845)
- 🕶️ **Per-chat terminals in temporary chats.** Per-chat workspace terminals are no longer offered in temporary chats, where sending to them failed, and one already selected is deselected when Temporary mode is turned on. [#33866](https://github.com/open-webui/open-webui/pull/33866), [#33861](https://github.com/open-webui/open-webui/issues/33861)
- 🖥️ **Terminal kept on model switch.** Switching to a model without its own default terminal no longer turns off the terminal selected in the chat.
- 📁 **Working folder in new chats.** The terminal working folder of a new chat is no longer reset to the root when the chat is created before the file browser has finished loading.
- 📞 **Return to call.** The Return to call button now reopens the active voice call after switching to the chat tab. [#33898](https://github.com/open-webui/open-webui/pull/33898)
- 🔕 **Channel notifications clear on read.** Opening a channel now marks its notifications as read.
- 🪝 **Webhooks window stability.** The channel Webhooks window no longer jumps back to the webhook list when a new message arrives, so edits in progress are kept. [#33776](https://github.com/open-webui/open-webui/pull/33776), [#33775](https://github.com/open-webui/open-webui/issues/33775)
- 🎧 **Background audio on iOS.** With Auto-Playback Response off, tapping in Open WebUI or opening a chat no longer stops audio playing in other apps on iOS. [#33780](https://github.com/open-webui/open-webui/issues/33780)
- 🖨️ **Scanned PDF preview.** PDF previews no longer show blank pages for scanned PDFs that store their pages as JPEG2000 images. [#33906](https://github.com/open-webui/open-webui/pull/33906), [#33905](https://github.com/open-webui/open-webui/issues/33905)
- 🔬 **Preview zoom stability.** Zooming in PDF, Word and PowerPoint previews no longer resets or drifts when you switch tabs, change slides or resize the pane. [#33836](https://github.com/open-webui/open-webui/pull/33836), [#33835](https://github.com/open-webui/open-webui/issues/33835)
- 📌 **File preview from Controls.** A file preview opened from the Controls menu no longer closes when you click inside it. [#33831](https://github.com/open-webui/open-webui/pull/33831), [#33828](https://github.com/open-webui/open-webui/issues/33828)
- 🔭 **Tab bar and UI scale.** Tab content no longer slides under the tab bar when the UI scale is above 1. [#33830](https://github.com/open-webui/open-webui/pull/33830), [#33829](https://github.com/open-webui/open-webui/issues/33829)
- 🔘 **Desktop app top clicks.** In the desktop app, banners and menus near the top of the window now take clicks instead of dragging the window.
- 📱 **Mobile menu keyboard.** Closing the + menu on a phone no longer opens the keyboard. [#33893](https://github.com/open-webui/open-webui/pull/33893)
- 📝 **File rename in terminal.** Renaming a file or folder in the Open Terminal file browser no longer shows a false error after the rename succeeded. [#33786](https://github.com/open-webui/open-webui/pull/33786)
- 📋 **Stable file selection.** Selecting files no longer shifts the file rows when the bulk action bar appears, and clicking an empty area of the file list clears the selection. [Commit](https://github.com/open-webui/open-webui/commit/10f1226f0904a78a59daffeacbb7fd6404450364)
- 🫥 **Selection popups on scroll.** Scrolling the file view dismisses its Ask box, and scrolling a rich text editor dismisses its floating formatting menus until the selection changes. [Commit](https://github.com/open-webui/open-webui/commit/555125b3697781fa593a27cd496a4d84c772552a), [Commit](https://github.com/open-webui/open-webui/commit/2416b1fc0b83571652e0efff83f9591c89b62a64)
- 🙈 **Empty control groups hidden.** When every control of a group is hidden with Visible controls, the empty group heading or submenu no longer shows. [#33867](https://github.com/open-webui/open-webui/pull/33867)
- 🌄 **Chat background behind tabs.** The chat tab bar no longer covers the chat background with a solid strip. [#33849](https://github.com/open-webui/open-webui/pull/33849)
- 🌫️ **Top bar blur.** The top bars of Workspace, Admin Panel, Playground and Calendar no longer blur a page background image. [#33799](https://github.com/open-webui/open-webui/pull/33799), [#33798](https://github.com/open-webui/open-webui/issues/33798)
- 🗑️ **Feedback model filter.** Deleting the last feedback of a model in the Evaluations feedback list now clears the model filter. [#33794](https://github.com/open-webui/open-webui/pull/33794), [#33793](https://github.com/open-webui/open-webui/issues/33793)
- 🔤 **Visible controls labels.** Six toggles under Visible controls in the Admin Interface settings now show their names instead of raw translation keys. [#33734](https://github.com/open-webui/open-webui/pull/33734)
- 🤫 **Quiet terminal disconnects.** Closing the file panel or a terminal view right after opening it no longer logs an error traceback on the server. [#33863](https://github.com/open-webui/open-webui/pull/33863), [#33850](https://github.com/open-webui/open-webui/issues/33850)
- 📜 **Quieter MCP connection logs.** Logs no longer fill with a warning for every MCP server a user has not connected yet each time they load Open WebUI. [#33663](https://github.com/open-webui/open-webui/pull/33663)
- 🪪 **OAuth token refresh warnings.** Refreshing OAuth tokens with a client secret no longer logs deprecation warnings on every call. [#33700](https://github.com/open-webui/open-webui/pull/33700), [#33297](https://github.com/open-webui/open-webui/issues/33297)
### Changed
- ⚠️ **Database Migrations**: This release includes database schema changes; we strongly recommend backing up your database and all associated data before upgrading in production environments. If you are running a multi-worker, multi-server, or load-balanced deployment, all instances must be updated simultaneously, rolling updates are not supported and will cause application failures due to schema incompatibility.
- 💥 **Preload files off by default.** With native function calling, the default, attached files are no longer added to the conversation automatically, and models read them with their file tools instead. Models without tool support or without the Files built-in tool can no longer see attached files until you turn on Preload files in the model's Capabilities. Legacy function calling, and API requests that do not come from a chat in the web UI, keep the old behavior. [#33815](https://github.com/open-webui/open-webui/pull/33815)
- 🎯 **Retrieval defaults.** Unless you saved your own values, "RAG_TOP_K" and "RAG_TOP_K_RERANKER" now default to 10 instead of 3, and "CHUNK_SIZE" to 1024 instead of 1000. Each query now retrieves more text, so prompts with knowledge get longer. The new chunk size applies to files processed from now on; existing knowledge keeps its chunks until it is reindexed.
- 🧷 **Context as hidden tool results.** With native function calling, memory recall, the skills list and the attached knowledge list now arrive as hidden tool results after your message instead of in the system prompt. This is what keeps tool chats cacheable, and it means custom pipes can see a tool message as the last message.
- 🗨️ **Side chats are saved.** Side chats, which were always temporary in 0.13.0, are now saved as regular chats and appear in the chat list. They stay temporary only when you turn on Temporary Chat in the side chat or your admin enforces temporary chats.
- 🚧 **Tool call limit.** Reaching the tool call limit now makes the model write a final answer without tools, instead of ending the reply with the "Tool-call limit reached" error.
- 🔦 **Tool Search prompt.** With Tool Search on, the model no longer sees a list of the hidden tools and finds them only by searching.
- ✏️ **Always Use Full Text.** The Full Context Mode setting in the admin Documents settings is now called Always Use Full Text and includes complete documents regardless of the full text threshold.
- ↔️ **Always full-width tabs.** On large screens the tabbed workspace now always fills the chat area, with the chat as one of its tabs, and the full-width toggle added in 0.13.0 is gone.
- 🔀 **Integrations moved into + menu.** The Integrations button is now part of the + menu in the message input, and the new Show Input Selections setting, off by default, controls whether selected tools, skills, filters and capabilities are shown beside it.
- 🔓 **Side chat permission.** The Allow Side Chat permission no longer requires the Temporary Chat permission.
- 🕸️ **Chrome first in Browser tab.** The Browser tab now starts in Chrome mode when the terminal offers it, and switches to Proxy mode with a message if Chrome fails to start.
- ⛔ **Terminal select setting removed.** The Show Files on Terminal Select setting has been removed from the Interface settings. [#33855](https://github.com/open-webui/open-webui/pull/33855), [#33840](https://github.com/open-webui/open-webui/issues/33840)
## [0.13.0] - 2026-11-02
### Added
- 📑 **Tabbed workspace.** The Tabs button at the top of a chat now opens a workspace for files, multiple terminal sessions, artifacts, previews, voice calls and comments. Add tabs from the + menu, drag to reorder them, and create and save new files directly into the selected terminal. Keep the conversation and its working files together while coding, analyzing data or reviewing generated documents. [Commit](https://github.com/open-webui/open-webui/commit/2d7cf5ec99c3fa5c7ee48b91823fb8021b846cf3), [Commit](https://github.com/open-webui/open-webui/commit/5b58b1ebc03024fca1efd498aeabe4d9880dc3aa), [Commit](https://github.com/open-webui/open-webui/commit/a06aa230f75cc2d3512d1bca197a98f3c35da96f), [Commit](https://github.com/open-webui/open-webui/commit/cdc6feecd3769aac41844d81bd775dfb69b44912)
- 🖥️ **Open Terminal Desktop tab for computer use.** Open the Desktop tab from the + menu to view and control the desktop provided by your connected Open Terminal, with mouse, keyboard, clipboard and audio support where available. With a model that can call its desktop tools, you can follow computer-use workflows in the same desktop and step in yourself: operate graphical apps, inspect generated documents or handle a step that needs manual input. Requires an Open Terminal connection with desktop support enabled. [Commit](https://github.com/open-webui/open-webui/commit/b51e68fbb3e641e7f9027f5164fcf6b0e111cf27), [Commit](https://github.com/open-webui/open-webui/commit/3bd0cdd0f3cc075420540462f2bf246c73236495), [Commit](https://github.com/open-webui/open-webui/commit/03401a6e331d25425533933da85d3e5496deca3f), [Commit](https://github.com/open-webui/open-webui/commit/6dd3cc216f63085d2a1105117c65064c3e0ca3b6)
- 🌐 **Browser tab for browser use and web app testing.** Open websites and local development servers beside your chat, with navigation controls, multiple tabs and a mobile viewport. On a compatible Open Terminal connection, Chrome mode gives you and the model a shared browser session for browser automation: navigate sites, interact with forms and test the web apps the model builds. You can watch the work and interact with the page yourself; Proxy mode remains available for previews. Requires browser support on the selected terminal, and Chrome availability for browser-use tools. [Commit](https://github.com/open-webui/open-webui/commit/fbe69b01fd58a374211d348a28eb5988b11d41de), [Commit](https://github.com/open-webui/open-webui/commit/3bd0cdd0f3cc075420540462f2bf246c73236495), [Commit](https://github.com/open-webui/open-webui/commit/9260e312fb4238b504652eff0d8ca45445ca0821)
- ↔️ **Full-width tabs.** On larger screens, expand the tabbed workspace to fill the chat area, with the main conversation kept as its own tab. Switch between the chat, code, browser and desktop with more room to work, or return to the side-by-side layout; your layout choice is remembered. [Commit](https://github.com/open-webui/open-webui/commit/09030d5dd2def4324d98c25f92cf54b1ec1844f1), [Commit](https://github.com/open-webui/open-webui/commit/1ce8616ab9587ca717015d5af9cb26ee4296311f)
- 💻 **Open WebUI Desktop 0.1.x.** The separately installed app for macOS, Windows and Linux now focuses on setting up and running Open WebUI on your own computer, with optional llama.cpp local models. The 0.1.0–0.1.4 updates bring a slimmer interface, searchable settings, startup logs, optional automatic Desktop updates, start-to-tray controls and image copying and saving. They also improve screen sharing, knowledge folder uploads, Linux graphics and shortcuts, and NVIDIA/AMD local-model setup and updates. Use it for a managed local installation and local AI workflows. [Desktop changelog](https://github.com/open-webui/desktop/blob/v0.1.4/CHANGELOG.md), [Download v0.1.4](https://github.com/open-webui/desktop/releases/tag/v0.1.4)
- 🌿 **Git in the side panel.** When the selected terminal's folder is a Git repository, a Git panel in the tabbed side panel now lets you review diffs, stage, discard and commit changes, manage branches and worktrees, push and pull, browse history and work with GitHub pull requests, and open files can show their changes with Show diff. [Commit](https://github.com/open-webui/open-webui/commit/58926cfe7b98aab83c2544714d26cdbcc90722a3), [Commit](https://github.com/open-webui/open-webui/commit/3e24a08f8ec8472dcbbc46e7e39ab35aaa4a6f4f), [Commit](https://github.com/open-webui/open-webui/commit/30f0779d12072f98b2c3ce1b08819c72ab9c66d8), [Commit](https://github.com/open-webui/open-webui/commit/295b0778938cb9a133712b1bda4a18df92406375), [Commit](https://github.com/open-webui/open-webui/commit/250108302e6d73406c643a51eb5d9f80d39ddc03)
- ⚡ **Live terminal updates.** On terminals that support it, the Git panel, the list of open ports and the running processes and their output now update as soon as something changes instead of every few seconds. [Commit](https://github.com/open-webui/open-webui/commit/c4c10aa2559e10883797e3dd6702e16dc36eff19), [Commit](https://github.com/open-webui/open-webui/commit/70c5e38fc7ce3864426b484c07ee201cba2b9d07)
- 💭 **Side chats.** Typing "/side" or "/btw" in a chat, or choosing Side chat in the side panel, now opens a temporary side conversation using the chat so far as context. Ask a quick question or explore an alternative without adding the detour to the main conversation; the side chat disappears when you close its tab. Available to administrators and users given the new Allow Side Chat permission, which is off by default. [Commit](https://github.com/open-webui/open-webui/commit/321701c1af09d58f9ed6b67a22416ab8ddcfa165), [Commit](https://github.com/open-webui/open-webui/commit/151f7a84d1ca6949234671cd86d697abbce76444), [Commit](https://github.com/open-webui/open-webui/commit/27963030eccda5b8b27905ec0a35d5d9f09788e6)
- 💬 **Comment threads.** Administrators can now turn on Comments in Admin Settings > General or with "ENABLE_COMMENTS", which lets users leave comments with replies, reactions and mentions on the chats, notes, models, knowledge bases, prompts, skills and tools they can open, including on a selected passage of a chat message, which then stays highlighted in the reply, or of a note page, shown in a Comments tab in the chat's side panel, which "/comments" opens, and with comment counts in the workspace lists. [Commit](https://github.com/open-webui/open-webui/commit/9d1b4ef362f103f2dda05760a44c96df82c064fd), [Commit](https://github.com/open-webui/open-webui/commit/91e8deee74c627fee29c4c81833766040334170f), [Commit](https://github.com/open-webui/open-webui/commit/63312766f8de94bc8a054d7923f2f83410b841a2), [Commit](https://github.com/open-webui/open-webui/commit/04d78a483de671dbe789082b79638f9e44078819)
- 🔔 **Notification inbox.** A new Inbox in the sidebar collects comments on your items, replies to your comments, mentions in comments and channels, replies in channels, failed automation runs and upcoming calendar events with an unread count, and administrators can turn it off in Admin Settings > General or with "ENABLE_NOTIFICATIONS". [Commit](https://github.com/open-webui/open-webui/commit/3814b7b2f152c671fd3789e5a0099313d5316467), [Commit](https://github.com/open-webui/open-webui/commit/1a870d9481630861fe6d63de835d983df50b72c3), [#19539](https://github.com/open-webui/open-webui/issues/19539)
- 🧩 **MCP Apps in chat.** Tools from MCP servers that come with an interactive app now show that app right in the chat after they run, in a sandboxed frame that can only reach the sites the server declares, and every tool call the app wants to make waits for you to confirm it. [Commit](https://github.com/open-webui/open-webui/commit/0e0ba872a4d3e70c4e19e5c62b05fd7187b917f3), [Commit](https://github.com/open-webui/open-webui/commit/4ab90a6c1ff9526640e73ad37e67e88e693e2172), [#21040](https://github.com/open-webui/open-webui/discussions/21040), [#20915](https://github.com/open-webui/open-webui/discussions/20915)
- ✨ **Generate title from top bar.** The rename field at the top of an open chat now has the same sparkle button as the sidebar, which generates a title from the conversation and saves it right away. [#33382](https://github.com/open-webui/open-webui/pull/33382)
- 📐 **Side panels on tablets.** On screens from 768 pixels wide, such as tablets and narrow windows, channel threads and the pages list and chat in notes now open beside the content instead of over it, picking a terminal opens its files beside the chat as well, and the search dialog shows its preview there by default and remembers whether you turned it on or off at any window size. [Commit](https://github.com/open-webui/open-webui/commit/cbeb8e3630cafd7ef6fd28b552bf7114729f21b9), [Commit](https://github.com/open-webui/open-webui/commit/c5981aaea6b25bb9b9601e62b9ff75da33aaaf4e)
- 📊 **More PowerPoint charts.** The PowerPoint preview now draws pie, doughnut and horizontal bar charts as well as values below zero, and shows "Chart preview unavailable" for charts it cannot draw. [Commit](https://github.com/open-webui/open-webui/commit/09fbbd6d69293084d9e09cbb7d3b93e5d305ec5c), [#32884](https://github.com/open-webui/open-webui/issues/32884)
- 🧊 **3D model previews.** GLB, glTF, STL, OBJ and PLY files in a terminal's file browser and in files shown in chat replies now open in a 3D viewer that you can rotate and zoom. [Commit](https://github.com/open-webui/open-webui/commit/fe0d22cc24ddc2421b4e36a66a174188cc61d265)
- 🔘 **Switch tools on and off.** Tools in Workspace > Tools now have an on and off switch for everyone who can edit them, and a tool that is switched off can no longer be picked or run in any chat, including chats where it was already selected. [Commit](https://github.com/open-webui/open-webui/commit/9d1b4ef362f103f2dda05760a44c96df82c064fd)
- 🛠️ **Tool creation from chat.** Models with native function calling can now create a private Python tool in your workspace when you ask them to, for administrators and users allowed to create workspace tools, and it can be turned off per model under Tool Creation in the model editor's builtin tools. [Commit](https://github.com/open-webui/open-webui/commit/91241306e2541e984591435d8c25e9ab1442db6b)
- 🤝 **Multi-model sub-agents.** The model editor now lets you choose other models for a model to delegate work to, enabling multi-agent workflows such as assigning research, coding and review to different models. The parent model chooses among the configured models the user can access; previously, sub-agents always used the same model as the parent. [Commit](https://github.com/open-webui/open-webui/commit/789a0f402abe05e028bc8e0a8824d58b94e26d8f)
- 📏 **Knowledge base file limits.** Administrators can now cap how many files a knowledge base holds, how large each of its files may be and how many files go into it in one upload, for all knowledge bases in Admin Settings > Documents or with "KNOWLEDGE_MAX_FILE_COUNT", "KNOWLEDGE_MAX_FILE_SIZE" and "KNOWLEDGE_MAX_UPLOAD_COUNT", and a knowledge base's owner can set its own file count and size limits under Advanced when creating it or from Settings in its menu, while the global limits always apply. [Commit](https://github.com/open-webui/open-webui/commit/7618df3f53a8db2ad5352a789c88673a736b07a4), [Commit](https://github.com/open-webui/open-webui/commit/5c4fb61d862b011cf9efda6b2289de637ba8d6bb), [#33318](https://github.com/open-webui/open-webui/issues/33318), [#24845](https://github.com/open-webui/open-webui/discussions/24845)
- 📄 **File sizes in previews.** Opened terminal files now show their size in the file toolbar, so you can check a document or generated output without leaving its preview. [Commit](https://github.com/open-webui/open-webui/commit/2e55c365645e538c54b0d31b7bc8a977f6bb8b85)
- 🗂️ **Sort files by date added.** The terminal file browser can now sort files by when they were added, next to name, size and date modified, on terminals that report creation times. [Commit](https://github.com/open-webui/open-webui/commit/8c308e4e88c48924209f0018d73beb82a4ba2d94)
- ↕️ **Move blocks in notes.** Every paragraph, heading and other block in a note now has a handle beside it that you can drag to move the block, or click to move it up or down. [Commit](https://github.com/open-webui/open-webui/commit/3bb962f2bbd82ebe8ccad6f64304956aee2f4f97)
- 📋 **Copy code in notes.** Code blocks in notes now have a Copy button and use clearer syntax colors in light mode. [Commit](https://github.com/open-webui/open-webui/commit/ab71357980dab80de23b3597a13a41557a11df99), [Commit](https://github.com/open-webui/open-webui/commit/ee8b69e718aa7f0b962309e0137aa81f557093eb), [#33455](https://github.com/open-webui/open-webui/issues/33455)
- ⏸️ **Approvals shown in sidebar.** Chats in the sidebar now show a "Waiting for approval" marker while a tool call in them waits for you to allow or deny it. [Commit](https://github.com/open-webui/open-webui/commit/ddb43c83bac60553b002f148265db0900bc2b9f4), [Commit](https://github.com/open-webui/open-webui/commit/2840f0e07b398b76db04978334e3232fe8b89c31)
- 🏷️ **Role prompt variable.** System prompts, saved prompts and chat requests through the API can now use "{{USER_ROLE}}", which is replaced with the signed-in user's role, such as admin or user. [#33441](https://github.com/open-webui/open-webui/pull/33441), [#4765](https://github.com/open-webui/open-webui/discussions/4765)
- ♿ **Accessibility improvements.** Screen reader users now hear a name for every window, form field, setting and icon button, including Admin Settings, Valves, filters and channel message actions, and keyboard users can answer tool approvals, dismiss notifications, open model details in Admin Analytics, sort Analytics and group member tables, resize the sidebar, open notebook cells for editing, use multi-select lists in Valves, pick a status emoji, choose tag and voice suggestions, open the sources of a web search, use the menus in the Search window, stay inside the full-size image viewer and side drawers until they close them and reach every event on the calendar. Closing a window opened from a menu now returns focus to the menu button, Tab cancels shortcut recording, task-list checkboxes are named by their text, and unselected Analytics tabs have better contrast in Accessibility Mode. [Commit](https://github.com/open-webui/open-webui/commit/a671146b9172407d11240b8130eda9e92dfb2225), [Commit](https://github.com/open-webui/open-webui/commit/0171427a10f168da0d5b733fa5d0786c4d63b851), [Commit](https://github.com/open-webui/open-webui/commit/51cef9e26f17ad5baf1f6d51f72d87651d7e98e4), [Commit](https://github.com/open-webui/open-webui/commit/0a18dfc1841f99b143ae697eff0e51a24057d4fd)
- 🔄 **General improvements.** Various improvements were implemented across the application to enhance performance, stability, and security.
- 🌐 **Translation updates.** Translations for Portuguese (Brazil), Latvian, Azerbaijani, Basque, Bengali, Bosnian, Bulgarian, Cebuano, Croatian, Czech, Danish, Dutch, Estonian, Faroese, Filipino, Galician, German, Greek, Hebrew, Hungarian, Indonesian, Irish, Japanese, Korean, Lithuanian, Malay, Norwegian Bokmål, Persian, Polish, Punjabi, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish (Spain), Tamil, Turkish, Turkmen, Ukrainian and Vietnamese were enhanced and expanded.
### Fixed
- 🛡️ **Security Advisory**: This release contains **security fixes**. We **strongly recommend updating** all deployments **as soon as possible** to have the latest security fixes in place. These fixes are **not listed in this changelog**; we will publish the security advisories for them immediately following CVE assignment. [Advisories](https://github.com/open-webui/open-webui/security)
- 🔃 **New chats stay in sync.** A chat started from the home page keeps syncing with the server again after it is created, so files removed from the chat's Controls no longer come back after a reload and the owner of a chat shared with Allow replies gets Regenerate on other people's replies again. [#33377](https://github.com/open-webui/open-webui/pull/33377), [#33376](https://github.com/open-webui/open-webui/issues/33376)
- 📂 **Temporary Chat on folder pages.** Turning Temporary Chat on or off on a folder's page, with the button at the top or with "/temporary", now keeps you on the folder page, so the next chat is still saved in the folder and gets its system prompt, default model and knowledge. [#33456](https://github.com/open-webui/open-webui/pull/33456), [#33448](https://github.com/open-webui/open-webui/issues/33448)
- 🧵 **Thread reply focus.** Choosing Reply in Thread on a channel message now puts the cursor in the thread's reply box, also when the thread panel is already open. [#33467](https://github.com/open-webui/open-webui/pull/33467), [#33466](https://github.com/open-webui/open-webui/issues/33466)
- 🪟 **Thread message actions visible.** Hovering the top message in a channel thread now shows its whole actions toolbar instead of cutting off its top half at the edge of the panel. [Commit](https://github.com/open-webui/open-webui/commit/08f197ad8d87b4f71be311888541c601942e96b9), [#33472](https://github.com/open-webui/open-webui/issues/33472)
- 📞 **Interrupting realtime calls.** Interrupting the model while it speaks in a realtime voice call no longer ends the whole call when the reported playback position does not match the audio. [Commit](https://github.com/open-webui/open-webui/commit/e5a2e6438e6f7455c7f0dcc304cd1b08329afe8b), [#33550](https://github.com/open-webui/open-webui/issues/33550)
- 📶 **Temporary chats after reconnecting.** A reply that is still being written in a temporary chat now keeps arriving after the connection drops and comes back, and a reply that could not finish shows "Connection lost. Please retry." instead of loading forever. [Commit](https://github.com/open-webui/open-webui/commit/321701c1af09d58f9ed6b67a22416ab8ddcfa165)
- 🏠 **New chat initialization.** Opening or reloading the home page or a folder now selects the model and applies chat URL parameters again, instead of leaving the model empty and ignoring the link’s settings. [Commit](https://github.com/open-webui/open-webui/commit/082df44d92178b6895153774bf6656c538cbce40)
- ✍️ **Restored chat drafts.** Saved draft text now returns to the message input after the new-chat editor mounts, instead of disappearing during initialization. [Commit](https://github.com/open-webui/open-webui/commit/4ea29c0d6198e44a84aae01475b003c8bc192e5b)
- 🧩 **Nested code previews.** Preview now opens code blocks inside lists, quotes and details blocks, so embedded examples and generated artifacts can be inspected directly. [Commit](https://github.com/open-webui/open-webui/commit/aec5796a535beaf3730e8c8a8b0426a94b3b1b44)
- 🖼️ **Image drops from photo apps.** Images dropped into chats and channels are now recognized from their contents when the source omits the file type, including photos dragged from macOS Photos, instead of being treated as generic files. [Commit](https://github.com/open-webui/open-webui/commit/563d621854e7a465a7713a811e996729a3e23499)
- 📏 **Live context usage estimates.** The context indicator now accounts for output arriving after the latest reported token usage and avoids counting assistant text twice when it also appears in structured output, making it easier to track context-window usage during long agent runs. [Commit](https://github.com/open-webui/open-webui/commit/8e61cc02106e4f698494c7813fa6602fd46f5f87)
- 🔌 **Responses-backed API streaming.** Clients using Open WebUI’s Chat Completions API now receive the expected streaming format even when the upstream model uses the Responses API, including text, reasoning, tool calls, token usage and completion reasons. [Commit](https://github.com/open-webui/open-webui/commit/e789513ea62eb0c56f36d7c48996f084931f1c49)
- 😀 **Channel reaction names.** Hovering a reaction on a channel message now shows who reacted when those names are available, instead of showing only the count. [Commit](https://github.com/open-webui/open-webui/commit/ea1c60fbdf3cfc08ddf4128ab33007380228e86c)
- 📊 **Analytics activity scrolling.** The activity chart now tracks the element actually being scrolled, keeping its visible rows in sync when browsing longer activity lists. [Commit](https://github.com/open-webui/open-webui/commit/f0e7d718caaba875621bf686c13c9c021d28643d)
- 🔑 **Saved OAuth provider settings.** OAuth providers now load their saved connection settings when Open WebUI starts. Admin Settings also explains that changes to provider connections require restarting every Open WebUI instance. [Commit](https://github.com/open-webui/open-webui/commit/bab66b2c2ff0e48b2a07a278d73e490b6577297c)
### Changed
- ⚠️ **Database Migrations**: This release includes database schema changes; we strongly recommend backing up your database and all associated data before upgrading in production environments. If you are running a multi-worker, multi-server, or load-balanced deployment, all instances must be updated simultaneously, rolling updates are not supported and will cause application failures due to schema incompatibility.
- 🎛️ **Controls in the model menu.** The chat files, valves, system prompt and advanced parameters moved from the Controls panel at the top of the chat to Controls in the model controls menu next to the message input, and the button at the top now opens the tabbed side panel. [Commit](https://github.com/open-webui/open-webui/commit/2d7cf5ec99c3fa5c7ee48b91823fb8021b846cf3), [Commit](https://github.com/open-webui/open-webui/commit/950da84bdb57423d9d2ddd6d29659d56174d8c22)
- 🗺️ **Overview in the chat menu.** The chat Overview, the map of all messages and their branches, now opens as a full-screen window from Overview in the chat's menu instead of as a tab in Chat Controls. [Commit](https://github.com/open-webui/open-webui/commit/fe0d22cc24ddc2421b4e36a66a174188cc61d265)
- 🔁 **Higher tool-call limit.** A single response with native function calling can now run up to 1024 rounds of tool calls before it stops with "Tool-call limit reached", up from 256, and setting "CHAT_RESPONSE_MAX_TOOL_CALL_ITERATIONS" to 256 keeps the old limit. [#33384](https://github.com/open-webui/open-webui/pull/33384)
- 🔓 **No sub-agent limits by default.** The sub-agent limits in Admin Settings and through "SUBAGENTS_MAX_CONCURRENT", "SUBAGENTS_MAX_ASYNC", "SUBAGENTS_MAX_ITERATIONS" and "SUBAGENTS_MAX_OUTPUT" now default to no limit, and leaving one empty means no limit, where they defaulted to 20 at once, 20 in the background, 30 tool loops each and 30000 characters of output. [Commit](https://github.com/open-webui/open-webui/commit/f0cc1bb86e52ec629993f5cd26f5f001bd5b72a6)
- 🧠 **Context compaction and prompt caching.** When the same model handles the conversation and its compaction summary, eligible requests now reuse the conversation’s prompt structure so the provider can use its prompt cache. This can reduce the cost of summarizing long conversations and agent workflows; other requests retain the separate summary path. [Commit](https://github.com/open-webui/open-webui/commit/a8b478ed7b8d22fe5b8f96be3c4cfd08cd30affb)
- 💻 **Desktop 0.1.x upgrade changes.** Open WebUI Desktop no longer switches between remote servers, bundles Open Terminal, or provides the old Spotlight and global voice overlays. Existing remote-connection users should review [Open WebUI Tether](https://github.com/open-webui/tether). The Open Terminal Desktop and Browser tabs described above use a separately configured Open Terminal connection. [Desktop 0.1.0 release notes](https://github.com/open-webui/desktop/releases/tag/v0.1.0)
- 📭 **File processing alerts removed.** Personal notifications in Settings > Notifications no longer offer "Retrieval Content process failed", so notification webhooks no longer receive an alert when a file fails to process. [Commit](https://github.com/open-webui/open-webui/commit/3814b7b2f152c671fd3789e5a0099313d5316467)
## [0.12.5] - 2026-10-29
### Added
- 🧭 **Analytics session explorer.** Administrators can now open a Sessions tab in Admin Analytics that lists each chat with its tokens, responses, errors and time span, filters them by search, model, token range or sub-agents, and shows a chat's saved replies and tool calls with their timing and outcome, as long as "ENABLE_ADMIN_CHAT_ACCESS" is on. [Commit](https://github.com/open-webui/open-webui/commit/7b303cf496f22d665ff1f1013a2308de0d74a7a4)
- 📑 **Pages in notes.** Notes can now hold several pages and subpages, which you can add, rename, reorder, move under another page, download, link to and delete from the page tabs, and search results and the model now work with notes page by page. [Commit](https://github.com/open-webui/open-webui/commit/b34885efc639c10cbf06c35cd2d4ff6055e36b45)
- 👀 **Live presence in notes.** A note now shows who else has it open, and clicking a person jumps to the page and spot they are working on. [Commit](https://github.com/open-webui/open-webui/commit/e3ad014fb250c663a124ada0046c4017b85aabd6)
- ✏️ **Rename from chat menu.** The menu next to an open chat's title now has Rename, which turns the title at the top of the page into a text box, so a chat can be renamed without finding it in the sidebar first. [#33177](https://github.com/open-webui/open-webui/pull/33177), [#33176](https://github.com/open-webui/open-webui/discussions/33176), [#33246](https://github.com/open-webui/open-webui/issues/33246), [#33339](https://github.com/open-webui/open-webui/pull/33339), [#33338](https://github.com/open-webui/open-webui/issues/33338), [Commit](https://github.com/open-webui/open-webui/commit/551b03ff90bddaa2bbdac49d76d2bab61367e895), [Commit](https://github.com/open-webui/open-webui/commit/f517e528d2f2865c6e730966343eef6c02c064b8)
- 🖼️ **Generated images in terminals.** When a terminal is selected in a chat, generated and edited images are now also saved to its working folder, so the model can keep working on them with the terminal's tools. [Commit](https://github.com/open-webui/open-webui/commit/b420726ff1f04dff07a2877511b30ebe7b9887bb)
- 🗃️ **Models show chat files.** Models can now show a file attached in the chat or stored in an attached knowledge base right in the reply with the built-in display_file tool, which until now only worked for terminal files. [#32471](https://github.com/open-webui/open-webui/issues/32471), [Commit](https://github.com/open-webui/open-webui/commit/f2cdbbebe3cb40aab77516515198c7fa6c4818b7), [Commit](https://github.com/open-webui/open-webui/commit/ef29fb12f1f641bf1d83b434a37298846d211deb)
- 💾 **Chat model choice saved.** Changing the model in a chat is now saved with the chat right away, so the chat reopens with that model even when no message was sent after the change. [Commit](https://github.com/open-webui/open-webui/commit/3aaecdd0e99f6407187732f2fb117841ce2cc013)
- ⌨️ **Unassign single shortcuts.** Settings > Keyboard now shows a small x beside every assigned shortcut that unassigns only that one, so a shortcut such as Regenerate Response on Ctrl+R or Cmd+R can be switched off while all others keep working. [#33185](https://github.com/open-webui/open-webui/pull/33185), [#31463](https://github.com/open-webui/open-webui/discussions/31463), [Commit](https://github.com/open-webui/open-webui/commit/9fef07de3ae8c16b8f53e46b456c144bd739a8a2)
- 🎚️ **Slider for number Valves.** Plugin authors can now show a number Valve or UserValve as a slider with a number box beside it, whose ends come from the field's minimum and maximum, so users see the allowed range while picking a value. [#33179](https://github.com/open-webui/open-webui/pull/33179), [#32045](https://github.com/open-webui/open-webui/discussions/32045), [Commit](https://github.com/open-webui/open-webui/commit/9ed317dc90c7a7fda96a6de68491648341d27ca2)
- 📇 **Provider details for models.** Administrators editing a model now see a Provider details section with the input and output types, context window, maximum output and supported parameters that the provider reports for it. [Commit](https://github.com/open-webui/open-webui/commit/18996b03bafa46e80bf91a1798ed1b8e0c86081c)
- 🧲 **Embedding prefixes in settings.** Administrators can now set the query and content prefixes that some embedding models need under Admin Settings > Documents, where they could only be set with the "RAG_EMBEDDING_QUERY_PREFIX" and "RAG_EMBEDDING_CONTENT_PREFIX" environment variables. [Commit](https://github.com/open-webui/open-webui/commit/4a10c093ab1dc9d195c4bcd662c22aec97bba22c)
- ⏱️ **Terminal start timeout.** Open WebUI now waits up to 60 seconds by default when it asks a terminal for its skills, AGENTS.md file or uploads, so a terminal that is still starting can answer, with "AIOHTTP_CLIENT_TIMEOUT_TERMINAL" to change the limit and a message naming the terminal when it still times out. [Commit](https://github.com/open-webui/open-webui/commit/ab133dba2183491d7c22229ae2b3b30cacf020d4)
- 🚨 **Automation failure notifications.** Automation run failed is now an event users can pick for their notification targets under Settings > Notifications, so the owner hears about every failed run with the automation's name and error. [#33331](https://github.com/open-webui/open-webui/pull/33331), [#33228](https://github.com/open-webui/open-webui/issues/33228), [Commit](https://github.com/open-webui/open-webui/commit/e49ff5df64a1523b80fce8ef03637953265c4355)
- ⚡ **Faster knowledge base commands.** Knowledge base commands such as ls, cat and grep and the knowledge base sync check now list files without loading every file's full text, so on large knowledge bases each call is up to ten times faster and uses far less memory. [#33332](https://github.com/open-webui/open-webui/pull/33332), [#33322](https://github.com/open-webui/open-webui/issues/33322), [Commit](https://github.com/open-webui/open-webui/commit/517f824eb42615b203eb5c1f8779c268aa829960)
- 🔭 **Faster chat search.** Searching your chats, including from the Reference Chats menu and the model's chat search tool, no longer loads every matching chat in full, so results come back faster on large chat histories, and a result's message preview in the Reference Chats menu now loads when you hover it. [Commit](https://github.com/open-webui/open-webui/commit/44a9d499db851f7c6243ada8bfddb9d5b419f473)
- 📦 **Batched document embedding.** Large documents are now embedded and saved in batches of 1000 chunks by default, set with "RAG_EMBEDDING_BUFFER_SIZE", so processing a very large file holds far less in memory at once. [Commit](https://github.com/open-webui/open-webui/commit/58536b65038dc7ff17d02dd78c60cc71ce110f92)
- 🧾 **Mistral OCR model choice.** Administrators can now pick the Mistral OCR model and send extra request options through a Parameters field in Admin Settings > Documents or "MISTRAL_OCR_PARAMS", for example to stay on an older OCR model or to match what an Azure AI Foundry endpoint expects. [#33333](https://github.com/open-webui/open-webui/pull/33333), [#19707](https://github.com/open-webui/open-webui/issues/19707), [Commit](https://github.com/open-webui/open-webui/commit/f1f0a194aef3d029f8243f7e7ac553d492283c07)
- 📉 **Negative relevance threshold.** The Relevance Threshold in Admin Settings > Documents now takes negative values for rerankers that return raw scores below zero, where the field refused them and a negative "RAG_RELEVANCE_THRESHOLD" kept the page from saving while hybrid search was on. [#33330](https://github.com/open-webui/open-webui/pull/33330), [#29888](https://github.com/open-webui/open-webui/issues/29888), [Commit](https://github.com/open-webui/open-webui/commit/34ef99dbfb0815fbca10d3faea2da7c50f29e19f)
- 🎞️ **Animated ComfyUI images.** Images from ComfyUI's Save Animated WEBP and Save Animated PNG nodes now show up in the chat as the animated file, for both image generation and image editing. [#33325](https://github.com/open-webui/open-webui/pull/33325), [#33013](https://github.com/open-webui/open-webui/issues/33013), [Commit](https://github.com/open-webui/open-webui/commit/cfe745b00c272679db7a6082749f6f7a6c5f7e36)
- 📡 **Metrics skip health checks.** OpenTelemetry metrics now leave out requests whose URL matches "OTEL_PYTHON_FASTAPI_EXCLUDED_URLS" or "OTEL_PYTHON_EXCLUDED_URLS", so health checks and probes no longer fill the request metrics, the same way traces already skip them. [#33329](https://github.com/open-webui/open-webui/pull/33329), [#31609](https://github.com/open-webui/open-webui/issues/31609), [Commit](https://github.com/open-webui/open-webui/commit/76b7be67fce6375244e4b00f0fdda5fb896e056e)
- 🗝️ **Admins manage user API keys.** Administrators can now rotate or delete a user's API key in the Edit User dialog, and a rotated key is shown once so it can be copied. [#32774](https://github.com/open-webui/open-webui/issues/32774), [Commit](https://github.com/open-webui/open-webui/commit/360d81dfe8f68f8fe7e26702cfcdc8921941da1a), [Commit](https://github.com/open-webui/open-webui/commit/fdaa240d441de02a687f3ea069409f5ff7851a74)
- 👓 **More hideable chat controls.** Administrators can now also hide the selected tools, skills, filters, web search, image generation and code interpreter shown in the chat input, through Visible controls in Admin Settings > Interface or "UI_VISIBILITY". [#32408](https://github.com/open-webui/open-webui/issues/32408), [Commit](https://github.com/open-webui/open-webui/commit/839759cb179e9924149648a896cd9bab15037d6e)
- ♿ **Improved UI accessibility.** Screen reader and keyboard users can now move through a chat message by message with each message's name as a heading, move through menus and submenus with the arrow keys, Home and End, reach a note's Generate title button and the options of a filter list opened with the mouse, leave the Compare revision editors with Escape and Tab, and hear names for every field of the calendar event window, the last column of the Users and Feedback tables and each day in the Settings > Usage heatmap, while the model picker outlines only one row, takes keyboard focus when opened in a window and leaves focus in that window when it closes, and focus outlines on tab rows are no longer cut off.
- 🔄 **General improvements.** Various improvements were implemented across the application to enhance performance, stability, and security.
- 🌐 **Translation updates.** Translations for Portuguese (Brazil), Catalan, Italian, Azerbaijani, Basque, Bengali, Bosnian, Bulgarian, Cebuano, Croatian, Czech, Danish, Dutch, Estonian, Faroese, Filipino, Galician, Georgian, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Irish, Japanese, Kabyle, Korean, Latvian, Lithuanian, Malay, Norwegian Bokmål, Persian, Polish, Punjabi, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish (Spain), Swedish, Tamil, Thai, Tibetan, Turkish, Turkmen, Ukrainian, Urdu, Uyghur and Vietnamese were enhanced and expanded.
### Fixed
- 🛡️ **Security Advisory**: This release contains **security fixes**. We **strongly recommend updating** all deployments **as soon as possible** to have the latest security fixes in place. These fixes are **not listed in this changelog**; we will publish the security advisories for them immediately following CVE assignment. [Advisories](https://github.com/open-webui/open-webui/security)
- 🔎 **Search dialog filters restored.** The search dialog again understands and suggests the "tag:", "folder:", "pinned:", "shared:" and "archived:" filters, where adding one emptied the results and archived chats could not be found at all. [#33181](https://github.com/open-webui/open-webui/pull/33181), [#32518](https://github.com/open-webui/open-webui/issues/32518), [Commit](https://github.com/open-webui/open-webui/commit/ec83763f1373801e7d0ed2f39e0b53f58a75156c)
- 📍 **Search locations by type.** The Location filter in the search window now lists only folders for Chats and only channels for Messages, and switching the content type clears a location that no longer fits, where such a pick returned an empty list. [#33183](https://github.com/open-webui/open-webui/pull/33183), [#33182](https://github.com/open-webui/open-webui/issues/33182), [Commit](https://github.com/open-webui/open-webui/commit/0f28fa402354aa4f5526dbd238da1ec567582466)
- 🧮 **Inflated streamed token counts.** Token counts for a reply are no longer inflated when the provider reports its usage again on every streamed chunk, where every report was added up, so the usage shown for the reply and in Admin Analytics now matches the provider's final count. [#32052](https://github.com/open-webui/open-webui/issues/32052), [#29064](https://github.com/open-webui/open-webui/issues/29064), [#28528](https://github.com/open-webui/open-webui/issues/28528), [Commit](https://github.com/open-webui/open-webui/commit/7b303cf496f22d665ff1f1013a2308de0d74a7a4)
- 📝 **Note typing after Formatting.** Typing in a note now works right after switching Formatting on or off in the note's menu, where the editor stopped taking input and saving until the page was reloaded. [#33222](https://github.com/open-webui/open-webui/pull/33222), [Commit](https://github.com/open-webui/open-webui/commit/67875f7656d3b531f4b482ebc5171b68b5972613)
- 🎙️ **Note recordings kept.** A recording in a note now stays in the note when the connection drops while it is being transcribed, for example when a laptop goes to sleep. [#33240](https://github.com/open-webui/open-webui/issues/33240), [Commit](https://github.com/open-webui/open-webui/commit/3b8205505b871b92dd23e010b61f51a02d515a92)
- 🀄 **IME typing with Backspace.** Pressing Backspace while composing text with a Japanese or other input method in the chat input no longer ends the composition or makes the text appear twice, which started in 0.12.4. [#33245](https://github.com/open-webui/open-webui/pull/33245), [#33223](https://github.com/open-webui/open-webui/issues/33223), [Commit](https://github.com/open-webui/open-webui/commit/a88fbc41a197f46ca148bf6dee16ad9ebafa2245)
- 🤖 **Photos for sub-agents.** Models can now hand a photo attached in the chat to a sub-agent, where the hand-off failed with "file_ids not attached or unavailable" and no sub-agent started. [#33244](https://github.com/open-webui/open-webui/pull/33244), [#33241](https://github.com/open-webui/open-webui/issues/33241), [Commit](https://github.com/open-webui/open-webui/commit/7a76e9fed6710faf2fd9c2162fce96bade6a8bee)
- 🪆 **Sub-agent partial output kept.** A foreground sub-agent that stops at the tool-call limit now hands the model its partial output along with the error, where everything it had written was lost, and the error now reads as a plain message in both foreground and background. [#33269](https://github.com/open-webui/open-webui/pull/33269), [#33267](https://github.com/open-webui/open-webui/issues/33267), [Commit](https://github.com/open-webui/open-webui/commit/e77204559bd92b43b7320ab128aac768e9be23db)
- 🔗 **MCP failures keep the chat.** A tool call to an MCP server that cannot be reached, for example after a restart or a dropped connection, now fails on its own and the reply still finishes, where the whole chat stopped as if you had pressed stop. [#33272](https://github.com/open-webui/open-webui/pull/33272), [#33268](https://github.com/open-webui/open-webui/issues/33268), [Commit](https://github.com/open-webui/open-webui/commit/2c64ab5487bd76e87c0306f6295acd7c710445e7)
- 🔃 **Cut-off replies stay finished.** A reply cut off by a server restart no longer goes back to the loading dots when the connection comes back later. [#33277](https://github.com/open-webui/open-webui/issues/33277), [Commit](https://github.com/open-webui/open-webui/commit/7b4d4b51f6d40587a6de94bc09cfd145f71dea2f)
- 🐢 **Slow chat loads.** Opening a chat on a slow connection or switching chats quickly now shows the chat you opened, where a slower earlier load could replace it with an old copy and the next message forked the chat. [#33180](https://github.com/open-webui/open-webui/issues/33180), [Commit](https://github.com/open-webui/open-webui/commit/193cf225f377ccc021b5128b80e5370e93895b2f)
- 👁️ **Tool images with Vision off.** Models with Vision turned off now get a short "[image]" note in place of each image a tool returns, where the reply failed with an error and every later message in that chat failed the same way. [#33345](https://github.com/open-webui/open-webui/pull/33345), [#32720](https://github.com/open-webui/open-webui/issues/32720), [Commit](https://github.com/open-webui/open-webui/commit/63ca4237eb43d64911af9b4a0e3ab7501c25560f)
- ✋ **Stop button on others' replies.** In a chat shared with Allow replies, the Stop button no longer shows on someone else's running reply, where it showed but did nothing. [#33343](https://github.com/open-webui/open-webui/issues/33343), [Commit](https://github.com/open-webui/open-webui/commit/d6610adaa9ffebaa4fb2058d1116debc4e47d5f4)
- 🧷 **Refused sharing changes undone.** The Access dialog of a prompt, skill, tool, note or knowledge base now goes back to the saved sharing when the server refuses a change, where it kept showing the refused change as if it were saved, and the model editor now shows the server's message for such a refusal. [#33209](https://github.com/open-webui/open-webui/pull/33209), [#33208](https://github.com/open-webui/open-webui/issues/33208), [Commit](https://github.com/open-webui/open-webui/commit/db146f945987cabb8c4fd6f43c97d140968a0a7a)
- 🔌 **Tool server Headers reset.** Adding another connection in External Tool Servers now starts with empty Headers, where it kept the previous connection's Headers and saved them on the new one. [#33201](https://github.com/open-webui/open-webui/pull/33201), [#33200](https://github.com/open-webui/open-webui/issues/33200), [Commit](https://github.com/open-webui/open-webui/commit/8889e8d6affd487b9dae5df7f0c971fc30ae58b3)
- 🧰 **OpenAPI tools listed.** The Available Tools window in a chat now lists the tools of an OpenAPI tool server, where it said "No tools found". [#33205](https://github.com/open-webui/open-webui/pull/33205), [#33204](https://github.com/open-webui/open-webui/issues/33204), [Commit](https://github.com/open-webui/open-webui/commit/722f71f2cca9ad5cf7def62452eeddfea9248e2e)
- 🎛️ **Generation switches update.** Saving Title, Follow-Up, Tags or Autocomplete Generation in Admin Settings > Interface now updates the matching switches in Settings > Interface and autocomplete in the chat input right away, where they kept the old setting until a reload. [#33197](https://github.com/open-webui/open-webui/pull/33197), [#33196](https://github.com/open-webui/open-webui/issues/33196), [Commit](https://github.com/open-webui/open-webui/commit/7e07575d0f0ec2a0c43caa8a8e6d5c9129c18a8d)
- 🗂️ **Local knowledge filter.** Picking Local in the source filter on Workspace > Knowledge now lists knowledge bases made with Create, where it showed "No knowledge found". [#33199](https://github.com/open-webui/open-webui/pull/33199), [#33198](https://github.com/open-webui/open-webui/issues/33198), [Commit](https://github.com/open-webui/open-webui/commit/6635a45df49eef925fc2c4949c445d197a81e6e9)
- 🪣 **Large S3 Vectors deletes.** Removing a file or knowledge base with more than 500 chunks from S3 Vectors now works, where the delete request went over the service's limit of 500 keys and failed. [Commit](https://github.com/open-webui/open-webui/commit/58536b65038dc7ff17d02dd78c60cc71ce110f92)
- 🔢 **Empty embedding batch size.** Clearing the Embedding Batch Size in Admin Settings > Documents now saves the default of 1, where files uploaded afterwards failed to process. [#33288](https://github.com/open-webui/open-webui/pull/33288), [#33287](https://github.com/open-webui/open-webui/issues/33287), [Commit](https://github.com/open-webui/open-webui/commit/893dbc9bd8930cdb3be82f38c795366f3b8ca9b0)
- 🔊 **Read Aloud with Kokoro.js.** Read Aloud now speaks with the chosen Kokoro voice when Kokoro.js (Browser) is picked in Settings > Audio, where it used the browser's built-in voice while the server's speech engine was Web API. [#33211](https://github.com/open-webui/open-webui/pull/33211), [#33210](https://github.com/open-webui/open-webui/issues/33210), [Commit](https://github.com/open-webui/open-webui/commit/1a425bd641e96ca3e981a9a712e10596c019331c)
- 🔉 **Kokoro.js without a GPU.** Kokoro.js (Browser) now runs on the CPU in browsers that offer WebGPU but have no GPU available, where its voices never finished loading and Read Aloud kept spinning without speaking. [#33233](https://github.com/open-webui/open-webui/pull/33233), [#33232](https://github.com/open-webui/open-webui/issues/33232), [Commit](https://github.com/open-webui/open-webui/commit/bafe181330dc8cb3c54afd78cc3e2901a448ea3f)
- 🎨 **ComfyUI failures reported.** A ComfyUI workflow that fails, for example when the GPU runs out of memory, now shows an error and tells the model the image could not be made, where it was reported as a successful generation with no images. [#33237](https://github.com/open-webui/open-webui/pull/33237), [#33236](https://github.com/open-webui/open-webui/issues/33236), [Commit](https://github.com/open-webui/open-webui/commit/d1ae9e75e00ab4401454a76c8e782dca193ff3e2)
- 🖌️ **Responses API images shown.** Images that a model creates through the Responses API, such as Gemini image models through OpenRouter, now show in the chat, where they were saved but not displayed. [#33320](https://github.com/open-webui/open-webui/issues/33320), [Commit](https://github.com/open-webui/open-webui/commit/ef29fb12f1f641bf1d83b434a37298846d211deb)
- 🛝 **Playground Controls applied.** Settings chosen under Controls in the Playground, such as Temperature and Seed, now reach Ollama models, where they were dropped and every run gave a different reply. [#33286](https://github.com/open-webui/open-webui/pull/33286), [#33285](https://github.com/open-webui/open-webui/issues/33285), [Commit](https://github.com/open-webui/open-webui/commit/f58fdf9b9531c27d18f449485eccd985490a86c0)
- 📋 **Shift paste in channels.** Holding Shift while pasting long text into a channel message or thread reply now keeps it as text when Paste Large Text as File is on, as it already did in chats. [#33190](https://github.com/open-webui/open-webui/pull/33190), [#33189](https://github.com/open-webui/open-webui/issues/33189), [Commit](https://github.com/open-webui/open-webui/commit/eb2bcba2154a27d76f1bad6deda78d1ff90ec2fc)
- 🧵 **Thread replies while loading.** A thread reply or model answer that arrives while the thread is still loading now shows up in full, and a reply no longer shows twice. [#33346](https://github.com/open-webui/open-webui/issues/33346), [Commit](https://github.com/open-webui/open-webui/commit/d14d8788af6626bffc3717c7ef5bcbc4f441a5cc), [Commit](https://github.com/open-webui/open-webui/commit/be8ebed78428bde77a369c5cb4ed1c1bca720592)
- 👥 **Analytics model chats by group.** A model's Chats tab in Admin Analytics now follows the User group filter, where it listed every user's chats with that model. [#33207](https://github.com/open-webui/open-webui/pull/33207), [#33206](https://github.com/open-webui/open-webui/issues/33206), [Commit](https://github.com/open-webui/open-webui/commit/02821c50584193377da4e0320cf8a14652ab2327)
- 🙈 **Hidden files in folder counts.** The item count under a folder in a chat's terminal file browser now leaves out hidden files while Show Hidden Files is off. [#33213](https://github.com/open-webui/open-webui/pull/33213), [#33212](https://github.com/open-webui/open-webui/issues/33212), [Commit](https://github.com/open-webui/open-webui/commit/4cb37dd539f94f2d80fae9f1448f317553430872)
- 📁 **Expanded folders kept.** Deleting, renaming or adding a file in a chat's Files tab now keeps expanded folders listed, where every expanded folder came up empty. [#33195](https://github.com/open-webui/open-webui/pull/33195), [#33194](https://github.com/open-webui/open-webui/issues/33194), [Commit](https://github.com/open-webui/open-webui/commit/208e71d3861ae2e8ea68d52bd58a07926b278553)
- 📌 **Pins kept in shared folders.** A member's chat now keeps its pin when the owner of a shared folder moves it to another folder inside that folder, where it dropped out of the member's Pinned list. [#33342](https://github.com/open-webui/open-webui/pull/33342), [#33341](https://github.com/open-webui/open-webui/issues/33341), [Commit](https://github.com/open-webui/open-webui/commit/226dca18cdd79cac04bc36888ea0f834762b90cc)
- 🌙 **Overnight calendar events.** A calendar event that ends after midnight, such as 8:00 PM to 1:00 AM, now keeps its end time on the next day, where saving dropped it and stored the event as ending at its start time. [#33290](https://github.com/open-webui/open-webui/pull/33290), [#33289](https://github.com/open-webui/open-webui/issues/33289), [Commit](https://github.com/open-webui/open-webui/commit/a8e8e7e792201346553c6e911c3f81306f23d60f)
- 🗓️ **Midnight calendar events.** A calendar event that ends at midnight now shows only on its own day in Month view, where it also showed on the next day. [#33292](https://github.com/open-webui/open-webui/pull/33292), [#33291](https://github.com/open-webui/open-webui/issues/33291), [Commit](https://github.com/open-webui/open-webui/commit/1b92d9848488dd2402686c2da25b16c6382c1520)
- 🪝 **Old webhook removable.** A notification webhook carried over from before v0.11 now stays removed from Settings > Notifications, where it came right back after Remove. [#33295](https://github.com/open-webui/open-webui/pull/33295), [#33294](https://github.com/open-webui/open-webui/issues/33294), [Commit](https://github.com/open-webui/open-webui/commit/0ac55c8e7205aed414c1f265ca8e7047a772c08d)
- 🔔 **New default notification target.** A notification target added after removing the last one now becomes the default, where it never did. [#33284](https://github.com/open-webui/open-webui/pull/33284), [#33283](https://github.com/open-webui/open-webui/issues/33283), [Commit](https://github.com/open-webui/open-webui/commit/77398eba3126eb6b3614e8bc868a268aff668e44)
- 🗣️ **Translated search and Skills labels.** Labels in the workspace search, the Skills list, the skill editor and the terminal file browser now follow the interface language, where several always showed in English. [#33308](https://github.com/open-webui/open-webui/pull/33308), [#33304](https://github.com/open-webui/open-webui/issues/33304), [#33305](https://github.com/open-webui/open-webui/issues/33305), [Commit](https://github.com/open-webui/open-webui/commit/fcc9284139f180aec64f58839a9f83dd5dfa4f68)
- 📜 **Keyboard tab scrolling.** Scrolling on the Settings > Keyboard tab no longer moves the whole Settings window. [#33187](https://github.com/open-webui/open-webui/pull/33187), [#33186](https://github.com/open-webui/open-webui/issues/33186), [Commit](https://github.com/open-webui/open-webui/commit/22dd3e2be1dadddfeeccb616f8e45df352f87e72)
### Changed
- 🔀 **Model switch keeps your picks.** Switching models in a chat now applies the new model's default tools, skills, filters and features while keeping the ones you turned on or off yourself, where every switch cleared your picks, and chats with several models now get the default tools and skills of every selected model. [Commit](https://github.com/open-webui/open-webui/commit/3aaecdd0e99f6407187732f2fb117841ce2cc013), [Commit](https://github.com/open-webui/open-webui/commit/1c572c49bc5103b78c812e069872015d7fcb7391)
- 📣 **Model mentions switch chats.** Sending a message to a model picked with @ now switches the chat to that model, where the mention stayed above the input and the chat kept its own model. [Commit](https://github.com/open-webui/open-webui/commit/3aaecdd0e99f6407187732f2fb117841ce2cc013)
- 🔁 **Regenerate uses current models.** Regenerating a response in a chat with several models now uses the model currently picked for that column, where it reused the model that first wrote the response. [Commit](https://github.com/open-webui/open-webui/commit/3aaecdd0e99f6407187732f2fb117841ce2cc013)
- 📎 **Note attachments in pages.** Files attached to a note now sit inside the page where they were added, and the attached files of existing notes move to the end of the note's first page. [Commit](https://github.com/open-webui/open-webui/commit/b34885efc639c10cbf06c35cd2d4ff6055e36b45)
- 📂 **Folder moves keep chat dates.** Moving a chat into or out of a folder now keeps its last activity date, so it stays sorted by when it was really last active, where it jumped to the top of the sidebar under Today. [#33327](https://github.com/open-webui/open-webui/pull/33327), [#30362](https://github.com/open-webui/open-webui/issues/30362), [Commit](https://github.com/open-webui/open-webui/commit/40a9fba81f3640b7d3c9eafd78e7cd19d8de7674)
- 📮 **Automation failure webhooks.** Admin event webhooks set to System events only no longer receive automation run failures, which now go to webhooks set to specific users or groups that include the automation's owner. [#33331](https://github.com/open-webui/open-webui/pull/33331), [Commit](https://github.com/open-webui/open-webui/commit/e49ff5df64a1523b80fce8ef03637953265c4355)
- 📃 **Knowledge base API responses trimmed.** Adding, updating or removing knowledge base files and renaming or sharing a knowledge base through the API now return only the affected files or an empty list, so these calls no longer slow down as the knowledge base grows, and the full list stays available from the paginated files endpoint. [#33335](https://github.com/open-webui/open-webui/pull/33335), [#31397](https://github.com/open-webui/open-webui/issues/31397), [Commit](https://github.com/open-webui/open-webui/commit/a59cab0aa990c32dc3b633cb9eda01384b683115)
## [0.12.4] - 2026-10-25
### Added
- 🎯 **Load selected skills on demand.** Administrators can turn on "Load selected skills on demand" under Admin Settings > General or set "ENABLE_SKILL_LAZY_LOADING", so skills selected in the chat or attached to a model are only listed for the model to load when it needs them instead of sending their full instructions with every message, while skills mentioned in the message still load right away, and it is off by default and needs the built-in Skills tool. [Commit](https://github.com/open-webui/open-webui/commit/079fb19e75f8be4b44fada0c755cf383b21a625b)
- 📍 **Compaction shown in chats.** A "Context compacted" line now marks the message where older messages were summarized, opens to show the summary and also appears inside a reply when compaction ran between its tool calls, Chat Controls > Overview tags that message, and compaction progress and errors now show in the chat instead of as pop-up notices. [Commit](https://github.com/open-webui/open-webui/commit/f465a4be11c0c64969da70f1f5b770bd21088b8a), [Commit](https://github.com/open-webui/open-webui/commit/c8786f426ad263ea4113652ed576d3c15ee341d6), [Commit](https://github.com/open-webui/open-webui/commit/3311f999928964ca1f7870fefb407553197dc2d5), [Commit](https://github.com/open-webui/open-webui/commit/3855acf02d44b78e7969599155896865fd362123), [#31324](https://github.com/open-webui/open-webui/issues/31324)
- 🗜️ **Compaction in more chats.** Context compaction now also runs in temporary chats and in short chats that are already over the threshold, such as one question with a reply full of tool output, so the follow-up and any regenerate or edit of it no longer fail with a context length error. [#32794](https://github.com/open-webui/open-webui/pull/32794), [Commit](https://github.com/open-webui/open-webui/commit/56eca192ab7d98dd9d1a9811e4452dc32145848d), [#32781](https://github.com/open-webui/open-webui/issues/32781), [Commit](https://github.com/open-webui/open-webui/commit/d5cd7f4907f9a6832dc5b52520a1381ef50a663c), [#32600](https://github.com/open-webui/open-webui/issues/32600)
- 🕶️ **Hide controls for users.** Administrators can now hide single controls from users under Visible controls in Admin Settings > Interface or with "UI_VISIBILITY", such as model capabilities, default features and built-in tools in the model editor, Capture, Compare text, Attach Webpage, Attach Files, Attach Notes, Attach Knowledge and Reference Chats in the + menu, the /status, /model and /settings commands, the usage info, Fork, Merge Responses, Preview, Artifacts, Archive and Tags in chats, Set as default and Keep in Sidebar for models and settings such as the Usage tab and the speech engines, while hidden controls keep their values and the features behind them stay usable, hiding Archive also hides Unarchive, and administrators still see every control. [Commit](https://github.com/open-webui/open-webui/commit/08bfaa4be67f6f87878b2209d568a648818506a7), [#32830](https://github.com/open-webui/open-webui/issues/32830)
- 🫙 **Unavailable options hidden.** Options that cannot take effect are now hidden, such as Capture in the + menu without a Vision model, Attach Notes for users without the Notes permission, the Valves pickers in Chat Controls for disabled tools and functions, the Context Compaction Threshold while context compaction is off, the title, follow-up and tag generation switches in Settings > Interface while the admin has turned them off, Compress Images in Channels for users who cannot use channels, the Web Search in Chat setting while web search is not available to the user, the Voice section of Settings > Interface for users who cannot make calls, group and default permission toggles for features the admin has turned off, the Terminal capability and default terminal in the model editor while no terminal server or direct integration is available, the New Temporary Chat and Delete Chat shortcuts for users who may not use them, the Web Search, Image Generation, Code Interpreter and Memory capabilities and Default Features in the model editor while that feature is off for the instance, built-in tools in the model editor that the model's capabilities rule out or whose feature is off, the engine settings in Admin Settings > Web Search and Admin Settings > Images while web search or image generation is off, the Web Search Query Generation switch in Admin Settings > Interface while web search is off, the Regenerate Menu and terminal settings in Settings > Interface while they cannot apply, "/skills:create" for models that cannot create skills, the Call button while speech-to-text is unavailable, the Audio settings tab for users allowed no speech or calls, the multi-factor authentication section while MFA does not apply to the user and the openwebui.com author link on a new chat while community sharing is off, while saved values are kept for when they apply again. [#32969](https://github.com/open-webui/open-webui/pull/32969), [#32967](https://github.com/open-webui/open-webui/pull/32967), [#32959](https://github.com/open-webui/open-webui/pull/32959), [Commit](https://github.com/open-webui/open-webui/commit/9e5a355fd2b318cf68726c69dbf37dae5e8413b0), [Commit](https://github.com/open-webui/open-webui/commit/9faca2ac5bd69c536e4a87563af39a195d6ea32e), [Commit](https://github.com/open-webui/open-webui/commit/4324573f16b5ce888c9baf235188d7bcfe4b5f51), [#32962](https://github.com/open-webui/open-webui/pull/32962), [#32973](https://github.com/open-webui/open-webui/pull/32973), [#32976](https://github.com/open-webui/open-webui/pull/32976), [#32977](https://github.com/open-webui/open-webui/pull/32977), [#32980](https://github.com/open-webui/open-webui/pull/32980), [#32961](https://github.com/open-webui/open-webui/pull/32961), [Commit](https://github.com/open-webui/open-webui/commit/1f737b894827d19b1b1b4e9dfd5eea23992a3a96), [Commit](https://github.com/open-webui/open-webui/commit/be8f2c0a21d7eb3c873c085f90273dc5e6e39b3d), [Commit](https://github.com/open-webui/open-webui/commit/fbad6fb252f6eb7ccce86944b3bb83623f2d5598), [Commit](https://github.com/open-webui/open-webui/commit/11406c1654794d153f120899f12728cf84490488), [Commit](https://github.com/open-webui/open-webui/commit/35ee76cebb523c21703b31a2cf4347e984490a95), [Commit](https://github.com/open-webui/open-webui/commit/502af86b254b3d071e6b906223493f486cc73c51), [#32972](https://github.com/open-webui/open-webui/pull/32972), [Commit](https://github.com/open-webui/open-webui/commit/521da58ff3bcbb3205e695286ff8f71a64d23606), [#32975](https://github.com/open-webui/open-webui/pull/32975), [Commit](https://github.com/open-webui/open-webui/commit/d48b5e1c878140ce04b5cf5c30d15a472cbd9346), [#32983](https://github.com/open-webui/open-webui/pull/32983), [Commit](https://github.com/open-webui/open-webui/commit/8852d460b7009f776a131e88cbf0cbad595a16d8), [#32966](https://github.com/open-webui/open-webui/pull/32966), [Commit](https://github.com/open-webui/open-webui/commit/5e62c8997f9d14ebc321022a552380f4dc932526), [#32978](https://github.com/open-webui/open-webui/pull/32978), [Commit](https://github.com/open-webui/open-webui/commit/159a29ed06c4e689c465c105c74cf0d9ff4904b9), [#32963](https://github.com/open-webui/open-webui/pull/32963), [Commit](https://github.com/open-webui/open-webui/commit/98f23b17a5755216e31c09ee938e36e46d139fee), [#32965](https://github.com/open-webui/open-webui/pull/32965), [Commit](https://github.com/open-webui/open-webui/commit/758e4f6cc3bc504c8e100e535694dbc93214ad31), [#32984](https://github.com/open-webui/open-webui/pull/32984), [Commit](https://github.com/open-webui/open-webui/commit/e11c1bb38c3695917038b0d79933b35886b0e70e), [#32985](https://github.com/open-webui/open-webui/pull/32985), [Commit](https://github.com/open-webui/open-webui/commit/1d6d805587c06847d9518ccab79fe780aba8d1a6), [#32986](https://github.com/open-webui/open-webui/pull/32986), [Commit](https://github.com/open-webui/open-webui/commit/d2e88ba37abf6d83d9fcffec8574e155b352f4ca), [#32974](https://github.com/open-webui/open-webui/pull/32974), [Commit](https://github.com/open-webui/open-webui/commit/c4aac6152b59e17610bbb5aa9bab1e230460c3ed), [#32981](https://github.com/open-webui/open-webui/pull/32981), [Commit](https://github.com/open-webui/open-webui/commit/11081b1567dd4b5b41907b8733c21239079a94ca), [#32971](https://github.com/open-webui/open-webui/pull/32971), [Commit](https://github.com/open-webui/open-webui/commit/f36ed913719814419d5a621b528ec1b56595809c), [#32970](https://github.com/open-webui/open-webui/pull/32970), [Commit](https://github.com/open-webui/open-webui/commit/b02ff544597755624953ecc15290bee19348ca54), [#32964](https://github.com/open-webui/open-webui/pull/32964), [Commit](https://github.com/open-webui/open-webui/commit/2cf014c7e9be601116d8e93da0d7367f77d6f14e), [#32830](https://github.com/open-webui/open-webui/issues/32830)
- 🔏 **Access button respects sharing.** The Access button and menu entry of models, prompts, tools, knowledge, skills and notes and the Access button in folder settings are now hidden from users without the matching sharing permission, who had nothing they could change in its dialog. [#32979](https://github.com/open-webui/open-webui/pull/32979), [Commit](https://github.com/open-webui/open-webui/commit/ac12b04aada033117f9f7e8ee4fb9562c7d5a417), [#32830](https://github.com/open-webui/open-webui/issues/32830)
- 🖇️ **Attach entries without uploads.** When files cannot be attached, because of a missing permission or a selected model without File Upload, the greyed Attach Knowledge, Reference Chats and Attach Notes entries in the + menu no longer open and the # and @ lists leave out what cannot be attached, including pasted links for users without the web upload permission, so a picked item no longer vanishes from the input without a message. [#32968](https://github.com/open-webui/open-webui/pull/32968), [Commit](https://github.com/open-webui/open-webui/commit/75c4421b3ab94b1a39d74674475294571bd20bcd), [#32830](https://github.com/open-webui/open-webui/issues/32830)
- ⏱️ **Exact last active time.** Hovering the last active time in the admin user list and in a group's member list now shows the exact date and time. [Commit](https://github.com/open-webui/open-webui/commit/7484c75e163cb17fee9ebcc11e57f462289cc03e)
- 🗨️ **New chat from folders.** A folder's menu in the sidebar now has a New Chat item that starts a chat in that folder. [Commit](https://github.com/open-webui/open-webui/commit/0512f1b3763ea4e15b5adc25d087c96f728fa25e)
- 🪪 **Profile cards across the workspace.** Hovering an owner's name in the workspace lists of models, knowledge, prompts, skills and tools and in admin Functions now opens their profile card instead of an email tooltip, with their profile picture next to the name, profile pictures in access settings, version history and the Analytics user list open the card too and the Notes list shows each owner's profile picture. [Commit](https://github.com/open-webui/open-webui/commit/02974f41e9b7c9d34f2cd7c664c2a04fd6ac12ae), [Commit](https://github.com/open-webui/open-webui/commit/72cc79b8f336a753b6e75e0f3415630601b14759), [Commit](https://github.com/open-webui/open-webui/commit/ba34b1c47c1d054d2f9c498d0aed862ec06da41a), [Commit](https://github.com/open-webui/open-webui/commit/4491e60a296c89b11f22a43f416ea04770fd687f), [Commit](https://github.com/open-webui/open-webui/commit/0de8d03c625739ed3fe5e5f2a33de79a760238bd), [Commit](https://github.com/open-webui/open-webui/commit/0628670f56133d2cdc20c59b06fbb9de36932eb9)
- 🔢 **Turn count in chat previews.** The preview shown when hovering a chat in the sidebar now shows how many user and assistant turns its current branch has. [Commit](https://github.com/open-webui/open-webui/commit/b5046f9d8686e18450a200dccda181f2ac7f97c9)
- 🎚️ **Chat Controls saved per setting.** A change in a chat's Controls, such as its system prompt or a parameter, now saves only that setting, so a copy of the chat open in another tab or on another device no longer wipes it with older settings. [Commit](https://github.com/open-webui/open-webui/commit/b4a58be193031827f2fc19b943646136d1e43575), [#32755](https://github.com/open-webui/open-webui/issues/32755)
- 🪃 **Questions survive reconnects.** When the page reloads or loses its connection while Ask User, a tool approval, an MCP server's input request or a function's confirmation or input dialog waits for you, the question now comes back once you reopen that chat within a minute, so the request no longer waits without an answer. [Commit](https://github.com/open-webui/open-webui/commit/c596d40bd4f554057738ba779b38781a7c2de108)
- ✍️ **Note edits by text.** The model can now edit a note by finding and replacing exact text instead of only by character offsets, picking one match or all of them and getting the positions and surrounding text back when a match is ambiguous. [Commit](https://github.com/open-webui/open-webui/commit/243ef36c496714d9dd855de9fd261daa43caddb9), [#32752](https://github.com/open-webui/open-webui/issues/32752)
- 🔍 **Compare view stays aligned.** Matching rows in the two panes of the Compare view now stay lined up and in place while scrolling, resizing or editing, and a colored bar now marks changed lines also while whitespace or emphasis markers are ignored. [Commit](https://github.com/open-webui/open-webui/commit/32170b96fc5edc8c324c5de188be36e9d32059a2), [Commit](https://github.com/open-webui/open-webui/commit/596cdbb6caf6022947285722949de1f52272b673), [Commit](https://github.com/open-webui/open-webui/commit/5c9865a1f119d33ab11d77e79d8c8c8fb93704ec), [Commit](https://github.com/open-webui/open-webui/commit/aa8ce52c7a3afbb164bc16a3b7c20e40ba6390ed)
- 🖱️ **Clickable setting labels.** Clicking the label of a setting across user and admin settings, including advanced parameters and connections, now toggles its switch, focuses its field or presses its button, and the label highlights while the row is hovered or focused, so the right control is easier to find. [Commit](https://github.com/open-webui/open-webui/commit/33e4c5f514d57ca8f654c1015dfb32774b833db6), [Commit](https://github.com/open-webui/open-webui/commit/131ddc32ecaeb06f9aa8740ff004710bacef72e0), [Commit](https://github.com/open-webui/open-webui/commit/b93b81246817b651bb47bb1f5e453503649d30d0), [#32768](https://github.com/open-webui/open-webui/issues/32768), [#32900](https://github.com/open-webui/open-webui/issues/32900)
- ☑️ **Select several sidebar chats.** Shift-clicking a chat in the sidebar starts a selection that more clicks or a shift-click range extend, and the selected chats can then be archived or, with the delete permission, deleted together, while Escape clears the selection. [Commit](https://github.com/open-webui/open-webui/commit/acc231774d00d8856feefd2e7a3ef4b503a8224e), [#32543](https://github.com/open-webui/open-webui/issues/32543)
- 🫲 **Swipe open Chat Controls.** On a phone, swiping left across a chat now pulls in the Chat Controls panel, which follows your finger like the sidebar does and closes again with a swipe to the right. [Commit](https://github.com/open-webui/open-webui/commit/f83f9f40b3513acc82f53696aaf78a2c5d251e70)
- 🗃️ **Bulk file management.** Manage Files in Settings > Data Controls can now download a single file and lets you select several files or all files matching a search to delete them or download them together as one zip archive, with progress and a stop button. [Commit](https://github.com/open-webui/open-webui/commit/2a86805648f45c36c479c6f9a0127cae799ee14f)
- 📥 **Accurate upload status.** A file uploaded to a knowledge base now only shows as done once it is indexed and linked to the knowledge base, so it no longer shows as done and then goes missing from the list until a reload. [Commit](https://github.com/open-webui/open-webui/commit/f5e8f84e69d0f4224cc27cabd4f8d2c441d4d58c), [#32803](https://github.com/open-webui/open-webui/issues/32803)
- ⏳ **Knowledge files show Processing.** A file added to a knowledge base now switches from Uploading to Processing once it reaches the server, and the list keeps itself up to date until the file is ready, so it no longer says Uploading until you reopen the knowledge base. [#32982](https://github.com/open-webui/open-webui/pull/32982), [Commit](https://github.com/open-webui/open-webui/commit/0a568f6a813d49ca6e7797c7940647782e44ad48)
- 🧮 **Knowledge uploads listed at once.** Files selected or dropped together into a knowledge base now all appear as Uploading right away in upload order, so each one no longer waits to appear until the file before it has finished processing. [#32992](https://github.com/open-webui/open-webui/pull/32992), [Commit](https://github.com/open-webui/open-webui/commit/0c684208bbc6e28e31995c0c4788429b38048db0)
- 📈 **Analytics by tokens.** The Admin Analytics dashboard now ranks models and users by tokens by default with a switch back to messages, and its usage chart adds volume and activity views, a single model view, a comparison with the previous period, a choice of time steps and Year to date and Last 12 months ranges. [Commit](https://github.com/open-webui/open-webui/commit/131ddc32ecaeb06f9aa8740ff004710bacef72e0), [Commit](https://github.com/open-webui/open-webui/commit/06c17834ee3168b922f1b8a935b9dd76884b8fda), [Commit](https://github.com/open-webui/open-webui/commit/dc2ac86060e583f7374dd86f32f374a0b956bb8b), [Commit](https://github.com/open-webui/open-webui/commit/3539ad63213d13865a87a4db64a9829fd7d3b1b4), [Commit](https://github.com/open-webui/open-webui/commit/08bfaa4be67f6f87878b2209d568a648818506a7), [Commit](https://github.com/open-webui/open-webui/commit/06c382e5d223ba1b35dc0b1306c71da489c632b0)
- 🗂️ **File browser grid view.** The terminal file browser can now switch between a list and a grid view from its menu, folders show how many items they hold, and on larger screens hovering a file shows a preview, up to 1 MB for text files and 20 MB for images, audio, video and documents. [Commit](https://github.com/open-webui/open-webui/commit/a76c02e58ec81621cf3c6ca38eb0d09eccee694f), [Commit](https://github.com/open-webui/open-webui/commit/fefa31fae22a8eb9d39aaf17063373c27fd5a61e), [Commit](https://github.com/open-webui/open-webui/commit/fa50081e67bfa9883bbc92fd47b20d3f3974c927)
- 📁 **File browser folder menu.** A folder's menu in the terminal file browser now has New File and New Folder items that create the file or folder inside that folder. [Commit](https://github.com/open-webui/open-webui/commit/b6b0fff5d6af2fefb84f8858244adeef50462aac), [Commit](https://github.com/open-webui/open-webui/commit/fbeee59e99f47c9ff4fb0f114f78eb9dc85f2967)
- 📬 **First-message terminal uploads.** With Chat Uploads set to Filesystem on a Per chat terminal, a file attached to the first message of a new chat now waits and uploads into that chat's own terminal when the message is sent, so it no longer lands in the shared workspace. [Commit](https://github.com/open-webui/open-webui/commit/049d75e176dd1ef3f2f1eef09d63f30c4e988b3c), [#30245](https://github.com/open-webui/open-webui/issues/30245)
- 🪧 **Folder descriptions.** Folders can now have a description in their settings, shown under the folder title on the folder's page. [Commit](https://github.com/open-webui/open-webui/commit/f625c37cce4ec971e7d86af6da644fee03561b1e), [Commit](https://github.com/open-webui/open-webui/commit/72d86c6b13c1ccb567e2ffa574b3a53a853361b3)
- 🚚 **Organize chats in shared folders.** The owner of a shared folder can now rename chats other people started in it and drag them to another folder within the same shared folder. [Commit](https://github.com/open-webui/open-webui/commit/2262073146bbeda1aa4f998bb61e15ec7f9b6491)
- 🛰️ **MCP protocol 2026-07-28.** MCP connections now also work with servers that speak the stateless 2026-07-28 protocol version, while older servers still connect through the earlier handshake. [#33087](https://github.com/open-webui/open-webui/pull/33087), [Commit](https://github.com/open-webui/open-webui/commit/8151826483163877cec837b35ba7c1affdd1fb5a), [#29778](https://github.com/open-webui/open-webui/issues/29778)
- 📧 **LDAP default email domain.** Administrators can now set a default email domain in the LDAP settings or with "LDAP_DEFAULT_EMAIL_DOMAIN", so LDAP users without a mail attribute sign in with their username at that domain as their email address and into any existing account with that address, which is why the domain should be one you control. [Commit](https://github.com/open-webui/open-webui/commit/74fb7a8c56bd92e6603e71e74917a99597228d10), [#33001](https://github.com/open-webui/open-webui/issues/33001)
- 🔐 **OAuth connections over the API.** Connections set to OAuth authentication now also send the user's OAuth token when the user calls the API with an API key or bearer token, like tool servers already did. [#32826](https://github.com/open-webui/open-webui/pull/32826), [Commit](https://github.com/open-webui/open-webui/commit/6367a3cc406b3417d1a2eb2bfde9f1b841d43150), [#32820](https://github.com/open-webui/open-webui/issues/32820)
- 🫣 **Hidden base models for groups.** Administrators can now turn on the Hidden Models permission under Models Access in the user and group permissions, or set "USER_PERMISSIONS_WORKSPACE_MODELS_HIDDEN", so those users can pick hidden models as the base model of a workspace model while the hidden models stay out of their model picker. [Commit](https://github.com/open-webui/open-webui/commit/7f1b618727fe76669158bd42e2ce18fbcca63481), [#29806](https://github.com/open-webui/open-webui/discussions/29806), [#29639](https://github.com/open-webui/open-webui/issues/29639)
- 🧾 **Model usage in audit logs.** With audit logging on and "/chat" removed from "AUDIT_EXCLUDED_PATHS", where it is excluded by default, each chat reply and tool call round now writes its own audit log entry with the model and the input, output and total tokens the provider reported, linked to the request that started it. [Commit](https://github.com/open-webui/open-webui/commit/52e155019f511846a8066e012ff37f8aac6db2db), [#30098](https://github.com/open-webui/open-webui/issues/30098)
- 📨 **Voice call user headers.** With "ENABLE_FORWARD_USER_INFO_HEADERS" on, Realtime voice calls now also send the user info headers, or the signed user JWT when configured, to the realtime provider, like chat requests do. [#32733](https://github.com/open-webui/open-webui/pull/32733), [Commit](https://github.com/open-webui/open-webui/commit/c7e159bdd66a1d05331e6a579e627004bc3c51d1)
- 🏎️ **Faster action buttons.** An action button now only saves the chat again when the action changed a message, so actions on large chats finish sooner. [Commit](https://github.com/open-webui/open-webui/commit/7708ee851a1d6745a5ee3c106a0dd9f728bca732), [#32658](https://github.com/open-webui/open-webui/issues/32658), [Commit](https://github.com/open-webui/open-webui/commit/b4a58be193031827f2fc19b943646136d1e43575)
- 👪 **Faster group saves.** Saving, deleting or changing the members or permissions of a group now finishes in well under a second with thousands of users online, where it took several seconds and reloaded the open chat of everyone online. [#32883](https://github.com/open-webui/open-webui/pull/32883), [Commit](https://github.com/open-webui/open-webui/commit/b7d1de05ab91150726d83ae427f320a014ddeeec), [#32882](https://github.com/open-webui/open-webui/pull/32882), [Commit](https://github.com/open-webui/open-webui/commit/bae611e785df5feabf712ab8c8684a78bf90ec96)
- 🧳 **Faster folder changes.** Renaming, sharing, moving or deleting a folder and deleting all chats now finish quickly with thousands of users online, where each took several seconds and reloaded the open chat of everyone online. [#32888](https://github.com/open-webui/open-webui/pull/32888), [Commit](https://github.com/open-webui/open-webui/commit/e1e31973f0bfd04dc4195c896eff3476678d2005)
- 📣 **Faster channel posts.** Posting a message in a channel with many members online now returns in a fraction of a second, where it waited for every online member's login to be checked again first. [#32889](https://github.com/open-webui/open-webui/pull/32889), [Commit](https://github.com/open-webui/open-webui/commit/a9adb2b78ebccdd51543a47c285309e9b016a71c)
- 📊 **Faster analytics dashboard.** The Admin Analytics dashboard now gets its totals, model and user lists and daily charts from fewer and lighter database queries, so it opens faster on instances with many messages. [Commit](https://github.com/open-webui/open-webui/commit/97650bbbea43b98c1c403bf74b08736e9ad522d7)
- ♻️ **Prompt cache survives restarts.** Tools from tool servers, Open Terminal included, now reach the model in the same form after every restart, so the provider's prompt cache keeps working and long chats are no longer processed again from scratch. [#33000](https://github.com/open-webui/open-webui/pull/33000), [Commit](https://github.com/open-webui/open-webui/commit/ee7c9ff5c19d7d8c24c991028b08ff6672c6e653)
- 👁️ **PDF image OCR stays light.** With PDF Extract Images (OCR) on, reading text from images in PDFs now uses one processor thread per upload by default, so uploads no longer start a thread pool the size of the server's cores that could slow the whole server down, and administrators can pass their own RapidOCR settings with "RAPIDOCR_PARAMS". [Commit](https://github.com/open-webui/open-webui/commit/56c570afc36e6dae528563059e30b1e030628734), [#32844](https://github.com/open-webui/open-webui/issues/32844)
- ♿ **Improved UI accessibility.** Screen reader users now hear the Send button, the sidebar's user menu button by the name it shows, Playground's role button by the word it shows, the model editor's Description, Tools, Skills, Filters and Actions rows by what they show, a sidebar folder's options button, the sidebar button on Calendar, Notes, Channels and Home on phones, the on/off switches on Skills, Functions and Automations rows, the suggested prompts on a new chat as buttons, Archived Chats as a table, the sort order on the column headers of Archived Chats and the Evaluations leaderboard, chat input pills and menus, copy, export, merge and artifact buttons, clear search and Cancel buttons, the note editor's Undo, Redo, Record and Note Menu buttons, Playground's System Instructions button and model selects, the code box in the tool and function editors, switches, icon buttons, selects and number inputs in Admin Settings, the Create knowledge base, Create Prompt and Clone Prompt dialogs and the close button of 22 dialogs by name, together with a source's number, the number on a channel's member count button, the choice a Visibility button shows, a resizable panel's width, how long ago each sidebar chat was updated, the info button under a reply with its usage figures, a model's description, notifications such as copy confirmations (copying a prompt in Workspace included), when a reply starts and finishes, call mode's Listening and Thinking status, menu buttons as menus with their open state, the selected search content type, how many archived chats a search found, how many models match a search in the model picker, the Settings window by name, the sidebar folder toggle by name with its open state, the chosen option in Select dropdowns, the search window's list by its visible caption, a heading on each Workspace page, the sidebar section titles and chat date groups as headings, the sidebar's models, folders and chats as lists, the Settings tabs as Personal and Admin tab lists that point to their panels, the items of the input, integrations, user and chat menus as menu items, the Keyboard tab's shortcut categories as headings with a list under each, the chat input as a text field, the sidebar logo link as New Chat, the onboarding logo by the instance name with other branding images hidden as decoration, the model logos on a new chat by model name (hidden when only one model is selected), the model the arrow keys are on in the model picker, the model name and the Suggested label on a new chat as headings, the suggestion list by name and the chat title as the page heading, and no longer hear an open or closed state on the area around the sidebar button in Channels on phones; keyboard users get the model picker's More and Eject buttons that show on focus, filter lists that move focus to their options when opened, tooltips that show on focus and close with Escape, Escape in the model picker's More menu or filter list that closes only that list, focus that returns to the model picker button when the picker closes with Accessibility Mode on, an outline on the model picker row the arrow keys are on, focus that moves to the other sidebar button when the sidebar opens or closes, arrow keys that move through the input, integrations, user, chat and Terminal menus, a Terminal menu that opens on its first terminal, a Tab key that reaches the note editor's Record and Note Menu buttons, Evaluations leaderboard columns they can sort and models they can open from it, focus that stays on a Workspace section link after choosing it, focus that stays in the Archived Chats list after unarchiving a chat, focus on the recording bar when dictation starts and a Skip to main content link that now moves focus to the page content; notification text in the light theme and the chat dates in Archived Chats now meet the 4.5:1 contrast minimum; buttons in the collapsed sidebar, on sidebar folders, on Prompts, Skills, Functions and Automations rows, on Workspace and Notes list rows, on attached files and in the Integrations menu are no longer nested inside other buttons; the Archived Chats and Keyboard lists stay usable at 400% zoom; and with Accessibility Mode on, pinch zoom works on phones, the active Workspace section is underlined, code editor placeholders, the model editor's JSON Preview row and Calendar's days from other months and today's date meet the contrast minimum, and the More and Eject buttons and Set as default in the model picker, the version link and See what's new in Settings > About, the sidebar's Chat Menu button, the Note Menu and Delete buttons in Notes, the More button on file rows, the Create button's menu arrow, Calendar's previous and next month buttons and the name, ID and command fields in the model and prompt editors are at least 24 pixels in size.
- 🔄 **General improvements.** Various improvements were implemented across the application to enhance performance, stability, and security.
- 🌐 **Translation updates.** Translations for Korean, Cebuano, Thai, German, Japanese, Vietnamese, Urdu, Bengali, Hungarian, Tibetan, Turkmen, Lithuanian, Danish, Basque, Irish, Slovenian, Estonian, Croatian, Faroese, Georgian, Portuguese (Brazil), Spanish (Spain), Hindi, Finnish, Kabyle, Galician, Uyghur, Slovak, Norwegian Bokmål, Serbian, Ukrainian, Polish, Turkish, Bosnian, Dutch, Czech, Bulgarian, Hebrew, Punjabi, Swedish, Romanian, Persian, Greek, Malay, Latvian, Azerbaijani, Indonesian, Tamil, Filipino and Russian were enhanced and expanded.
### Fixed
- 🛡️ **Security Advisory**: This release contains **security fixes**. We **strongly recommend updating** all deployments **as soon as possible** to have the latest security fixes in place. These fixes are **not listed in this changelog**; we will publish the security advisories for them immediately following CVE assignment. [Advisories](https://github.com/open-webui/open-webui/security)
- 📤 **Chat export permission respected.** The Export item of a folder in the sidebar, the Export option in Archived Chats and the Copy option in the chat menu are now hidden from users without the Allow Chat Export permission, like the export options of single chats. [#32703](https://github.com/open-webui/open-webui/pull/32703), [Commit](https://github.com/open-webui/open-webui/commit/a21335bdd44892a804d74614567b2c64a19e0a11), [#32702](https://github.com/open-webui/open-webui/issues/32702), [#32684](https://github.com/open-webui/open-webui/pull/32684), [Commit](https://github.com/open-webui/open-webui/commit/c9936e81ecb8d50187a9c31d2952353da2b538c8), [#32683](https://github.com/open-webui/open-webui/issues/32683), [#32960](https://github.com/open-webui/open-webui/pull/32960), [Commit](https://github.com/open-webui/open-webui/commit/b17ee7d83925c87688f308e4599dbd320a017fe4)
- 🎛️ **Pipe Valves permission respected.** The Valves button of a pipe model in the chat input is now hidden from users without the Allow Chat Valves permission. [#32772](https://github.com/open-webui/open-webui/pull/32772), [Commit](https://github.com/open-webui/open-webui/commit/46cdd70d7be82bbc25952a37fd6f647d7ea627cc), [#32771](https://github.com/open-webui/open-webui/issues/32771)
- 👥 **One model without Multiple Models.** A new chat now starts with a single model for users without the Multiple Models permission, where a default or a link with several models kept them all selected. [#32668](https://github.com/open-webui/open-webui/pull/32668), [Commit](https://github.com/open-webui/open-webui/commit/5d75c1905b79a6a0e9dd505cd1fc2db6a5502849), [#32667](https://github.com/open-webui/open-webui/issues/32667)
- 🖊️ **Chat Edit permission respected.** The Edit button of a user's own messages is now hidden from users without the Allow Chat Edit permission, where only the Edit button of replies was hidden. [#32841](https://github.com/open-webui/open-webui/pull/32841), [Commit](https://github.com/open-webui/open-webui/commit/ce7f87a7505c911da1fab5309692a7329bf0c395), [#32832](https://github.com/open-webui/open-webui/issues/32832)
- 📅 **Calendar page respects access.** Opening the Calendar page with Calendar turned off or without the Calendar permission now returns to the home page, where it showed an empty calendar and an error. [#32837](https://github.com/open-webui/open-webui/pull/32837), [Commit](https://github.com/open-webui/open-webui/commit/ffcb24824f6b4afacb4e36147eb3b701b99441db), [#32834](https://github.com/open-webui/open-webui/issues/32834)
- 🔒 **Live access after archiving.** People who see a chat through a shared folder now stop receiving its live updates when the owner archives it or archives all chats, and people with a share link stop when the owner unshares all chats, as they already did when a single chat was unshared or deleted. [#32887](https://github.com/open-webui/open-webui/pull/32887), [Commit](https://github.com/open-webui/open-webui/commit/ed3cf8355346689d790829074aa7d8cd004b7865)
- 🧵 **Thread replies deleted too.** Deleting a channel message now also deletes its thread replies, which stayed behind and could still be found in search. [#32666](https://github.com/open-webui/open-webui/pull/32666), [Commit](https://github.com/open-webui/open-webui/commit/54fc21d6855ba4c41c9088c758949d6fcc0ff26f), [#32665](https://github.com/open-webui/open-webui/issues/32665)
- 🔗 **Shared chat pages load once.** Chats opened under /s/, through a share link or by an administrator viewing another user's chat, no longer reload over and over and jump back to the bottom, which since 0.12.3 made scrolling up impossible. [#32725](https://github.com/open-webui/open-webui/pull/32725), [Commit](https://github.com/open-webui/open-webui/commit/c4153a6eeaeb6a0c5ec8cc152a1bdf328b848859), [#32657](https://github.com/open-webui/open-webui/issues/32657)
- 🧹 **Deleting the open chat.** Deleting the chat you are viewing from the sidebar now opens an empty new chat, where the deleted chat's messages stayed on screen and the next message failed, in Safari with "The string did not match the expected pattern." [#33069](https://github.com/open-webui/open-webui/pull/33069), [Commit](https://github.com/open-webui/open-webui/commit/c04e408432b24e2a6cbeb2eaf513b8f2840460b6), [#33068](https://github.com/open-webui/open-webui/issues/33068)
- 🪡 **More Concise and Add Details.** Choosing More Concise or Add Details or typing a suggestion under a reply now rewrites that reply, where the model got the instruction without the reply and answered it on its own, for example with "OK, I'll keep answers shorter". [#33084](https://github.com/open-webui/open-webui/pull/33084), [Commit](https://github.com/open-webui/open-webui/commit/c69e5a73c0de43691e502bfaa03285e4e8cec05d), [#33083](https://github.com/open-webui/open-webui/issues/33083)
- 📱 **Sign-in page on small screens.** The sign-in page can now be scrolled when it is taller than the screen, such as on phones with the keyboard open, where parts of the form could be out of reach. [Commit](https://github.com/open-webui/open-webui/commit/ffbe0ac12da8ca5af9da12f8f00c43e382300b4f)
- 🖼️ **Note menu image uploads.** Images picked with Upload files in a note's menu now appear in the note, where they were saved with the note's files but never inserted. [#32793](https://github.com/open-webui/open-webui/pull/32793), [Commit](https://github.com/open-webui/open-webui/commit/4604f2a3bc2f112135eac75c06048916d3ff37df), [#32792](https://github.com/open-webui/open-webui/issues/32792)
- 📜 **Prompt history on unchanged saves.** Saving a prompt without changes no longer adds an identical version to its history. [#32709](https://github.com/open-webui/open-webui/pull/32709), [Commit](https://github.com/open-webui/open-webui/commit/312d113fd04bc43996cf97282c34b46ba79c26cd), [#32708](https://github.com/open-webui/open-webui/issues/32708)
- 🎨 **Images after tool approval.** Images the model generates after you answer its question or approve or reject a tool call now appear in the reply, where they were created but never shown and the model kept retrying with more hidden images. [#32680](https://github.com/open-webui/open-webui/pull/32680), [Commit](https://github.com/open-webui/open-webui/commit/93ba628f3a3cf7f275892f3f3e0375d5984b51a7), [#32678](https://github.com/open-webui/open-webui/issues/32678)
- 🧬 **Embeddings with Prefix ID.** The embeddings API now works with models from a connection that has a Prefix ID, where the provider rejected the prefixed model name as unknown. [#32724](https://github.com/open-webui/open-webui/pull/32724), [Commit](https://github.com/open-webui/open-webui/commit/c901bc39d31eb85af289743850f92848529d422b), [#32715](https://github.com/open-webui/open-webui/issues/32715)
- 📞 **Realtime calls answer once.** A Realtime call no longer answers the same sentence twice when a short pause splits it into two turns. [#32773](https://github.com/open-webui/open-webui/pull/32773), [Commit](https://github.com/open-webui/open-webui/commit/25b115662396a9e09ee115008f4516aaa2eebd1d), [#32764](https://github.com/open-webui/open-webui/issues/32764)
- ⬅️ **Right-to-left question cards.** Question cards from Ask User now follow the Chat Direction setting, so Hebrew and Arabic questions and answers are laid out right to left. [#32784](https://github.com/open-webui/open-webui/pull/32784), [Commit](https://github.com/open-webui/open-webui/commit/aee4cbf4639281f711018af08e029e0f501fd3c4), [#32778](https://github.com/open-webui/open-webui/issues/32778)
- 🛠️ **Same-named tool functions.** When two attached tools have a function with the same name, the model can now call both, where only the first one could be called. [#32670](https://github.com/open-webui/open-webui/pull/32670), [Commit](https://github.com/open-webui/open-webui/commit/ab6976b5bf6b1f18149a4f6c8ec4e2d90adec643), [#32669](https://github.com/open-webui/open-webui/issues/32669)
- 🧷 **Tool server array parameters.** An array query parameter now reaches an OpenAPI tool server as repeated values instead of one text value that looks like a Python list. [#32677](https://github.com/open-webui/open-webui/pull/32677), [Commit](https://github.com/open-webui/open-webui/commit/fd1e59b25ff68ff015ce84707839084157df6045), [#32676](https://github.com/open-webui/open-webui/issues/32676)
- 📖 **Reading files in pages.** The model's file reading tools now return every part of a file or knowledge base file read in pages with line numbers on, where some text between pages was skipped, and asking for only an end line now reads from the first line up to it, where the model got the same opening part back and kept retrying. [#33155](https://github.com/open-webui/open-webui/pull/33155), [Commit](https://github.com/open-webui/open-webui/commit/a01b36afe80983ca878b2c4dcdc25f8559a25308), [#33099](https://github.com/open-webui/open-webui/issues/33099), [#33154](https://github.com/open-webui/open-webui/pull/33154), [Commit](https://github.com/open-webui/open-webui/commit/d378fe81cb7e6bde2e4766cc5be1e0a45a320d3b), [#33100](https://github.com/open-webui/open-webui/issues/33100)
- 📚 **Multi-folder knowledge drops.** Dropping several folders on a knowledge base now uploads all of them, where only the first one was uploaded. [#32653](https://github.com/open-webui/open-webui/pull/32653), [Commit](https://github.com/open-webui/open-webui/commit/d907b61816018202d2425109fbf9b506107e7182), [#32652](https://github.com/open-webui/open-webui/issues/32652)
- 🙈 **Base models after publishing.** Hiding, toggling or editing a base model right after making it public in Admin Settings > Models is now saved. [#32655](https://github.com/open-webui/open-webui/pull/32655), [Commit](https://github.com/open-webui/open-webui/commit/d8bef1ef90391647d2d34dffade63484f70e5c83), [#32654](https://github.com/open-webui/open-webui/issues/32654)
- 🧩 **Restored skill-only drafts.** A draft that holds only a skill, brought back to the chat input, now sends only that skill, where the names of every skill were sent. [#32690](https://github.com/open-webui/open-webui/pull/32690), [Commit](https://github.com/open-webui/open-webui/commit/14956af03f2ba50a154b13ff77166139fdcc0315), [#32689](https://github.com/open-webui/open-webui/issues/32689)
- 🐍 **Python code block results.** Running a plotting block again now shows only the new plot, and a block whose last value is a date, decimal number or other object shows that value instead of "Maximum call stack size exceeded". [#32686](https://github.com/open-webui/open-webui/pull/32686), [Commit](https://github.com/open-webui/open-webui/commit/1a0bdb38a179ace36419aee87688727a9466a25a), [#32685](https://github.com/open-webui/open-webui/issues/32685), [#32682](https://github.com/open-webui/open-webui/pull/32682), [Commit](https://github.com/open-webui/open-webui/commit/fb5eec56dd2212d07a77dfb4ed4b25d26ccebcb2), [#32681](https://github.com/open-webui/open-webui/issues/32681)
- 🪟 **Preview of an earlier artifact.** Preview on an earlier code block now opens that block's artifact when the artifacts pane was closed, where it opened the newest one. [#32688](https://github.com/open-webui/open-webui/pull/32688), [Commit](https://github.com/open-webui/open-webui/commit/9862a5bd613bb1c98166bb0eff1c8e824fa86723), [#32687](https://github.com/open-webui/open-webui/issues/32687)
- 📎 **Attachments in the chat input.** An attached webpage now stays when file upload is not allowed, and a file's Entire Document switch shows that file's own setting after another attachment is removed. [#32701](https://github.com/open-webui/open-webui/pull/32701), [Commit](https://github.com/open-webui/open-webui/commit/bb8d49ff31d3503f91dff2d6e60b4376e021d2f7), [#32700](https://github.com/open-webui/open-webui/issues/32700), [#32699](https://github.com/open-webui/open-webui/pull/32699), [Commit](https://github.com/open-webui/open-webui/commit/a944564c20a3c207c6987e49d10cc01658e50b67), [#32698](https://github.com/open-webui/open-webui/issues/32698)
- 🕸️ **Web pages on fresh installs.** Attached web pages and other HTML text extraction return their text again on fresh installs, where a broken update of a library underneath made them come back empty. [#33103](https://github.com/open-webui/open-webui/pull/33103), [Commit](https://github.com/open-webui/open-webui/commit/f32de07ddead5453658c828cd7e2c3a1c680934c)
- 🔎 **Shared Chats search paging.** A search in Shared Chats or in an admin's view of a user's chats now loads more than the first 60 results. [#32675](https://github.com/open-webui/open-webui/pull/32675), [Commit](https://github.com/open-webui/open-webui/commit/0f2d1af1ce2092b2d6021823a923ddd179682f52), [#32674](https://github.com/open-webui/open-webui/issues/32674)
- 📂 **Open folder stays open.** Deleting another folder in the sidebar no longer closes the folder page you have open. [#32697](https://github.com/open-webui/open-webui/pull/32697), [Commit](https://github.com/open-webui/open-webui/commit/db9aa8c9c02f841f4d35f65ee061eddd2e4a57f9), [#32696](https://github.com/open-webui/open-webui/issues/32696)
- 📝 **Note pins and counts.** The Notes list now shows Pin for a note unpinned from the sidebar, and readers of a note shared as read only see its word and character counts instead of zero. [#32707](https://github.com/open-webui/open-webui/pull/32707), [Commit](https://github.com/open-webui/open-webui/commit/6a7205e965072a016c9c3046e1be320921a0af5f), [#32706](https://github.com/open-webui/open-webui/issues/32706), [#32711](https://github.com/open-webui/open-webui/pull/32711), [Commit](https://github.com/open-webui/open-webui/commit/252338964223cc75b5d0f02ba9e3cb7f6bd9ab90), [#32710](https://github.com/open-webui/open-webui/issues/32710)
- 🪞 **Notes open once.** A note that two people open at the same time, such as one imported from a Markdown or text file and not edited since, no longer shows and saves its text twice, also with several workers. [#33004](https://github.com/open-webui/open-webui/pull/33004), [Commit](https://github.com/open-webui/open-webui/commit/499b83fa8d47f592bd7d79cab270d5cfc12652be), [#33002](https://github.com/open-webui/open-webui/issues/33002), [Commit](https://github.com/open-webui/open-webui/commit/1407f83cfc8df4e727f82beabdd4da6e29fc1119), [#32824](https://github.com/open-webui/open-webui/issues/32824)
- 🔊 **Voice from Settings > Audio.** Read Aloud and voice mode now use the voice picked in Settings > Audio, which in Firefox fell back to the default voice. [#32705](https://github.com/open-webui/open-webui/pull/32705), [Commit](https://github.com/open-webui/open-webui/commit/5edbd12bc9ba29eb0753d9bc888165d23171b0d8), [#32704](https://github.com/open-webui/open-webui/issues/32704)
- 🔈 **Read Aloud stops on failure.** Read Aloud now stops requesting the remaining sentences once one fails, so an unavailable speech provider shows a single error instead of one for every sentence. [#33028](https://github.com/open-webui/open-webui/pull/33028), [Commit](https://github.com/open-webui/open-webui/commit/ea615c3a2e89d827e24016d719acb5ee63f409d2), [#33023](https://github.com/open-webui/open-webui/issues/33023)
- 🗄️ **Archived chats survive folders.** Archive All Chats now takes the chats out of their folders, so deleting a folder afterwards no longer deletes those archived chats for good. [#32647](https://github.com/open-webui/open-webui/pull/32647), [Commit](https://github.com/open-webui/open-webui/commit/97f5c4e973a703b63a2606b054de324db88f706f), [#32646](https://github.com/open-webui/open-webui/issues/32646)
- 🔌 **No hangs after closed pages.** Closing a page while it was still loading, such as a chat export or a file's processing status, no longer loses database connections on SQLite, where later requests could hang or fail with 503 once enough were lost. [#32617](https://github.com/open-webui/open-webui/pull/32617), [Commit](https://github.com/open-webui/open-webui/commit/2355b8a3699826eaf1fe5a344f63e292f9532c48), [#32609](https://github.com/open-webui/open-webui/issues/32609), [#32741](https://github.com/open-webui/open-webui/issues/32741)
- 🧱 **Frontend build on Windows.** Running npm run build or npm run dev on Windows works again, where the encryption module check added in 0.12.3 failed on Windows paths and line endings, and the build now runs with a 12 GB memory limit like the Docker build. [#32735](https://github.com/open-webui/open-webui/pull/32735), [Commit](https://github.com/open-webui/open-webui/commit/7345c6c31e91b473a4a6b49ec14d37d37cbd8b49), [#32656](https://github.com/open-webui/open-webui/issues/32656)
- 🪄 **Function input dialogs answered.** Confirming or cancelling a function's input or confirmation dialog now reaches the function when a script event arrived while the dialog was open, where the function kept waiting for an answer. [#32744](https://github.com/open-webui/open-webui/pull/32744), [Commit](https://github.com/open-webui/open-webui/commit/2d9852c6048774c0d8913c722b5fe661326f1b4d), [#32742](https://github.com/open-webui/open-webui/issues/32742)
- ❓ **Clearer Ask User error.** When a model sends the Ask User questions as something other than a list, such as a JSON string, it now gets an error saying they must be an array of question objects instead of "ask_user requires 1-3 questions", which made models repeat the same call. [#32727](https://github.com/open-webui/open-webui/pull/32727), [Commit](https://github.com/open-webui/open-webui/commit/794e57cf7ed29e0bf00a66a825c1d0b9682845b4), [#32662](https://github.com/open-webui/open-webui/issues/32662)
- 🛑 **Stop sequences with percent.** A stop sequence containing % no longer stops every message from sending. [#32649](https://github.com/open-webui/open-webui/pull/32649), [Commit](https://github.com/open-webui/open-webui/commit/fdb304be2f5250c9282bacd3ff91757e55b89976), [#32648](https://github.com/open-webui/open-webui/issues/32648)
- 🗜️ **Channel image compression by default.** With image compression on, images in channels are now compressed when Compress Images in Channels is left at its default, where they were sent uncompressed. [#32693](https://github.com/open-webui/open-webui/pull/32693), [Commit](https://github.com/open-webui/open-webui/commit/70fb5462eab6b71e258c9fbd9ce5714bd173bcfb), [#32692](https://github.com/open-webui/open-webui/issues/32692)
- 🎙️ **Microphone off when leaving.** Leaving a chat while dictating now turns the microphone off. [#32640](https://github.com/open-webui/open-webui/pull/32640), [Commit](https://github.com/open-webui/open-webui/commit/636b631ab7cf2f4053c43466468cd4bb119dd250), [#32638](https://github.com/open-webui/open-webui/issues/32638), [#32639](https://github.com/open-webui/open-webui/issues/32639)
- ✏️ **Chat titles of only spaces.** Renaming a chat to only spaces now keeps its title and shows an error instead of saving a blank title. [#32770](https://github.com/open-webui/open-webui/pull/32770), [Commit](https://github.com/open-webui/open-webui/commit/9cbd27011b1d1842f52cbf91b4b5764b5820b52b), [#32769](https://github.com/open-webui/open-webui/issues/32769)
- 💬 **Prompts from / in channels.** Picking a prompt from the / menu in a channel now inserts the prompt text instead of a command chip. [#32713](https://github.com/open-webui/open-webui/pull/32713), [Commit](https://github.com/open-webui/open-webui/commit/1d0b78271910cb5a20e121fd586389906b87dbbe), [#32712](https://github.com/open-webui/open-webui/issues/32712)
- 🔤 **No stray formatting spaces.** Chat messages no longer show an extra space at the start of each paragraph and before italic, bold, struck-through or linked text, which appeared in 0.12.3 and left a gap after an em dash. [#32743](https://github.com/open-webui/open-webui/pull/32743), [Commit](https://github.com/open-webui/open-webui/commit/2bebbb44e1a04b220f831aced950b0e334529988), [#32739](https://github.com/open-webui/open-webui/issues/32739)
- 🔁 **FastMCP list results sent once.** List results from tools on servers built with the standalone FastMCP package now reach the model once instead of twice, as text and as structured data. [#32726](https://github.com/open-webui/open-webui/pull/32726), [Commit](https://github.com/open-webui/open-webui/commit/217766ed0f53bde167cb80b115f7eb79664ffe5a), [#32719](https://github.com/open-webui/open-webui/issues/32719)
- 🪢 **MCP tools with alternative inputs.** MCP tools that describe their input as alternatives, such as a page by ID or by path, now receive the arguments the model sends, where they were called with none and the server rejected the call. [#32903](https://github.com/open-webui/open-webui/pull/32903), [Commit](https://github.com/open-webui/open-webui/commit/f3f9af594f3c9a20b1f46f846eb8393630733f6c), [#32898](https://github.com/open-webui/open-webui/discussions/32898)
- 🩺 **Readable MCP tool errors.** When an MCP tool returns an error, the model now gets the server's error text as written instead of an unreadable dump of the whole result, so it can correct the call where it tended to retry the same broken one. [#32942](https://github.com/open-webui/open-webui/pull/32942), [Commit](https://github.com/open-webui/open-webui/commit/37af63b6496d545f6f2d4e8067ea01de209e218b), [#32918](https://github.com/open-webui/open-webui/issues/32918)
- 📞 **Ended Realtime calls named correctly.** When the voice provider ends a Realtime call, the call now shows "Voice provider connection closed" instead of sometimes showing "Voice connection failed". [#32730](https://github.com/open-webui/open-webui/pull/32730), [Commit](https://github.com/open-webui/open-webui/commit/cd74e6d1266c5a623f9c143d7efa6cb4d6f3f0c9), [#32729](https://github.com/open-webui/open-webui/issues/32729)
- 🧭 **Scrolling while a reply streams.** On slow or busy devices a streaming reply now keeps the view at the bottom as its content grows, where it stopped following partway through, and scrolling up while it streams is no longer pulled back down. [Commit](https://github.com/open-webui/open-webui/commit/5a46aad0f0702536c98c9a26ae7d04482cdac784), [#32728](https://github.com/open-webui/open-webui/issues/32728)
- ⚡ **Early updates in new chats.** The first reply of a new chat no longer stays empty with the Stop button showing when its error or content arrives before the page knows the new chat, a message added while a chat is still loading no longer stays missing until a reload, and a message queued during the first reply of a new chat is sent once that reply finishes. [Commit](https://github.com/open-webui/open-webui/commit/cbd06d2aad0d64c2a50b4989c4290762de2cd3f0), [Commit](https://github.com/open-webui/open-webui/commit/d5038fec44d2f37e81798a6c7f4340a8d1a62f10), [#32550](https://github.com/open-webui/open-webui/issues/32550), [#32761](https://github.com/open-webui/open-webui/issues/32761)
- 🧠 **Reasoning replay with Azure.** Reasoning models on Azure OpenAI through the Responses API no longer fail with an "Unknown parameter" error on the request after they think and then call a tool. [Commit](https://github.com/open-webui/open-webui/commit/d1705c10788242b4d1a49042318a577877042469), [#32805](https://github.com/open-webui/open-webui/issues/32805)
- 📋 **Drafts with variables kept.** Reloading the page with a chat input draft that contains {{ }} placeholders, or editing a queued message that contains them, now keeps the text as it was, where it asked for input variables and dropped the text. [Commit](https://github.com/open-webui/open-webui/commit/6dbd375c267dd0dafc83c480ec23e3b1a7156406), [#32650](https://github.com/open-webui/open-webui/issues/32650)
- 🔑 **OAuth 2.1 static MCP secrets.** MCP connections using OAuth 2.1 (Static) now send the client secret through HTTP Basic authentication when the server does not take it as a form field, where servers such as X Ads that list the public client method first got no secret and rejected the sign-in. [#32818](https://github.com/open-webui/open-webui/pull/32818), [Commit](https://github.com/open-webui/open-webui/commit/21f770fb731ff24245bc9ca8c3c82bb4171e24cf), [#32813](https://github.com/open-webui/open-webui/issues/32813)
- 🌍 **Web Search settings save.** Admins can now save Web Search settings such as the web loader while web search is turned off, where empty search engine fields blocked saving. [#32840](https://github.com/open-webui/open-webui/pull/32840), [Commit](https://github.com/open-webui/open-webui/commit/cc6de63bc876f3c3d8116d5d2858e7887b1997b9), [#32831](https://github.com/open-webui/open-webui/issues/32831)
- 🖌️ **Images settings save.** Admins can now save Images settings while Image Generation or Image Edit is turned off, where a missing API key or URL for that feature's engine, such as the OpenAI key on a fresh install, blocked every change on the page. [#32949](https://github.com/open-webui/open-webui/pull/32949), [Commit](https://github.com/open-webui/open-webui/commit/6b9237f1a1ef28045d36c07eb452e7b76524c19d), [#32835](https://github.com/open-webui/open-webui/issues/32835)
- 🌄 **WebP image editing.** Editing a WebP image with Image Edit now works in the Docker image, where the image reached the provider without an image type and was rejected. [#32902](https://github.com/open-webui/open-webui/pull/32902), [Commit](https://github.com/open-webui/open-webui/commit/f6f42b0111054123d6811270feca35bf9ce6d19d), [#32899](https://github.com/open-webui/open-webui/issues/32899)
- 🍴 **No fork in temporary chats.** The Fork chat option is now hidden in temporary chats and the /fork command answers that there is no chat to fork, where forking failed with an error. [#32839](https://github.com/open-webui/open-webui/pull/32839), [Commit](https://github.com/open-webui/open-webui/commit/1a492207971a5118dde2fe6b523edf7021f38cc9), [#32833](https://github.com/open-webui/open-webui/issues/32833)
- 🚀 **First message after loading.** A message sent right after the page loads is no longer wiped by the new chat setup still running, where it disappeared and its reply stayed empty until a reload. [#32829](https://github.com/open-webui/open-webui/pull/32829), [Commit](https://github.com/open-webui/open-webui/commit/4ed1af6879ee632a3130771b4a960ccf37c1c305), [#32819](https://github.com/open-webui/open-webui/issues/32819)
- 📑 **MinerU key in local mode.** Document extraction with MinerU in local mode now sends the configured API key to MinerU 4.x servers that require one, where every document failed. [#32838](https://github.com/open-webui/open-webui/pull/32838), [Commit](https://github.com/open-webui/open-webui/commit/3e0564d11a06052d8042fffc95b138dcbde5df6b), [#32836](https://github.com/open-webui/open-webui/issues/32836)
- 🚫 **Model import reports taken IDs.** Importing models on the Workspace Models page now stops with an error at a model whose ID belongs to another user's model the importer cannot edit or, for non-admins, to a connection model, where that model was skipped without a message. [#32866](https://github.com/open-webui/open-webui/pull/32866), [Commit](https://github.com/open-webui/open-webui/commit/cb7d7e851d160bfc866aca9385c8a8013dd10192)
- 🎞️ **Left-aligned PowerPoint titles.** The PowerPoint preview now keeps titles and subtitles that the file aligns left on the left, where it centered them. [#32876](https://github.com/open-webui/open-webui/pull/32876), [Commit](https://github.com/open-webui/open-webui/commit/8fa77c8282b10e7de36863c4df6583a62a55354c), [#32873](https://github.com/open-webui/open-webui/issues/32873)
- 🫥 **Multi-model hover previews.** Sidebar hover previews of a chat with replies from several models now show one reply at full width, where every reply was squeezed into the card. [Commit](https://github.com/open-webui/open-webui/commit/35b51e09eab0942470cb9dce8f97fb00b9b96f2c), [#32858](https://github.com/open-webui/open-webui/issues/32858)
- 🐚 **Launcher help in zsh.** The examples in the Docker Compose launcher help now quote options with square brackets, so they also work when pasted into zsh. [#32881](https://github.com/open-webui/open-webui/pull/32881), [Commit](https://github.com/open-webui/open-webui/commit/52f51ea4f3044072d49eefd4feedb859bb66b80c), [#32878](https://github.com/open-webui/open-webui/issues/32878)
- 🌡️ **Context gauge uses model threshold.** The context usage gauge now measures against the compaction threshold set on the model or in the default model parameters, the same one compaction uses, where it ignored a lower threshold on the model and showed a chat as far from compaction. [Commit](https://github.com/open-webui/open-webui/commit/c9415a688ea469144ab2a7796d5eef71947af0b8), [#32821](https://github.com/open-webui/open-webui/issues/32821)
- 🏷️ **Tooltips show text as written.** Tooltips now show names, paths and descriptions that contain angle brackets as written, where they came out mangled or partly missing. [#32953](https://github.com/open-webui/open-webui/pull/32953), [Commit](https://github.com/open-webui/open-webui/commit/3299a097530847ec53da01a5964cf7ef8592dee0)
- 📇 **Knowledge file text edits.** The Preview of a text file in a knowledge base now shows its indexed text and refreshes after you save an edit, where it kept showing the original upload, and saving empty content is now refused. [Commit](https://github.com/open-webui/open-webui/commit/82d6f230b4e701e85863c01b1992a25a767696bf)
- 📡 **Websockets after Redis reconnects.** With the Redis websocket manager and "retry_on_timeout" in "WEBSOCKET_REDIS_OPTIONS", an instance now accepts new browser connections again once Redis is back after its connection dropped, where since 0.12.3 every new connection could hang until the instance was restarted. [#33009](https://github.com/open-webui/open-webui/pull/33009), [Commit](https://github.com/open-webui/open-webui/commit/0d17660535dd2ad9d6f0b75a2a2f5855066cd0a0), [#33008](https://github.com/open-webui/open-webui/issues/33008)
- 🥞 **One model More menu open.** Clicking the More button of another model in the model picker, or clicking another model, now closes the More menu that was open, where the menus stayed open and piled up over the picker. [#33020](https://github.com/open-webui/open-webui/pull/33020), [Commit](https://github.com/open-webui/open-webui/commit/fa629e5ca5015f6bc3e3be1f7a4a76c5ccd57e18), [#33019](https://github.com/open-webui/open-webui/issues/33019)
### Changed
- 🔧 **Direct Integrations off disables connections.** While Direct Integrations is off, as it is by default, the tool servers and Open Terminal connections that users and admins saved in their Integrations settings are no longer used in chats, where turning it off only hid the settings tab, so instances that never turned it on lose those connections until an admin turns on Direct Integrations in Admin Settings > Connections or sets "ENABLE_DIRECT_INTEGRATIONS". [#32996](https://github.com/open-webui/open-webui/pull/32996), [Commit](https://github.com/open-webui/open-webui/commit/3e9d6cb9508a1ba4ec18017b3c80afaf6ac59a89)
- 🔀 **Sharing changed only in Access.** Saving a model, prompt, tool, skill, knowledge base, note, channel or calendar no longer changes who it is shared with, which is now changed only in the item's Access settings, saved right away in the model editor, channel settings and external knowledge sources, or through the access endpoints that channels and calendars now also have. [Commit](https://github.com/open-webui/open-webui/commit/5f95008abdfbbbfbe5c080de0347deb70eb507b6), [Commit](https://github.com/open-webui/open-webui/commit/c7e34e0fa9bdd34f798ab197e1e21aca2234ed2b)
- 🐳 **Python 3.12 Docker image.** The Docker image now runs Python 3.12 on Debian 13 instead of Python 3.11 on Debian 12, so custom functions, tools and packages installed with pip inside the container need versions that support Python 3.12. [#32861](https://github.com/open-webui/open-webui/pull/32861), [Commit](https://github.com/open-webui/open-webui/commit/a915df8ce12b32109b7b929cb2cad6046293aef6)
- 🤝 **Sharing permissions enforced everywhere.** Sharing permissions such as Models Sharing, Knowledge Sharing and Folders Sharing now also apply to sharing through the API, and a change in an item's Access settings that a user is not allowed to make is now refused with an error instead of being quietly left out. [Commit](https://github.com/open-webui/open-webui/commit/5f95008abdfbbbfbe5c080de0347deb70eb507b6)
- 🗄️ **Manage Files shows only yours.** Manage Files in Settings > Data Controls now lists only your own files, also for administrators, who saw every user's files there while "BYPASS_ADMIN_ACCESS_CONTROL" was on, as it is by default. [Commit](https://github.com/open-webui/open-webui/commit/2a86805648f45c36c479c6f9a0127cae799ee14f)
- 🕹️ **Model controls for all users.** Anyone with access to a model can now pick its model control options, such as a Thinking level, and parameters saved to an account are no longer filtered by the Allow Chat Controls and Allow Chat Params permissions, which now only hide the Chat Controls and Advanced Parameters panels. [#32860](https://github.com/open-webui/open-webui/pull/32860), [Commit](https://github.com/open-webui/open-webui/commit/db5b8749448c5cb2a1e42f1bd0c01213bc2c31d1), [#32626](https://github.com/open-webui/open-webui/issues/32626)
- 🚦 **Stricter MCP timeouts and redirects.** "MCP_INITIALIZE_TIMEOUT", 10 seconds by default, now also limits listing tools and reading resources on MCP servers, so slow servers may need a higher value, and MCP connections now only follow redirects that stay on the same address. [#33087](https://github.com/open-webui/open-webui/pull/33087), [Commit](https://github.com/open-webui/open-webui/commit/8151826483163877cec837b35ba7c1affdd1fb5a)
- ⌨️ **Shift quick actions removed.** Holding Shift over a sidebar chat no longer shows the quick Archive and Delete buttons, since Shift-click now selects chats, which are then archived or deleted together, and deleting asks for confirmation first. [Commit](https://github.com/open-webui/open-webui/commit/acc231774d00d8856feefd2e7a3ef4b503a8224e), [#32543](https://github.com/open-webui/open-webui/issues/32543)
- ✉️ **No emails on hover.** Hovering an owner in the workspace lists and admin Functions, or a person in access settings, no longer shows their email address, since the profile card that replaces the tooltip does not include it. [Commit](https://github.com/open-webui/open-webui/commit/02974f41e9b7c9d34f2cd7c664c2a04fd6ac12ae), [Commit](https://github.com/open-webui/open-webui/commit/72cc79b8f336a753b6e75e0f3415630601b14759), [Commit](https://github.com/open-webui/open-webui/commit/ba34b1c47c1d054d2f9c498d0aed862ec06da41a)
## [0.12.3] - 2026-10-16
### Added
- 🔐 **End-to-end encrypted chats.** Direct messages and private group channels can now hold a temporary end-to-end encrypted chat: a member picks Encrypted Chat in the channel menu, the other members see "Encrypted chat in progress" with a Join link, messages of up to 16 KiB are encrypted in the browser with MLS and only passed through the server without being saved, participants can verify each other by comparing codes and see when others are typing, and the chat is cleared when you leave or reload and ends when channel membership or access changes. Administrators turn it on under Admin Settings > General > Encrypted channels or with "ENABLE_ENCRYPTED_CHANNELS" and grant it with the new Encrypted Channels permission, off by default or set with "USER_PERMISSIONS_FEATURES_ENCRYPTED_CHANNELS", and it needs websocket connections with websocket server logging off and HTTPS in production. [Commit](https://github.com/open-webui/open-webui/commit/7dc91de86c41866f4170602f074c39dbf1609377), [Commit](https://github.com/open-webui/open-webui/commit/0b3812f2857b4c65fd1ab931f40de4f1264edc46), [Commit](https://github.com/open-webui/open-webui/commit/b1e876896caee5bf30a010fb414a9249ec7f59a2), [Commit](https://github.com/open-webui/open-webui/commit/4dedaaf6e2292c2c4fb48668eee1292cfd7de2d0)
- 📡 **Much lighter streaming with Redis.** With Redis, a streaming reply is now stored under its own key and new text is appended to it instead of rewriting the whole reply into a shared hash on every update, and replies started on older instances are still read during an upgrade; with room channels on, each instance now only subscribes to the rooms of people connected to it, so Redis no longer sends it live updates for chats it does not serve. [Commit](https://github.com/open-webui/open-webui/commit/f5a26f53a089eeb9683ead687a1fd3e9125132a6) [Commit](https://github.com/open-webui/open-webui/commit/362b01d0b2ba677858a5af85caf3dd8544c5e6df) [#32478](https://github.com/open-webui/open-webui/issues/32478)
- 🔍 **Compare view options and undo.** The Compare revision view has a Comparison options menu to ignore whitespace, ignore emphasis markers or only show changes with the unchanged lines folded away, an Undo button that steps back through your edits in both panes in order, and changed lines that are now lined up by their matching text. [Commit](https://github.com/open-webui/open-webui/commit/d0750f6617acd3b57ce58ba1d543c37e6c793c8d), [Commit](https://github.com/open-webui/open-webui/commit/a087aa1deb4d999b122f882335fd08af8f06e72c), [Commit](https://github.com/open-webui/open-webui/commit/10ce0d23651fc2c96fd0d276147cd48105e21b84), [Commit](https://github.com/open-webui/open-webui/commit/3288fe010a5e8f8a59e1e5d2262957d175e56bde)
- 📝 **Richer Markdown file previews.** Markdown files opened in the terminal file browser now render with the same renderer as chat replies, including math, footnotes, highlighted code blocks, alerts and Mermaid diagrams, as well as HTML blocks mixed with Markdown, laid out as a compact document, and task list checkboxes in an editable file can be ticked to save the change to the file. [Commit](https://github.com/open-webui/open-webui/commit/c9a52208da9e8deeac6f2df7fcacbe519c2acb29) [Commit](https://github.com/open-webui/open-webui/commit/7c3980338b72c5faa7e7f3a088deb477644fef40) [Commit](https://github.com/open-webui/open-webui/commit/15ac5163ea00a934ec0c68d2bb7f6bc5c655223e) [#32514](https://github.com/open-webui/open-webui/issues/32514)
- 👀 **Live collaborators in shared chats.** The top bar of a chat now shows the pictures of the other people who have the same chat open at that moment, up to three and a count for the rest, with a Collaborators list that opens their profile cards. [Commit](https://github.com/open-webui/open-webui/commit/4dedaaf6e2292c2c4fb48668eee1292cfd7de2d0), [Commit](https://github.com/open-webui/open-webui/commit/8191ac30dd79b4a39130fe83ffc16035776be484), [Commit](https://github.com/open-webui/open-webui/commit/8e9519240fcdcd568a9b951ba06e523c58e68350)
- ✏️ **Edit and regenerate in shared chats with replies.** In a chat from a shared folder that allows replies, people who may edit messages can now edit a prompt to start a new branch and regenerate any reply, not only replies to their own messages, and others viewing the chat stay on the branch they had selected. [Commit](https://github.com/open-webui/open-webui/commit/2a6e0da057d3b6eb6ba506346c4db788cab735f0), [Commit](https://github.com/open-webui/open-webui/commit/788a61180be76aef27761b051300d6eefa715947)
- 🗄️ **Folder access in the folder editor.** Sharing a folder now happens through an Access button in the Edit Folder dialog instead of a Share item in the folder menu, the sharing mode can be set before anyone is added, and subfolders note that access granted to parent folders also applies to them. [Commit](https://github.com/open-webui/open-webui/commit/f4557ca06b8331c8914bac9e8f54ce63b0445c21), [Commit](https://github.com/open-webui/open-webui/commit/4a70253bc8586ad1d2a97241665b2060324bab37)
- 🔎 **Workspace search.** The search window now searches your chats, chats in folders shared with you, chats shared with you, channel and direct messages and notes in one place, with filters for content type, a folder or channel, and whether something was created by you or shared with you, highlighted matches, a preview of each result with Ctrl/Cmd + Enter, Copy link, and channel results that open the thread scrolled to the matching message. [Commit](https://github.com/open-webui/open-webui/commit/b4db56ae96651d926adb4aefc6ec1275f35c6b6f), [Commit](https://github.com/open-webui/open-webui/commit/ef28e99e587a2845a2852bb6ab8c182dc1588980), [Commit](https://github.com/open-webui/open-webui/commit/1a1a81d8e09330900ac74e4bc97a48e1e0d52a8a)
- 💭 **Comments in document previews.** Word, Excel, PowerPoint and PDF files opened in the terminal file browser now show their comments and replies, marked where they belong in the document and opened by hovering or tapping a marker, and older .xls spreadsheets can now be previewed too. [Commit](https://github.com/open-webui/open-webui/commit/ba0b2169e1799e1915c6dbb071c56d54896467fb)
- 🧹 **Clear Input Selections shortcut.** Clearing the model override, selected tools and filters and the web search, image generation and code interpreter toggles from the chat input is now a shortcut you can change in Settings > Shortcuts, still Escape by default. [Commit](https://github.com/open-webui/open-webui/commit/9cf48f4fb0a8aef30010294912a3a5674850beaf)
- 🙋 **Ask about a file from the file browser.** Selecting text in a file open in the terminal file browser now shows an "Ask or edit…" box that sends your request to the model with the file attached and the selection quoted, so it can answer or edit that file in the same terminal; unsaved edits can be saved before sending, and requests sent while a reply is running wait in the queue. [Commit](https://github.com/open-webui/open-webui/commit/af34515131d9efd41cfeae5c1ea50a7f7ed84443)
- ☁️ **Google Drive access limited to picked files.** The Google Drive picker now asks only for access to the files a user picks instead of read access to their whole Drive, so self-hosted installs no longer need Google's restricted-scope verification and users no longer see the "Google hasn't verified this app" warning. [#32531](https://github.com/open-webui/open-webui/pull/32531) [Commit](https://github.com/open-webui/open-webui/commit/ed5c2d7522c126b6163aad56762790025b31ec0b) [#29537](https://github.com/open-webui/open-webui/issues/29537)
- 📜 **Full text of long status lines.** Status lines above a reply, such as a token usage summary sent by a function, can now be clicked to show their full text, and with several status lines the history shows every entry in full. [#32532](https://github.com/open-webui/open-webui/pull/32532) [Commit](https://github.com/open-webui/open-webui/commit/291b57bec24ec670050b996ede45ea6dd56c7f9f) [#30056](https://github.com/open-webui/open-webui/issues/30056)
- 📏 **Skill read limits.** Administrators can set how many characters of a skill the model reads at once and how long the preview of longer instructions is, under Admin Settings > General with "Skill Read Limit" and "Skill Preview Length" or the "SKILL_CONTENT_MAX_CHARS" and "SKILL_PREVIEW_MAX_CHARS" environment variables, which default to 20000 and 5000. [Commit](https://github.com/open-webui/open-webui/commit/92e64c1d59cdd99b5f33a108186a1d368daab964)
- 🔄 **General improvements.** Various improvements were implemented across the application to enhance performance, stability, and security.
- 🌐 **Translation updates.** Translations for Portuguese (Brazil), Chinese (Traditional), Arabic, Bengali, Hebrew, Georgian, Punjabi, Slovak, Serbian, Urdu, Uzbek and Vietnamese were enhanced and expanded. [#32440](https://github.com/open-webui/open-webui/pull/32440), [#32482](https://github.com/open-webui/open-webui/pull/32482), [#32501](https://github.com/open-webui/open-webui/pull/32501)
### Fixed
- 🧾 **API key header requests in the audit log.** Requests authenticated with an API key in the x-api-key header, as Anthropic SDKs send it, or in a header set with "CUSTOM_API_KEY_HEADER" now appear in the audit log under the key's owner, and failed attempts with a wrong key are logged without a user, where these requests were missing from the audit log. [#32443](https://github.com/open-webui/open-webui/pull/32443), [Commit](https://github.com/open-webui/open-webui/commit/f7c8ad012ddcf458c39cdf8a96b41c410655196c)
- 📚 **Knowledge sharing kept on rename.** A collaborator with write access who edits a shared knowledge base's name or description no longer turns off sharing they could not set themselves, such as Public. [#32450](https://github.com/open-webui/open-webui/pull/32450), [Commit](https://github.com/open-webui/open-webui/commit/08f6023427cdad6179b8fc5f656c99f3f0ad44f8), [#32449](https://github.com/open-webui/open-webui/issues/32449)
- 🤝 **Prompt and tool sharing kept on save.** A collaborator with write access who saves a shared prompt or tool no longer makes it private for everyone; sharing they could not set themselves is now kept. [#32493](https://github.com/open-webui/open-webui/pull/32493), [Commit](https://github.com/open-webui/open-webui/commit/5dff6489d2f6a6c33c49ca035e5384ff5dd29006), [#32492](https://github.com/open-webui/open-webui/issues/32492)
- 📄 **PDF export of long notes and chats.** Long notes and chats now download as PDF, where Firefox failed with "Canvas exceeds max size" and Chrome saved a black PDF. [#32459](https://github.com/open-webui/open-webui/pull/32459), [Commit](https://github.com/open-webui/open-webui/commit/f78e46ef44ecc1a7ea8a4951edc17e22bf1d5cad), [#18334](https://github.com/open-webui/open-webui/issues/18334), [#26373](https://github.com/open-webui/open-webui/issues/26373), [#19583](https://github.com/open-webui/open-webui/discussions/19583)
- ⏩ **Continue Response with several models.** Continue Response now continues the reply it was clicked under, where in a chat with several models it could extend another model's reply. [#32456](https://github.com/open-webui/open-webui/pull/32456), [Commit](https://github.com/open-webui/open-webui/commit/3c82fda4e813e00d33ca16a8ddd61596296a2066), [#32455](https://github.com/open-webui/open-webui/issues/32455)
- 🏷️ **Tags of imported chats.** Imported chats now show their tags and the tags appear in tag suggestions, where tags missing from the account were not created on import. [#32454](https://github.com/open-webui/open-webui/pull/32454), [Commit](https://github.com/open-webui/open-webui/commit/fd47370e851c3fcb55ba69aec39488aaec7f4b02), [#32453](https://github.com/open-webui/open-webui/issues/32453)
- 🔖 **Tags of archived chats.** Searching the sidebar for a tag whose chats are all archived no longer deletes the tag, which lost its original name when the chats were unarchived. [#32452](https://github.com/open-webui/open-webui/pull/32452), [Commit](https://github.com/open-webui/open-webui/commit/58b821a4642480b2202320b45146bace72962f3b), [#32451](https://github.com/open-webui/open-webui/issues/32451)
- ⌨️ **Input methods in channels.** Pressing Enter to confirm a word while typing with an input method, such as for Japanese, Chinese or Korean, no longer sends and clears a channel message before the word is in. [Commit](https://github.com/open-webui/open-webui/commit/9d0aa791ad70ef2a7771c74955e2c9304021609e)
- 🖱️ **Scroll error after leaving a chat.** Scrolling a chat right before opening Notes no longer logs a TypeError in the browser console. [#32458](https://github.com/open-webui/open-webui/pull/32458), [Commit](https://github.com/open-webui/open-webui/commit/9245e31ccba8e464054297b1f3660ab3e7f77969), [#32457](https://github.com/open-webui/open-webui/issues/32457)
- 📐 **Steady first turn in new chats.** The latest message and reply in a new chat now keep their real height when the chat gets saved and the message list reloads, so the view no longer jumps on the first turn. [Commit](https://github.com/open-webui/open-webui/commit/bbccff89c1cf318c21cd9eeb4228f98882a33736)
- 💬 **Sending in channels.** Your own channel message now stays in place when the server confirms it instead of being redrawn, and the channel scrolls to your new message as you send it, where it could jump or keep the old scroll position. [Commit](https://github.com/open-webui/open-webui/commit/99457b373e6b81fe50df0d18a75d126706237841)
- 📂 **Terminal folder in new chats.** In a new chat, files you attach are uploaded to the folder open in the terminal file browser and the file browser stays in that folder once the chat is created, where uploads could go to the default folder and the browser jumped back to it. [Commit](https://github.com/open-webui/open-webui/commit/7ca62fdf93f6177e929cca20c712f3d958e1d935)
- 📁 **Shared folder settings and access.** Editing a shared folder's models, system prompt or files no longer resets its sharing mode, and a subfolder in a folder shared with write access stays writable when it is also shared directly with read access. [Commit](https://github.com/open-webui/open-webui/commit/f4557ca06b8331c8914bac9e8f54ce63b0445c21), [Commit](https://github.com/open-webui/open-webui/commit/4a70253bc8586ad1d2a97241665b2060324bab37)
- 🔑 **OAuth token refresh with client_secret_basic.** When "OAUTH_TOKEN_ENDPOINT_AUTH_METHOD" is client_secret_basic, token refresh now sends the client credentials in the Basic header like sign-in does, where providers that accept only Basic rejected the refresh and Open WebUI deleted the user's OAuth tokens, breaking model connections and tool servers that use them until the next sign-in. [#32507](https://github.com/open-webui/open-webui/pull/32507), [Commit](https://github.com/open-webui/open-webui/commit/ae6793dd4f209455387bcc418a5c775eec0b16c3), [#32506](https://github.com/open-webui/open-webui/issues/32506)
- 🛠️ **OAuth tools after sign-in.** An OAuth MCP tool now stays turned on after its sign-in redirect when the model has default tools, and links with ?tools= turn the listed tools on. [#32488](https://github.com/open-webui/open-webui/pull/32488), [Commit](https://github.com/open-webui/open-webui/commit/81722918384cb56608a2ab26ca03059b3a811758), [#32476](https://github.com/open-webui/open-webui/issues/32476)
- 🔤 **Admin default font kept.** Saving Settings > Interface no longer stores the administrator's default font and image compression size as your own settings, so later changes to those defaults still reach you. [#32497](https://github.com/open-webui/open-webui/pull/32497), [Commit](https://github.com/open-webui/open-webui/commit/e979a1f9e2c86d60c7ee3ba48fb0dc42a3b65aa0), [#32496](https://github.com/open-webui/open-webui/issues/32496)
- 🔊 **Read aloud with slow speech.** Read aloud no longer stops after the first sentence when the speech engine takes longer to produce the next one than the current one takes to play. [#32484](https://github.com/open-webui/open-webui/pull/32484), [Commit](https://github.com/open-webui/open-webui/commit/7da8653e71cda807609d9ec64912cd319c0d6ccf), [#32446](https://github.com/open-webui/open-webui/issues/32446)
- 🖼️ **Inline HTML previews on Per chat terminals.** Inline HTML previews in replies now find the file in the chat's own terminal workspace when the Open Terminal chat context is Per chat, where they showed "File not found". [#32485](https://github.com/open-webui/open-webui/pull/32485), [Commit](https://github.com/open-webui/open-webui/commit/ec39df7da56f6947fde17a9be2c146251f891b26), [#32477](https://github.com/open-webui/open-webui/issues/32477)
- 🧵 **Replies in channel threads.** A reply started in one channel thread no longer carries over to the next thread you open, where messages could quote a message from the other thread. [#32490](https://github.com/open-webui/open-webui/pull/32490), [Commit](https://github.com/open-webui/open-webui/commit/0696bfdf276fe6331c6dfaf50c53676d08b1574a), [#32489](https://github.com/open-webui/open-webui/issues/32489)
- 📑 **Scanned PDF previews.** Previewing a scanned PDF without a text layer in the knowledge base viewer no longer scrolls the page up and pushes the header and toolbar out of reach. [#32487](https://github.com/open-webui/open-webui/pull/32487), [Commit](https://github.com/open-webui/open-webui/commit/1bc5648a7b67c82405f86ed4bd0506f9ae3eb739), [#32481](https://github.com/open-webui/open-webui/issues/32481)
- ↩️ **Right-to-left lists.** Bullets, numbers and task checkboxes of Markdown lists now sit on the correct side for right-to-left text in replies and file previews. [Commit](https://github.com/open-webui/open-webui/commit/6768f52aca633945292da08ff9450fd4dc62705f), [#32444](https://github.com/open-webui/open-webui/issues/32444)
- 🔁 **Regenerate in cloned shared chats.** Regenerate now works in a chat you cloned or forked from someone else's share, where it failed with "You can only regenerate your own messages". [#32508](https://github.com/open-webui/open-webui/pull/32508), [Commit](https://github.com/open-webui/open-webui/commit/ad3e5a6c425f7b4af8a66f2e8dc42a7625526f95), [#32505](https://github.com/open-webui/open-webui/issues/32505)
- 🗑️ **Delete hidden for repliers in shared chats.** People replying in a shared chat no longer see a Delete button the server refuses, which made a deleted reply come back on reload; Delete shows to the chat's owner and to administrators when "ENABLE_ADMIN_CHAT_ACCESS" is on. [#32480](https://github.com/open-webui/open-webui/pull/32480), [Commit](https://github.com/open-webui/open-webui/commit/493b10630b0c19ee5a60f9de0fc5d997bb82bbb1), [#32479](https://github.com/open-webui/open-webui/issues/32479)
- 🎛️ **Model default features can be turned off.** A model can now switch off a Default Feature, such as Code Interpreter, that the administrator turned on in Model Defaults, where it came back on when reopened and in new chats. [#32500](https://github.com/open-webui/open-webui/pull/32500), [Commit](https://github.com/open-webui/open-webui/commit/a8dd8dbf987a3c7f4d6aa7c102e4e9cb158c4f5a), [#32498](https://github.com/open-webui/open-webui/issues/32498)
- 🧰 **Built-in tools turned back on stay on.** A built-in tool such as Memory that is off in Model Defaults now stays on after a model turns it back on and is saved. [#32504](https://github.com/open-webui/open-webui/pull/32504), [Commit](https://github.com/open-webui/open-webui/commit/9cc648cad8589686e617e4a64bea10134ff16288), [#32503](https://github.com/open-webui/open-webui/issues/32503)
- 🏠 **Refresh with Landing Page Mode set to Chat.** Refreshing a new chat when Landing Page Mode is Chat no longer hides the message field and opens the model menu in the top left corner. [#32510](https://github.com/open-webui/open-webui/pull/32510), [Commit](https://github.com/open-webui/open-webui/commit/5d4f16bcc9af1afac55dc0ffb4dced96041531a5), [#32509](https://github.com/open-webui/open-webui/issues/32509)
- 🗜️ **Compaction during tool runs keeps sources out.** Context compaction during a long series of tool calls now summarizes your own message without the knowledge and file content added to it, and that content is given back to the model afterwards. [Commit](https://github.com/open-webui/open-webui/commit/597b00a5479ac0466b2f4d23a5e902ee0950091d), [#32491](https://github.com/open-webui/open-webui/issues/32491)
- 🧩 **Built-in tools with a custom tools parameter.** A model with a custom parameter named tools, such as one that turns on a provider's native web search, now keeps its built-in tools, attached tools and file context, and its custom tools are sent alongside them. [#32530](https://github.com/open-webui/open-webui/pull/32530) [Commit](https://github.com/open-webui/open-webui/commit/3ccea416b4e69ef688acdd879c8cb7cd31d5ab84) [#32528](https://github.com/open-webui/open-webui/issues/32528)
- 🔌 **Tool servers back after an outage.** With Redis, tools from OpenAPI tool servers now come back once the servers are reachable again, where an empty list cached while every server was down kept them missing until a restart or a save in the tool server settings. [#32533](https://github.com/open-webui/open-webui/pull/32533) [Commit](https://github.com/open-webui/open-webui/commit/51a4d582706311502ae53a6c11876b87a49f5400) [#29573](https://github.com/open-webui/open-webui/issues/29573)
- 📥 **PDF links read as documents.** PDFs from sites that block unknown clients, such as Wikimedia, and arXiv links like arxiv.org/pdf/1706.03762 now go to document extraction, where the model got the raw PDF bytes. [#32523](https://github.com/open-webui/open-webui/pull/32523) [Commit](https://github.com/open-webui/open-webui/commit/a5942da0a264b4e97a5d6a18adea7d4fcbfc275a) [#32524](https://github.com/open-webui/open-webui/pull/32524) [Commit](https://github.com/open-webui/open-webui/commit/823670d9fa925255d3ebf28e55779b8be45a1c3a)
### Changed
- 🎯 **Model skills now load their full instructions.** With the Skills builtin tool on, skills attached to a model in the model editor, which every new chat pre-selects, and skills picked from the chat input menu now send their full instructions with each message, where they were only listed by name and description for the model to load with view_skill; deployments that attached skills to models only to make them available should remove them from the model to avoid the extra prompt length, since every skill the user can read is listed for the model anyway. [Commit](https://github.com/open-webui/open-webui/commit/5cf7c03332ad3fd68ddba276b94a87f8cea25c7a)
- 📮 **Redis permissions for room channels.** With "WEBSOCKET_REDIS_ROOM_CHANNELS" on, the Redis user now needs the PUBLISH, SUBSCRIBE, UNSUBSCRIBE and PING permissions and access to the "&socketio" and "&socketio#\*" channels, while PSUBSCRIBE is no longer used; a missing permission is logged with how to fix it. [Commit](https://github.com/open-webui/open-webui/commit/362b01d0b2ba677858a5af85caf3dd8544c5e6df)
## [0.12.2] - 2026-10-14
### Added
- 📑 **MinerU 4.x servers.** The MinerU document engine now works with self-hosted MinerU 4.x servers, where every document failed with a 404 because 4.x removed the old parsing interface; 3.x servers work as before, 4.x servers take a tier (flash, basic, standard or advanced) and enable_ocr in the MinerU parameters while language and model_version stay 3.x only, and images that 4.x returns inside the document text are left out of the indexed content. [#32422](https://github.com/open-webui/open-webui/pull/32422), [Commit](https://github.com/open-webui/open-webui/commit/81f5b8adf80e49bd2213390b59dc867074c3738e), [#31516](https://github.com/open-webui/open-webui/issues/31516)
- 🤝 **Keep both changes when comparing.** The Compare revision view now has a Keep both button that puts the original and the proposed text of the selected change into the proposed revision, original first, so you no longer have to pick one side. [Commit](https://github.com/open-webui/open-webui/commit/97b7ed73c84767611d3a26d594c36f63619d92ea)
- 📚 **Open attached knowledge from its preview.** Clicking the name in the preview of an attached knowledge collection now opens that collection in the workspace, and file and link names are real links that open in a new tab. [Commit](https://github.com/open-webui/open-webui/commit/40bf4a1b99aa0aae316095eff100c07570c542da)
- 🏷️ **Model ID in custom headers.** Custom headers on connections and tool servers can now use {{MODEL_ID}}, which holds the ID of the model handling the chat request, the workspace model's own ID for a workspace model and each model's own ID in a multi-model chat, so downstream services can route or log usage per model. [#32426](https://github.com/open-webui/open-webui/pull/32426), [Commit](https://github.com/open-webui/open-webui/commit/bae22752d3995f573a373ee1ae4735b746d952a9), [#30006](https://github.com/open-webui/open-webui/issues/30006)
- 🧾 **Requested model in the audit log.** Audit log entries for chat and completion requests, including the OpenAI, Ollama and Anthropic compatible endpoints, now carry a model_id field with the model the client asked for at every AUDIT_LOG_LEVEL, where the model only appeared in the request body and went missing when MAX_BODY_LOG_SIZE cut a long prompt; other requests log it as null. [#32429](https://github.com/open-webui/open-webui/pull/32429), [Commit](https://github.com/open-webui/open-webui/commit/fb3d92a6ef56b5a8a6820f615f6e6294c44eaad7), [#30097](https://github.com/open-webui/open-webui/issues/30097)
- 🔐 **Custom TLS certificate for Milvus.** Open WebUI can now connect to a Milvus server with a self-signed or company-issued TLS certificate by pointing the new "MILVUS_SERVER_PEM_PATH" environment variable at the certificate file, in normal and multi-tenancy mode. [#32427](https://github.com/open-webui/open-webui/pull/32427), [Commit](https://github.com/open-webui/open-webui/commit/3bc82bb2c110fc3ed7064e6107a4731b8d9ab5ae), [#31632](https://github.com/open-webui/open-webui/issues/31632)
- 🧭 **call_tool for Tool Search.** With Tool Search on, the model now gets a new call_tool tool and runs a tool it found with search_tools through it, passing the tool's name and its arguments, instead of calling the deferred tool directly by a name that is not in the request's tool list, which strict providers rejected; approvals and other tool behavior stay the same. [Commit](https://github.com/open-webui/open-webui/commit/7b47c3b22ce983d57f4a13073748a935c4614889), [#32243](https://github.com/open-webui/open-webui/issues/32243)
- 🔄 **General improvements.** Various improvements were implemented across the application to enhance performance, stability, and security.
### Fixed
- 🔏 **Channel message metadata kept server side.** Channel messages posted or edited through the API no longer take their metadata from the request, so a user can no longer make a message appear to come from a channel webhook or a model. [#32421](https://github.com/open-webui/open-webui/pull/32421), [Commit](https://github.com/open-webui/open-webui/commit/44953df70ed758a6321f7a2e139c93aca29129f1)
- 👮 **SCIM cannot delete admins.** An identity provider can no longer delete administrator accounts, including the first admin, through a SCIM delete request, which now answers with 403 and leaves the account in place, so a sync that prunes unassigned users can no longer leave the instance without an administrator; admins are removed in the admin panel. [#32415](https://github.com/open-webui/open-webui/pull/32415), [Commit](https://github.com/open-webui/open-webui/commit/6276e81cec38f5c5cce067e4be905c5710c2d7d6), [#27662](https://github.com/open-webui/open-webui/issues/27662)
- 🗝️ **Collection names checked as stored.** Retrieval access checks now compare collection names the way vector stores resolve them, ignoring letter case and treating hyphens and underscores alike, so a name written differently can no longer pass the check as something other than the collection that is then read. [#32435](https://github.com/open-webui/open-webui/pull/32435), [Commit](https://github.com/open-webui/open-webui/commit/30f3c49fb02c22269b42fe3b310209926ee7e8f9)
- 📱 **Voice on Android Chrome.** Voice calls and dictation on Android Chrome no longer go silent or hang on Listening after about ten uses until the page is reloaded, since the microphone level display now releases its audio output after each turn. [#32417](https://github.com/open-webui/open-webui/pull/32417), [Commit](https://github.com/open-webui/open-webui/commit/f35b1993271e6f0cf1ffc55375d634a65c9e0ab1), [#29969](https://github.com/open-webui/open-webui/issues/29969)
- 🖥️ **Per chat terminal file actions.** With the Open Terminal chat context set to Per chat, opening HTML files, running notebooks, saving edited files, creating new files, deleting several selected files and downloading a folder or selection as a zip now use the chat's own workspace, where HTML files showed "File not found" and saved files never appeared in the chat. [#32418](https://github.com/open-webui/open-webui/pull/32418), [Commit](https://github.com/open-webui/open-webui/commit/77fd8aea613c42e0d590804c7f9fdcf6f5f4af02), [#29965](https://github.com/open-webui/open-webui/issues/29965)
- 🧮 **Memory reindex rate limits.** Reindexing memories, from the admin Reindex Knowledge and Memory Vectors button, a user resetting their memory vectors or the automatic reindex after an embedding model change, now follows the Embedding Concurrent Requests limit and batch size, where it sent one request per memory at once and rate-limited providers failed most of them with 429 errors. [#32420](https://github.com/open-webui/open-webui/pull/32420), [Commit](https://github.com/open-webui/open-webui/commit/8bddf9bc62c3ffcaa3e6433bc5ac0f1d04a94421), [#32212](https://github.com/open-webui/open-webui/issues/32212)
- ⏰ **Automation run results.** An automation run is now recorded as successful only after its reply finishes, and a reply that fails or is cancelled is recorded as an error that links to the chat, where runs counted as successful as soon as the reply started. [Commit](https://github.com/open-webui/open-webui/commit/de446952c2db1168dca5c6e3da6d961e6f55a8eb)
- 📜 **Long polling kept out of the audit log.** With websocket support turned off, every socket.io long polling request is no longer written to the audit log as its own entry, which flooded it and could not be filtered with AUDIT_EXCLUDED_PATHS, so the audit log looks the same with either transport. [#32425](https://github.com/open-webui/open-webui/pull/32425), [Commit](https://github.com/open-webui/open-webui/commit/209b15b9633c63ce1b7cf3c1fdc6e032d67978c6), [#31871](https://github.com/open-webui/open-webui/issues/31871)
- 📎 **Sources of approved tools.** With tool approval set to ask, a knowledge or file tool the user approved now saves and shows its sources below the reply, where they were lost after approval. [#32439](https://github.com/open-webui/open-webui/pull/32439), [Commit](https://github.com/open-webui/open-webui/commit/5fde0485a5adda046d283416a5c4c7a543d7a5fe), [#32436](https://github.com/open-webui/open-webui/issues/32436)
- 🗂️ **Sidebar hover previews.** Moving the pointer from one sidebar folder to the next no longer leaves the first folder's preview open or keeps the next one from opening, and folder and chat previews now also open when the pointer rests on the padding around a name. [#32438](https://github.com/open-webui/open-webui/pull/32438), [Commit](https://github.com/open-webui/open-webui/commit/5e2748a03edd2459d07fcfea168daf740092bf94), [#32437](https://github.com/open-webui/open-webui/issues/32437)
### Changed
- 🔖 **Valkey connections tagged as Open WebUI.** Open WebUI's Valkey vector store connections now report their library name as GlidePySync(open-webui), so operators of a shared Valkey or ElastiCache can tell its traffic apart; this needs valkey-glide-sync 2.5.2 or newer, so installs that use VECTOR_DB=valkey with an older manually installed version must upgrade it, or startup fails. [#32428](https://github.com/open-webui/open-webui/pull/32428), [Commit](https://github.com/open-webui/open-webui/commit/980225e5823808de7ace86a8ee73a0b880b37023), [#31654](https://github.com/open-webui/open-webui/issues/31654)
## [0.12.1] - 2026-10-14
### Added
- 🧱 **External apps in channels.** Administrators can now turn on Apps in Admin Settings > General, or with "ENABLE_APPS", and connect external apps in the new Apps tab of Admin Settings by their HTTPS address, reviewing the permissions each app asks for, such as reading its mentions, reading channel messages or posting messages, and choosing who may use it; channel managers then add an app to a channel with Add Members in the channel info, where it is listed with the members and its own profile picture, and mentioning it with @ lets it answer in the channel with replies that can be shown only to the person who asked, show cards with a title, fields and a thumbnail, offer buttons or links, follow up with a later message for longer tasks or provide a Markdown file to download. Apps on a private network address can be reached over plain HTTP once their address is listed in "APP_ALLOWED_PRIVATE_ORIGINS". Open WebUI keeps a live connection to each app, Admin Settings > Apps shows whether it is connected, and a failed connection names the cause, such as a rejected API key, a wrong public key or an unreachable address. [Commit](https://github.com/open-webui/open-webui/commit/04bccecb8e3289c9336404c1ab4c6d124fabdc2f), [Commit](https://github.com/open-webui/open-webui/commit/774007d7284f6266b4df728eb661c50e165cf2b2), [Commit](https://github.com/open-webui/open-webui/commit/2ba35625b35b2bd92fa34033dedfc29d2ab1e5fb), [Commit](https://github.com/open-webui/open-webui/commit/2d4712824218faa96d9da7d7772f78f2872f25db), [Commit](https://github.com/open-webui/open-webui/commit/4ab60527e70ffb3c75c6bf9d1ce12578dcf15e96), [Commit](https://github.com/open-webui/open-webui/commit/e9635596ddef29589ab3c747da4e7563bd77ad2f), [Commit](https://github.com/open-webui/open-webui/commit/d823ebd96d2996e2d8a5cd4cf5596c5e8b8db1fd), [Commit](https://github.com/open-webui/open-webui/commit/1786d6cdb0a9db80649816eaa987da4aba5de0ed), [Commit](https://github.com/open-webui/open-webui/commit/03f5191acab77a5e3ab9ed3c09f9e2e8ba889c20), [Commit](https://github.com/open-webui/open-webui/commit/be6f0a66562920f38fcb0a876ce54970a47d169c)
- 🎭 **Avatars in Standard voice calls.** A model's avatar now also appears in voice calls that use the Standard call mode, moves with the spoken reply and can play the model's gestures when the model uses native function calling, where avatars and gestures only worked in Realtime calls; the Voice avatar setting in the model editor is now shown even when Realtime is off. [Commit](https://github.com/open-webui/open-webui/commit/78613d86f7564d1927ebf5f11292419fdeadb18c)
- 🪪 **Profile cards from profile pictures.** Clicking the picture of the person who wrote a message in a shared chat, of a shared chat's owner in the sidebar or of a direct message partner in the sidebar now opens their profile card. [Commit](https://github.com/open-webui/open-webui/commit/a165c8385843c4f87e3eeb5797527004765e5708)
- 🗂️ **Open sidebar folders in a new tab.** Folders in the sidebar can now be opened in a new tab with a middle click or Ctrl or Cmd click, and their link can be copied from the browser's context menu. [Commit](https://github.com/open-webui/open-webui/commit/ed3caa5619b8a577d0fc2fe2b6bdae90fc47ac69), [#29750](https://github.com/open-webui/open-webui/issues/29750)
- 🔀 **Compare and merge a revision.** The skill file editor, the prompt editor and the system prompt in the model editor have a Compare revision button, and the chat input has Compare text in its + menu and a /compare command, each opening a side-by-side view where you paste a proposed revision, for example one written by a model, step through each change, copy changes in either direction and apply the result to your draft, the skill file editor also gets a Copy button for the open file, and comparing two files in the terminal file browser, with Select for Compare and Compare with Selected, now opens the same view. [Commit](https://github.com/open-webui/open-webui/commit/ab518a43218e5d1549292f7d995895cf4e8afd93), [Commit](https://github.com/open-webui/open-webui/commit/b374e0bb263d3793f024af1038e40e15a7f14867), [Commit](https://github.com/open-webui/open-webui/commit/cae8a7e19943332cae6f1f35bbe8f7b51eadf48c), [Commit](https://github.com/open-webui/open-webui/commit/ff502881e0d3e4acf58d4d756e3144fde259e042), [Commit](https://github.com/open-webui/open-webui/commit/1045d74c757bdd08151e2c18e0d44155a590495f), [Commit](https://github.com/open-webui/open-webui/commit/d51fffb4688d84310abba73301bc2f0c76c62c89), [Commit](https://github.com/open-webui/open-webui/commit/de642f1dba23d0cb5b2305704947e381c26f53c0), [Commit](https://github.com/open-webui/open-webui/commit/b0ba137551e1290062d8d1f3dba8ab7c6f884a1d)
- 🔕 **Mute channels.** The menu of a channel or direct message now has a Notifications setting where Mentions only mutes it, so it no longer shows an unread count or notifies you unless someone @mentions you. [Commit](https://github.com/open-webui/open-webui/commit/e5c80682b9dc9a38274dc81eeb35a3c41be6dfd0)
- 📤 **Export a skill as a .skill file.** The skill menu has Export .skill, which downloads one skill with all its files as a single .skill archive, and .skill files can be imported like ZIP files, from disk or a link. [Commit](https://github.com/open-webui/open-webui/commit/fe0e725997a7f7be16e7463b3731f0340b5a62ab)
- 📣 **Typed mentions in channels.** Writing @name or #channel in a channel message without picking from the list now turns it into a real mention when the name matches a member, model, app or channel, and mentions pasted from another message keep pointing at the same person. [Commit](https://github.com/open-webui/open-webui/commit/f9c524d31d7737239aa990751cca4705e3872cb8), [Commit](https://github.com/open-webui/open-webui/commit/ba3e2273586850f3c69f61d70bfa7e603f32634b)
- 👥 **Who wrote in a shared chat.** Chats in shared folders now show the pictures of everyone who wrote in them, up to three and a count for the rest, each opening that person's profile card. [Commit](https://github.com/open-webui/open-webui/commit/35c927ba99bea3997f57899008df2a2abd8b9354)
- 🗂 **Folder previews on hover.** Hovering a folder in the sidebar shows a card with its default model, its knowledge and its chat counts, with a button to edit the folder. [Commit](https://github.com/open-webui/open-webui/commit/e5c80682b9dc9a38274dc81eeb35a3c41be6dfd0)
- 🎠 **Turn and zoom the voice avatar.** In voice calls and in the model editor preview, the voice avatar can now be turned by dragging, panned with a right drag, Shift drag or two fingers, zoomed with the mouse wheel or a pinch and reset with a double click. [#32378](https://github.com/open-webui/open-webui/pull/32378)
- 🔍 **Faster one-word chat search.** Searching your chats for a single word is now about 40% faster, as each chat is checked once instead of twice. [#32268](https://github.com/open-webui/open-webui/pull/32268), [#32266](https://github.com/open-webui/open-webui/issues/32266)
- 👯 **Message pairs for every model.** Generate Message Pair, Ctrl+Shift+Enter, now adds a placeholder reply for each selected model side by side, where only the first model got one, and the side-by-side view stays after a reload. [#32309](https://github.com/open-webui/open-webui/pull/32309)
- 🔆 **Screen on during calls.** The screen now stays on during Realtime voice calls as well as Standard ones and is allowed to turn off again once the call ends, where Realtime calls let it go dark and Standard calls kept it on after closing the call. [Commit](https://github.com/open-webui/open-webui/commit/a9227421d847eb51d7c59ec336420bbb20dfbcc8), [#32251](https://github.com/open-webui/open-webui/issues/32251)
- ☁️ **Azure OpenAI Realtime calls.** Realtime voice calls can now use Azure OpenAI: in the Voice calls section of Audio settings, administrators pick Azure OpenAI as the Provider, enter the Azure endpoint and the deployment name and sign in with an API key or with Microsoft Entra ID, and clearer errors now point to wrong credentials or a wrong URL or deployment, with the "AUDIO_REALTIME_PROVIDER" and "AUDIO_REALTIME_AUTH_TYPE" environment variables for the new settings. [Commit](https://github.com/open-webui/open-webui/commit/3ec07745036897f52bacf24351dd71f999902034), [#32343](https://github.com/open-webui/open-webui/issues/32343)
- 📊 **Input and output tokens in analytics.** The Analytics dashboard now shows model usage and user activity in one table with a Models and Users switch, and both lists show input, output and total tokens as separate columns that can each be sorted, where they showed a single Tokens column. [Commit](https://github.com/open-webui/open-webui/commit/00f12c0e47fb47b1318a20e97bacc753e769612b), [Commit](https://github.com/open-webui/open-webui/commit/21322d9cb192060b51857769c0ad9f9f14e1185d)
- 🎚️ **Realtime input parameters.** Administrators can now add extra settings for the audio input of Realtime voice calls as JSON under Input Parameters in the Voice calls section of Audio settings, such as noise reduction, or with the "AUDIO_REALTIME_INPUT_PARAMS" environment variable. [Commit](https://github.com/open-webui/open-webui/commit/00f12c0e47fb47b1318a20e97bacc753e769612b)
- 🔄 **General improvements.** Various improvements were implemented across the application to enhance performance, stability, and security.
- 🌐 **Translation updates.** Translations for Portuguese (Brazil), Italian, Czech, Romanian, Dutch, Ukrainian, Polish, Thai, Spanish, Malay, Persian, Korean, Arabic, Japanese, Indonesian, Russian, Vietnamese, Turkish, Hindi, German, Greek, Hungarian, Hebrew, Bulgarian, Swedish, Estonian, Norwegian Bokmål, Lithuanian, Croatian, Slovak, Bosnian, Danish, Slovenian, Galician, Latvian, Tibetan, Serbian, Bengali, Cebuano, Azerbaijani, Basque, Irish, Georgian, Kabyle, Punjabi, Faroese, Tamil, Uyghur, Urdu, Filipino and Turkmen were enhanced and expanded.
### Fixed
- 🔓 **Skill editor and more over plain HTTP.** When Open WebUI is opened over plain HTTP at a network address, the skill editor, adding options to model controls, adding gestures to a voice avatar, Realtime voice calls and the Playground chat now work, where they failed with "crypto.randomUUID is not a function" and the skill editor stayed disabled. [Commit](https://github.com/open-webui/open-webui/commit/d786ed56c98e9b0fd4c8af111e1c95d4e00c7789), [Commit](https://github.com/open-webui/open-webui/commit/2eb77fc27f08924252d0abf5fe19182532075511), [#32238](https://github.com/open-webui/open-webui/issues/32238)
- 📑 **Page titles for external knowledge citations.** Citations from external knowledge bases such as Qdrant, Milvus or pgvector whose source is a web address now show the page title in the source list below the answer, matching the numbered markers in the text, where the full address was shown. [#32232](https://github.com/open-webui/open-webui/pull/32232), [#32231](https://github.com/open-webui/open-webui/issues/32231)
- 🧭 **Redis Sentinel master names with capital letters.** With Redis Sentinel, a master name with capital letters in "REDIS_URL", such as myMaster, the default of the OT-Container-Kit redis-operator, now works, where it was lowercased and every Redis call failed with "No master found". [#32234](https://github.com/open-webui/open-webui/pull/32234), [#31918](https://github.com/open-webui/open-webui/issues/31918)
- 🔐 **Redis Sentinels with a password.** Redis Sentinels protected with a password now work, as the credentials in "REDIS_URL" and "WEBSOCKET_REDIS_URL" are also used for the Sentinels, where every Redis call failed with "No master found"; Sentinel credentials set in "WEBSOCKET_REDIS_OPTIONS" still take precedence. [#32241](https://github.com/open-webui/open-webui/pull/32241), [#32240](https://github.com/open-webui/open-webui/issues/32240)
- 🔗 **External knowledge citation links.** Clicking the title or Content link of a citation from an external knowledge base such as Qdrant, Milvus or pgvector now opens the cited web page, or shows the title as plain text when the source is not a web address, where it led to a not found error. [#32233](https://github.com/open-webui/open-webui/pull/32233), [#32231](https://github.com/open-webui/open-webui/issues/32231)
- 🧰 **Tools picked in new chats.** Tools picked from the Integrations menu, the Web Search toggle and a picked skill in a new chat now stay on after switching to another chat and back or reloading, where the chat fell back to the model's default tools and broke prompt caching. [#32235](https://github.com/open-webui/open-webui/pull/32235), [#32084](https://github.com/open-webui/open-webui/issues/32084)
- 📅 **Recurring automations run once.** Automations set with the Daily, Weekly or Monthly picker now run at the exact minute chosen in your own timezone, where they could run twice for one occurrence, and users behind the server's timezone could have their first run moved to the next day. [#32264](https://github.com/open-webui/open-webui/pull/32264), [#32263](https://github.com/open-webui/open-webui/issues/32263)
- 📵 **No voice calls in shared chats.** The Voice mode button no longer shows in a shared chat you can reply in, and a call that was open closes when you switch to one. [Commit](https://github.com/open-webui/open-webui/commit/3a54306c50f351e5d6e89e296cb32518535712ee)
- 🙆 **VRM 0.x avatar rest pose.** Voice avatars made in the older VRM 0.x format now rest with their arms down and breathe and sway the right way, where their arms were raised and their idle motion was mirrored. [#32270](https://github.com/open-webui/open-webui/pull/32270), [#32269](https://github.com/open-webui/open-webui/issues/32269)
- 🕶️ **Follow-ups in temporary chats.** Follow-up suggestions in temporary chats are now based on the reply just written, where they were generated without it. [Commit](https://github.com/open-webui/open-webui/commit/53a8f131f305a3beb87376d5dbc05889883fb950)
- 🔁 **No reconnect loop after sign-in.** A tab where you signed in without reloading the page now reconnects signed in after a connection drop, such as sleep, a network change or a server restart, where since 0.12.0 it reconnected several times per second until the page was reloaded and put heavy load on the server. [#32341](https://github.com/open-webui/open-webui/pull/32341), [#32338](https://github.com/open-webui/open-webui/issues/32338)
- 📎 **Note uploads no longer stuck.** A file uploaded to a note while another file or edit was saved now finishes and stays attached after a reload, where it kept spinning and was saved without its file. [#32328](https://github.com/open-webui/open-webui/pull/32328), [#32327](https://github.com/open-webui/open-webui/issues/32327)
- 🪟 **Side-by-side replies after Regenerate.** Adding a second model and pressing Regenerate now keeps both replies side by side after a reload, where the second reply showed as another version of the first. [#32326](https://github.com/open-webui/open-webui/pull/32326), [#32325](https://github.com/open-webui/open-webui/issues/32325)
- 👎 **Rating reason and comment kept.** The reason and comment saved in the rating form are no longer wiped a few seconds later when the generated tags arrive, both on the reply and in Admin Panel > Evaluations > Feedback. [#32334](https://github.com/open-webui/open-webui/pull/32334), [#32333](https://github.com/open-webui/open-webui/issues/32333)
- 🐙 **GitHub skill imports with symlinks.** Importing a skill from a GitHub link now works when the repository has symlinks outside the skill folder, such as a CLAUDE.md link at the root, where it failed with "Archives cannot contain links or special files". [#32313](https://github.com/open-webui/open-webui/pull/32313), [#32312](https://github.com/open-webui/open-webui/issues/32312)
- 🗒️ **Production versions with notes.** Setting an older model version as production now works when the model has a note attached as knowledge, where it failed with "Referenced knowledge is unavailable". [#32317](https://github.com/open-webui/open-webui/pull/32317), [#32316](https://github.com/open-webui/open-webui/issues/32316)
- 📂 **Open knowledge file stays open.** Deleting a folder in a knowledge base no longer closes the file open in the viewer unless the delete removed that file. [#32319](https://github.com/open-webui/open-webui/pull/32319), [#32318](https://github.com/open-webui/open-webui/issues/32318)
- 💾 **Save hidden on others' messages.** In a chat shared with Allow replies, editing a message someone else wrote no longer shows a Save button that silently reverted the text; Send and Save As Copy stay. [#32321](https://github.com/open-webui/open-webui/pull/32321), [#32320](https://github.com/open-webui/open-webui/issues/32320)
- 👁️ **Re-enabled models stay on.** In Admin Settings > Models, turning a model back on or showing it again now stays after a reload and the model appears in the chat model picker, where for a model never edited before the second change looked saved but was lost. [#32354](https://github.com/open-webui/open-webui/pull/32354), [#32353](https://github.com/open-webui/open-webui/issues/32353), [#32368](https://github.com/open-webui/open-webui/pull/32368), [#32365](https://github.com/open-webui/open-webui/issues/32365)
- 💲 **Dollar signs in Ask and Explain.** Ask and Explain on selected text now keep dollar signs such as "$5" or "$&" in the selected text and in your question, where they were dropped or replaced with other text. [#32356](https://github.com/open-webui/open-webui/pull/32356), [#32355](https://github.com/open-webui/open-webui/issues/32355)
- ▶️ **Code blocks show their last value.** Running a code block in the browser whose last line returns a number, list or other value, such as square(7), now shows that value, where it stayed on Running for a minute and ended with "Execution Time Limit Exceeded". [#32360](https://github.com/open-webui/open-webui/pull/32360), [#32359](https://github.com/open-webui/open-webui/issues/32359)
- 🔔 **Reminders for moved calendar events.** A calendar event moved to a new time after its reminder went out now reminds you again before the new start, where it never reminded again. [#32358](https://github.com/open-webui/open-webui/pull/32358), [#32357](https://github.com/open-webui/open-webui/issues/32357)
- 🌩️ **MCP OAuth behind Cloudflare.** Connecting an OAuth MCP tool server such as Canva now works when the provider's sign-in page is behind Cloudflare bot protection, where it failed with "OAuth client registration is still invalid after re-registration". [#32364](https://github.com/open-webui/open-webui/pull/32364), [#32363](https://github.com/open-webui/open-webui/issues/32363)
- 🗃️ **File list for pipes and tools without attachments.** Pipes and tools now get an empty file list on messages without attachments, where they got None and plugins that loop over the files failed. [#32380](https://github.com/open-webui/open-webui/pull/32380), [#32379](https://github.com/open-webui/open-webui/issues/32379)
- 🈯 **Model editor language switching.** Switching the Editing language in the model editor from one translated language to another now shows that language's name and description, where the fields kept the text of the language shown before. [#32224](https://github.com/open-webui/open-webui/pull/32224), [#32223](https://github.com/open-webui/open-webui/issues/32223)
- 🗣️ **Kokoro voice in calls.** Voice calls now speak replies with the Kokoro.js (Browser) voice chosen in your settings when the administrator has no server speech engine set, where the browser's own voice was used instead. [Commit](https://github.com/open-webui/open-webui/commit/78613d86f7564d1927ebf5f11292419fdeadb18c)
- 🧩 **Rich UI embed console errors.** Rich UI tool embeds no longer log a security error in the browser console on every load when iframe Sandbox Allow Same Origin is off or the embed comes from another site; the embed works as before. [#32226](https://github.com/open-webui/open-webui/pull/32226), [#32222](https://github.com/open-webui/open-webui/issues/32222)
- 🔎 **Clearer Top K descriptions.** The Top K and Top K Reranker descriptions in Admin Settings > Documents now say that Top K Reranker is the number of chunks the reranker passes to the model and that with hybrid search Top K is the number of candidates sent to the reranker, where the old text led admins to give the model far fewer chunks than intended. [#32225](https://github.com/open-webui/open-webui/pull/32225), [#32221](https://github.com/open-webui/open-webui/issues/32221)
- 🔌 **MCP connection errors in the logs.** When an MCP server fails to connect during a chat, the reason, such as a refused connection or a 401 from the server, is now logged as an error, where it was only logged at debug level and never reached the logs of a default install. [#32229](https://github.com/open-webui/open-webui/pull/32229), [#32213](https://github.com/open-webui/open-webui/issues/32213)
- 🗑️ **Deleting one language's custom translation.** In Admin Settings > General > Translations, Delete now removes only the translation for the language shown and keeps the row while other languages still have text, where it removed the row with its translations for every language. [Commit](https://github.com/open-webui/open-webui/commit/1283b2701ecb0037cc2c374e34e69976c302a25c)
- 💬 **Translated model prompt suggestions.** Editing the prompt suggestions of a model that uses the default suggestions in another language now starts from the administrator's default suggestions for that language, where the list was empty. [Commit](https://github.com/open-webui/open-webui/commit/1283b2701ecb0037cc2c374e34e69976c302a25c)
- 🏷️ **Titles for voice call chats.** Chats started with a Realtime voice call now get a generated title and tags as soon as the chat is created, following the Automatic title and tag settings, where they stayed named "New Chat". [Commit](https://github.com/open-webui/open-webui/commit/8ea808850deabb4709391602417b0aa00f2857cf), [#32258](https://github.com/open-webui/open-webui/issues/32258)
- 🪝 **Webhooks for group and direct messages.** Members of group channels and direct messages now get their channel message webhook notifications, where only regular channels sent them, and muting such a channel stops them except for messages that mention the member. [#32404](https://github.com/open-webui/open-webui/pull/32404), [Commit](https://github.com/open-webui/open-webui/commit/3b2b89205e4fff7e4546ca4034e0293e2d1bd3f3), [#32403](https://github.com/open-webui/open-webui/issues/32403)
- 📄 **Files from saved temporary chats.** After a temporary chat is saved, the model no longer tries to open a file attached in it and gets "File not found", since such a file was never stored and its text is already in the prompt. [Commit](https://github.com/open-webui/open-webui/commit/97a66ef73e84f9ebb4aa4324b8eac9aadeaca22e), [#32351](https://github.com/open-webui/open-webui/issues/32351)
- 🔑 **SSO sign in for SCIM users.** Users created through SCIM can sign in with SSO again, where they got "401 Invalid authentication request" since 0.12.0 because no sign-in record was created for them; a database migration adds the missing record for existing accounts without giving them a usable password, SCIM email changes now also update the sign-in email and deleting a user through SCIM removes the sign-in record as well. [Commit](https://github.com/open-webui/open-webui/commit/00f12c0e47fb47b1318a20e97bacc753e769612b), [#32347](https://github.com/open-webui/open-webui/issues/32347)
- ✂️ **Deleting a message mid-chat.** Deleting a message in the middle of a chat no longer makes the model forget every earlier message while the chat still shows them. [#32332](https://github.com/open-webui/open-webui/pull/32332), [Commit](https://github.com/open-webui/open-webui/commit/29289f5ba67d39255837a6385e5394192733a12e), [#32331](https://github.com/open-webui/open-webui/issues/32331)
- 🪧 **Ask and Explain popup cut off.** The Ask and Explain popup is no longer cut off when you select text near the end of a reply and stays next to the selection while you scroll. [#32330](https://github.com/open-webui/open-webui/pull/32330), [Commit](https://github.com/open-webui/open-webui/commit/7129cc1d843b35516428c61af413b3815aee2e3b), [#32329](https://github.com/open-webui/open-webui/issues/32329)
- 🌬️ **Background noise in Realtime calls.** Wind or background noise no longer cuts off the model mid-sentence in Realtime voice calls, since its spoken reply now only pauses until speech is confirmed and resumes after noise, and noise that is not understood as speech is also removed from the voice model's conversation so it no longer confuses later answers. [Commit](https://github.com/open-webui/open-webui/commit/a70e96525d88f9cb362b6451e5451c9b72618a92), [#32248](https://github.com/open-webui/open-webui/issues/32248), [#32250](https://github.com/open-webui/open-webui/issues/32250)
- 🧠 **Memory in automations.** Automations now get the memory tools when the user has memory turned on, following the user's setting, the default interface settings or the memory setting for everyone, where they were left out. [Commit](https://github.com/open-webui/open-webui/commit/a70e96525d88f9cb362b6451e5451c9b72618a92), [#32337](https://github.com/open-webui/open-webui/issues/32337)
- 🗜️ **Compaction during long tool runs.** Context compaction now also runs during a long series of tool calls based on the token usage the provider reports, and the compacted summary is kept with the reply so the next message continues from it, where long tool runs could hit the model's context limit. [Commit](https://github.com/open-webui/open-webui/commit/bcf540a98935566537b05911a6bb4ace03c5648d), [#32306](https://github.com/open-webui/open-webui/issues/32306)
### Changed
- ⚠️ **Database Migrations**: This release includes database schema changes; we strongly recommend backing up your database and all associated data before upgrading in production environments. If you are running a multi-worker, multi-server, or load-balanced deployment, all instances must be updated simultaneously, rolling updates are not supported and will cause application failures due to schema incompatibility.
- 💡 **Follow-ups as next messages.** The default follow-up prompt now suggests the messages you would most likely send next, in your own tone and latest language, as requests or questions, without repeating finished work, with the strongest suggestion first, and reads only the chat's first message and the last four, each cut to 1,000 characters, so long chats stay quick, where it asked for questions only over the last six messages; instances with a custom follow-up prompt are not affected. [Commit](https://github.com/open-webui/open-webui/commit/7ae09967459151433be79c2e98f096c171fc5b18), [Commit](https://github.com/open-webui/open-webui/commit/53a8f131f305a3beb87376d5dbc05889883fb950)
- 📖 **Large skills load as a preview.** With the Skills builtin tools on, a skill whose SKILL.md is longer than 20,000 characters now reaches the model as a 5,000 character opening preview, and the model reads on from where the preview ends with read_skill_file, which now returns up to 20,000 characters per call instead of 100,000, and the new grep_skill_files tool lets the model search a skill's files for a word or pattern, keeping long skills from filling the context. [Commit](https://github.com/open-webui/open-webui/commit/200b9514917a070c88d112e3c0aba9df3322c5e1), [Commit](https://github.com/open-webui/open-webui/commit/d34f73066d837428ab198e14f285c09ad1ce2450), [Commit](https://github.com/open-webui/open-webui/commit/c314239558cdb47e4d1eaddf011bb4178e0742c2)
## [0.12.0] - 2026-10-10
### Added
- ☎️ **Realtime voice calls.** Administrators can now switch Call mode in the Voice calls section of Audio settings from Standard to Realtime, so Voice mode talks through an OpenAI Realtime voice model (gpt-realtime-2.1-mini with the Marin voice by default) that handles small talk itself and hands real questions and tasks to the chat's selected model, with its conversation history and tools, before speaking the answer while the full reply appears in the chat. Approvals and questions from tools still have to be answered in the chat, calls need the Allow Call permission and end after an hour, models can set their own Realtime Voice in the model editor, and the settings can also be given with the "AUDIO_REALTIME_ENABLED", "AUDIO_REALTIME_OPENAI_API_BASE_URL", "AUDIO_REALTIME_OPENAI_API_KEY", "AUDIO_REALTIME_MODEL", "AUDIO_REALTIME_VOICE", "AUDIO_REALTIME_TRANSCRIPTION_MODEL" and "REALTIME_CALL_PROMPT_TEMPLATE" environment variables. [Commit](https://github.com/open-webui/open-webui/commit/093bfce2b6bd128731bae8075110898ae22a76e9), [Commit](https://github.com/open-webui/open-webui/commit/fa4c7fe5e8b5a26bcb9e4597d311a6b16aaf796a), [#5894](https://github.com/open-webui/open-webui/issues/5894)
- 🕺 **Animated avatars in Realtime voice calls.** A model can now show a 3D character instead of the voice orb during Realtime calls: in the model editor, upload a rigged VRM avatar of up to 25 MiB, preview it, optionally give it VRMA clips of up to 10 MiB for its idle, listening and speaking states, and add up to 16 named gestures with a description, which the voice model plays on its own when the conversation fits or when asked, such as a wave or a clap, while the avatar's mouth follows the spoken answer. [Commit](https://github.com/open-webui/open-webui/commit/7401f41630e53999afd6c4efba06816e7c05cdb7), [Commit](https://github.com/open-webui/open-webui/commit/e56f85f43260ed528bdf20a8afa635a963b84b78)
- 🔏 **Two-factor sign-in.** Administrators can require an authenticator app for every user under Admin Settings > Authentication, or with "ENABLE_MFA", so users set one up from a QR code on their next sign-in, get ten single-use recovery codes, and can later replace their authenticator or create new recovery codes in their account settings; OAuth and trusted-header sign-ins can be let through without it with "MFA_ALLOW_OAUTH_BYPASS" and "MFA_ALLOW_TRUSTED_HEADER_BYPASS", and the "open-webui mfa reset" command gives a user who lost their authenticator a one-time recovery token. [Commit](https://github.com/open-webui/open-webui/commit/24e30d1cbdaab624dfe20f479f805e6791cf0226)
- 👫 **Replying in shared chats.** When sharing a chat with people or groups, or sharing a folder, the new Sharing mode setting can be switched from Clone only to Allow replies, so everyone it is shared with can keep writing in the same conversation instead of cloning it. Each message shows the name and profile picture of who sent it, with other people's messages on the left in bubble view, replies stream live to everyone with the chat open, a line above the input shows who is typing, people can only edit, rate, regenerate or stop their own messages, and the owner's own chat settings, title and tags stay untouched by others. [Commit](https://github.com/open-webui/open-webui/commit/de73bb830aeb150bc5bb4707566d3969f70408b0), [Commit](https://github.com/open-webui/open-webui/commit/6cfd6987e5b220040c2e476105779dcc10d3d14b), [Commit](https://github.com/open-webui/open-webui/commit/1e9dd6e330548c20a1d4054206c3e1b77fb08a5a)
- 🕹️ **Model controls.** Anyone who can edit a model can now add named controls to it in the model editor, such as a Thinking control whose Low, Medium and High options each set the reasoning effort, where every option can carry its own custom parameters and one can be marked as the default, shown either as a menu or as a slider that runs from the first option to the last; people with the Allow Chat Controls and Allow Chat Params permissions then pick an option from a knobs button next to the model selector in the chat input, their choice is remembered for that model, and the names of controls and options can be translated for each language in the editor. Controls cannot be set on pipe, direct connection or arena models and are not applied to automation runs. [Commit](https://github.com/open-webui/open-webui/commit/106aae70e9ad1a3356762779d72673b7dc1293a7), [Commit](https://github.com/open-webui/open-webui/commit/e9cca320b40025a892436a9791902af85a426ad3), [Commit](https://github.com/open-webui/open-webui/commit/efd94fde63882818d451370a2b39edb93ba6a8f5), [Commit](https://github.com/open-webui/open-webui/commit/3e0e760ce30cf2b5f177b29478c0a8ec85f1d5a8), [Commit](https://github.com/open-webui/open-webui/commit/79d376a1f37436065d78e25be9bc342fe0724801), [#31972](https://github.com/open-webui/open-webui/issues/31972)
- 🧠 **Compaction during long tool runs.** With context compaction on and native function calling, a reply that runs many tool calls in a row is now compacted between tool rounds once its context passes the token threshold, keeping each tool call together with its results and giving the summary the tool names and arguments, where compaction only ran before the reply started and a long tool run could grow past the model's context. [Commit](https://github.com/open-webui/open-webui/commit/67cfa917c12004d4e662d0f8879779b75ad6629a), [#27599](https://github.com/open-webui/open-webui/issues/27599)
- 🧳 **Multi-file skills with version history.** Workspace skills can now hold supporting files such as scripts, references and templates next to SKILL.md, managed in a file tree in the skill editor, and every save keeps a version you can page through, compare with the current one, make the live version again or delete. Skills import from a ZIP folder, a JSON file or a single SKILL.md with a preview first, and export as ZIP or JSON. Models can read a skill's supporting files and create skills or edit their files on their own, so for anyone allowed to create workspace skills "/skills:create" now saves the new skill straight to the workspace without needing a terminal. [Commit](https://github.com/open-webui/open-webui/commit/9bbb95048b841d5f6a1fedf606ae93ec28969521), [Commit](https://github.com/open-webui/open-webui/commit/178de36662909b072864733aad5e074f2bb5d01e), [Commit](https://github.com/open-webui/open-webui/commit/24ee1cb168a1b2071195c0331aa186a1d62bc197)
- 🗄️ **Knowledge bases as a file browser.** A knowledge base now opens with its folders and files on the left and the selected file next to them, where you can switch between a preview of the original file and the text the model searches, edit that text in place or download the file, with search, filters and sorting above the list and a question before unsaved edits are dropped. [Commit](https://github.com/open-webui/open-webui/commit/33dd7dd224d4fc4031185a4dd589242681f24af7), [Commit](https://github.com/open-webui/open-webui/commit/9181381b0a67674aa37bc9f1f8dc45c8fe85fdd9), [Commit](https://github.com/open-webui/open-webui/commit/b130fec73c90a57e121b5e3759a03fee053c9f93), [Commit](https://github.com/open-webui/open-webui/commit/96ea26d09f14bb9d26864af3b0a6d382cae748a9), [Commit](https://github.com/open-webui/open-webui/commit/550311b21822d50ef9c6c63069408b35287b4607)
- 🎛️ **Redesigned model editor.** The model editor has a new layout: the background image now fills a banner at the top with the model's picture, name and ID set over it and buttons to add, change or remove it on hover, a long system prompt opens folded to a short preview with Show more, and Capabilities, Default Features, Builtin Tools, Knowledge, Tools, Skills, Filters, Actions, Prompts, Voice and Terminal each fold into one row that summarizes what is set, such as "Web Search, Image Generation +2", "3 of 9 enabled" or "Custom · 4", and opens into switches with descriptions or a searchable picker with Enable all, Clear and a Manage link. Advanced Params shows how many parameters are changed, every setting name explains itself in a tooltip, Save & Update with the change note stays at the bottom of the editor, default features now sit with Capabilities and only list the capabilities that are on, default filters are switched on per filter inside the Filters picker, Knowledge has its own picker with Upload Files, empty lists point to the workspace where items are added, and the admin Model Defaults panel uses the same rows. [Commit](https://github.com/open-webui/open-webui/commit/d4879a98bc99e6a80ef13df3772ee1529d657509), [Commit](https://github.com/open-webui/open-webui/commit/255f88eff0a0c94e7a99bd95a7fc185aa398ec59), [Commit](https://github.com/open-webui/open-webui/commit/8d0ff76f2b8e21ae719a4b9338779b92b8778d98), [Commit](https://github.com/open-webui/open-webui/commit/44b71f87ab0433db9f9376d685653ff516c4e7e5), [Commit](https://github.com/open-webui/open-webui/commit/d54aa9836eb7cf23e50b6f9ecd35316f09874f1b), [Commit](https://github.com/open-webui/open-webui/commit/558fe57ca00ac1f74d9a565e353acc43379644bf), [Commit](https://github.com/open-webui/open-webui/commit/90496c28aed961d154143cf22b132caa6b8a52c5), [Commit](https://github.com/open-webui/open-webui/commit/76ad6f97c52db1e3b02926132fd6ea9c1176f40a)
- ⏮️ **Model version history.** Every save of a workspace model now keeps a version you can page through in the model editor, make the live version again or delete, and a version whose knowledge, tools, functions or terminal are gone or no longer yours to use is refused instead of being switched on half working. [Commit](https://github.com/open-webui/open-webui/commit/16849284ffbf7a7cd5deac179799ce4d5716848b), [Commit](https://github.com/open-webui/open-webui/commit/27b48b70df2e01af0db4d4668ea3aa29d9f4cd6f)
- 🔙 **Tool and function version history.** Every save of a tool or function now keeps a version you can page through in its editor, make the live version again or delete, so a change can be tried and rolled back without creating a copy and setting it up again. [#29496](https://github.com/open-webui/open-webui/issues/29496), [Commit](https://github.com/open-webui/open-webui/commit/e6476928eeb02def4a0cfc3ed1eb57b1a3630ae3)
- 🆚 **Compare prompt versions.** The prompt editor's history now compares any earlier version with the current one in a diff view and can start editing from an old version as a new one, and asks before unsaved changes are dropped. [Commit](https://github.com/open-webui/open-webui/commit/37138282fbd21bdff642723ad0b6f054b2241a19), [Commit](https://github.com/open-webui/open-webui/commit/33dd7dd224d4fc4031185a4dd589242681f24af7)
- 🗜️ **Tool Search for large tool sets.** Administrators can now turn on Tool Search, marked experimental, in Admin Settings > Interface, so tools with long definitions are left out of the request and only listed by name and a short description, and the model looks up the full definition with a `search_tools` tool when it needs one, which keeps the prompt small and the prompt cache intact when many tools or MCP servers are enabled; the Deferral Threshold sets the definition length in characters above which a tool is held back, Always Loaded Tools takes names or patterns such as github\_\* that are always sent, and Defer Built-in Tools decides whether built-in tools are held back too. It applies with native function calling and can be set with "ENABLE_TOOL_SEARCH", "TOOL_SEARCH_DEFER_THRESHOLD", "TOOL_SEARCH_ALWAYS_LOADED" and "TOOL_SEARCH_DEFER_BUILTIN_TOOLS". [Commit](https://github.com/open-webui/open-webui/commit/088830cf82f6ac430653079668fc2c66d830f164)
- 🌳 **Nested groups.** Administrators can now give a group a parent group, so members of the inner group also get everything shared with the parent groups above it and their permissions, the group editor shows the inherited permissions and lists direct and inherited members separately, deleting a group moves its subgroups up to its parent, and open browsers pick up changed group access right away without reloading. [Commit](https://github.com/open-webui/open-webui/commit/d4c561d9f22b6fe069c1a4e49f83d05fa6839991)
- 🥇 **Default models per group.** Administrators can now set default models for a group in its settings, which its members get for new chats instead of the global default, with the most deeply nested group winning when several apply and a user's own default models still taking priority. [Commit](https://github.com/open-webui/open-webui/commit/398c37c73cee80e5b1f3e2ceb05403744aab71be)
- 🔱 **Fork shared chats.** Shared chat links and chats you can only read, such as ones in a folder shared with you, now have a fork action on each finished reply, which makes your own copy of the conversation up to that message; a fork from a share link holds only what was shared, and a fork of someone else's chat leaves out their folder, pin and chat variables. [Commit](https://github.com/open-webui/open-webui/commit/5de5bf235b1dc7a6f139ef5d66d4339c6de973af), [Commit](https://github.com/open-webui/open-webui/commit/f0233e1e3a1c19b1771f67721b6ebc59db4a36aa), [Commit](https://github.com/open-webui/open-webui/commit/930f8c3640aa3c8bd7eee2becee85f93a668cc29)
- 🪝 **Import skills from a URL.** Administrators can now pick Import from URL in the Skills workspace import menu to load skills from a GitHub repository, a GitHub folder or SKILL.md link, or a direct link to a ZIP, JSON or Markdown skill file, which open in the import preview to pick from; downloads are checked against internal addresses on every redirect and capped at 200 MiB. [Commit](https://github.com/open-webui/open-webui/commit/8d0ff76f2b8e21ae719a4b9338779b92b8778d98), [Commit](https://github.com/open-webui/open-webui/commit/d54aa9836eb7cf23e50b6f9ecd35316f09874f1b)
- 🛍️ **Skills on the community site.** With Community Sharing on, the Skills workspace now has a Discover a skill link to the skills on openwebui.com, the skill menu has Share for people allowed to export skills, which sends the skill with all its files to openwebui.com, and a skill opened from openwebui.com loads straight into the new skill editor for people allowed to import skills. [Commit](https://github.com/open-webui/open-webui/commit/a3cd6158bb188837dcbfbc11ade56d1a1f748db2), [Commit](https://github.com/open-webui/open-webui/commit/e86c82406da3438e269955221f78757132e30727)
- 🔐 **Access from the list.** The menu of each item in the Models, Knowledge, Prompts, Skills, Tools and Notes lists now has an Access entry, so who can use an item can be changed without opening it. [Commit](https://github.com/open-webui/open-webui/commit/b3ce7de8d3ab59f99f0006775dc3158ea079deda), [Commit](https://github.com/open-webui/open-webui/commit/d4f01d7344fdec082c956b7b0c9c650a2e63485b), [Commit](https://github.com/open-webui/open-webui/commit/784b72f19ef2ebf894480ab5e303bc995d3d4b59)
- ▪️ **Livelier typing cursor while a reply streams.** The cursor shown at the end of a streaming reply now pulses faster and fades further, so an ongoing reply is easier to spot. [Commit](https://github.com/open-webui/open-webui/commit/382295d94153d617cbc0701e812471e3c9e8ed99)
- 👻 **Unavailable models in the admin Models list.** The Models list in Admin Settings now opens on a new Available view that leaves out base models no longer offered by any connection, and an Unavailable view lists those leftovers, while each model's menu now offers Delete for a leftover or workspace model and Reset for an available base model to bring its saved settings back to the defaults. [Commit](https://github.com/open-webui/open-webui/commit/461cc7aff9066a2e30f12fd8d67341d48a75befe), [Commit](https://github.com/open-webui/open-webui/commit/ffce74fd292489653f9d05d914dfb120e90abcbe), [#31389](https://github.com/open-webui/open-webui/issues/31389), [#32048](https://github.com/open-webui/open-webui/issues/32048), [#26812](https://github.com/open-webui/open-webui/issues/26812)
- 📡 **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), [#28173](https://github.com/open-webui/open-webui/issues/28173)
- 📑 **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.** JSON is now read and written with orjson by default, 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)
- 📬 **Message queue in channels.** Messages sent in a channel or thread while an earlier one is still sending or a file is still uploading now wait in a queue above the message box, where each can be sent right away, edited or removed, and they go out in order once their files are ready, where a message sent during an upload went out with a broken attachment. [Commit](https://github.com/open-webui/open-webui/commit/8a4547104c4f88c02b607ad7b6849dc22f377c28), [#31587](https://github.com/open-webui/open-webui/issues/31587)
- 📄 **Copy button in the model JSON Preview.** The JSON Preview in the model editor now has a Copy button that copies the model's JSON to the clipboard exactly as the preview shows it, including edits that have not been saved yet. [Commit](https://github.com/open-webui/open-webui/commit/fe2c694915bf7915f7555620dd4bdd8c7f3c5f41), [Commit](https://github.com/open-webui/open-webui/commit/106aae70e9ad1a3356762779d72673b7dc1293a7), [#31955](https://github.com/open-webui/open-webui/issues/31955)
- 💡 **Model ID suggestions for connections.** After verifying a connection in the add or edit connection dialog, the model ID field suggests the models the server reports, leaving out ones already added. [Commit](https://github.com/open-webui/open-webui/commit/fd0749fba106db4809a2c72fc42538d249b8b519)
- 🆔 **MCP Connection ID filled in from the name.** When adding an MCP tool server, the ID field is now labeled Connection ID and filled in from the server name, so it no longer has to be typed before saving or registering an OAuth client, and importing a connection keeps its ID. [Commit](https://github.com/open-webui/open-webui/commit/079647f1425ef80be5a330bf1b2c4158d66c8340)
- 🔩 **MCP tools listed in the chat tools dialog.** Expanding an MCP tool server in the tools dialog of the chat input now loads and lists its tools with their descriptions and a tool count, offers Reconnect when the server needs you to sign in again, and only shows the tool servers selected for the chat. [Commit](https://github.com/open-webui/open-webui/commit/fb741ebcd2daed626405f9458c192e5161bce4c0)
- 🪣 **S3 file storage on the slim image.** The slim image can now keep files in an S3 bucket with "STORAGE_PROVIDER" set to s3, where it only supported local storage; Google Cloud and Azure storage still need the standard image. [Commit](https://github.com/open-webui/open-webui/commit/425da8b6cc14144895c6eba19a70cf5c8881d3cf)
- 🚪 **Sign out all devices for a user.** Administrators can now sign a user out of every device from the user edit dialog, while the user's API keys keep working. [Commit](https://github.com/open-webui/open-webui/commit/24e30d1cbdaab624dfe20f479f805e6791cf0226)
- 📻 **OpenAI Realtime models for text-to-speech.** Administrators can now pick OpenAI Realtime as the text-to-speech engine in Audio settings, which uses the gpt-realtime-2.1 or gpt-realtime-2.1-mini model with voices such as Marin and Cedar only to turn text into a finished audio clip rather than for a live voice conversation, and the instructions that keep it reading text aloud word for word can be replaced under Prompt Template or with the "REALTIME_TTS_PROMPT_TEMPLATE" environment variable. [Commit](https://github.com/open-webui/open-webui/commit/b8738494cfab53f7e3f3849e8856c26263bd45fa), [Commit](https://github.com/open-webui/open-webui/commit/b0bcd945199c3b6884ef6526fb4edd6636cd06ba)
- 🎒 **Skills built-in tool per model.** The Builtin Tools section of a model now has a Skills switch, on by default, so a model can be kept from finding and loading skills on its own while skills a user picks for a chat still apply. [Commit](https://github.com/open-webui/open-webui/commit/55e1c44c946828ab92c94934c12c4fc8aa7568fd)
- 🪞 **Cloning chats you can only read.** A chat you open read only, such as one in a folder shared with you, now shows a Clone Chat button that copies it into your own chats from the message you are viewing, for anyone allowed to import chats. [Commit](https://github.com/open-webui/open-webui/commit/c6dd9a451abef12e93e19624a64cfb8a9a1f6465)
- 🏁 **Finish reason for outlet filters.** Outlet filters now get the reason the model stopped, such as reaching the token limit or stopping to call a tool, on the finished reply of OpenAI-compatible and Ollama models, so they no longer have to read every streamed chunk to find out, and Ollama replies cut off by the token limit now report length instead of stop. [#32079](https://github.com/open-webui/open-webui/pull/32079)
- 🔖 **Build shown next to the version.** The version in Settings shows "dev" and the commit for development builds and the commit for other non-release builds, and update checks and the update notification now only run on release builds. [Commit](https://github.com/open-webui/open-webui/commit/51f0e01258b92c77952d4534bb8ce8c618b2700c)
- 📂 **Folder default model set in the folder settings.** A folder's default model for new chats is now chosen in the folder's settings, and switching the model inside a chat in that folder no longer changes the folder's default. [Commit](https://github.com/open-webui/open-webui/commit/a3a2e42ee00a70d6c646735345e6b771bcd2a70d), [Commit](https://github.com/open-webui/open-webui/commit/8f4f29d8345196e3221c85ecff0411fbd7e371af)
- 🏷️ **Workspace model list links.** In the workspace model list, clicking a model's name now opens its editor and a small arrow next to it opens the model in a new chat, the enable switch goes back if saving fails, and deleting with Shift held now asks for confirmation. [Commit](https://github.com/open-webui/open-webui/commit/5bb1c470802c7df9a48cc0ca45c1886c294d6e6e)
- 🪫 **Unreachable MCP servers shown as a status.** When an MCP server attached to a chat cannot be reached, the reply now shows a "Failed to connect to MCP server" status line and carries on without that server's tools, instead of marking the reply with an error. [Commit](https://github.com/open-webui/open-webui/commit/6defd4a9479ad82d4736df6c382d38ba54650dd1)
- 🐚 **Prompt cache friendly terminal settings.** Open Terminal connections now have a Working Directory Context switch to leave the current folder out of the tool instructions, and a User Shell Tools option set to Always Include keeps the tools for your shell in the request while the shell is closed, so opening folders, reloading the page or losing the shell no longer change the start of the request and break the provider's prompt cache. [Commit](https://github.com/open-webui/open-webui/commit/a20b622ba808d46b28843e5d4ec0b996369f6a8b), [#32026](https://github.com/open-webui/open-webui/issues/32026), [#31590](https://github.com/open-webui/open-webui/issues/31590)
- 🌙 **Local time and last seen on profile cards.** The profile card that opens on a person's name in channels or on an @mention now shows their local time and when they were last active, and it reloads each time it opens so the status stays current. [Commit](https://github.com/open-webui/open-webui/commit/538f9c9090dab742b4d8e3a1b3a058956ea8f39b)
- 🛸 **Exa as the web loader.** Administrators can now pick Exa as the Web Loader Engine in Web Search settings, so pages from web search and attached links are fetched through Exa, reusing the Exa API key when Exa is also the search engine. [Commit](https://github.com/open-webui/open-webui/commit/09dcb6088720d6df8dbd35c0e40b5c7dbc8f6c1b)
- 💡 **Custom parameter suggestions.** Custom parameter fields now suggest common parameter names such as reasoning_effort, service_tier, num_ctx or response_format as you type, along with typical values for many of them, and a new row starts empty instead of with a placeholder name. [Commit](https://github.com/open-webui/open-webui/commit/10fdca6e36fd616d611cadbf95aee956eb823ca2)
- 📇 **Faster knowledge pages on PostgreSQL.** Opening a knowledge base on PostgreSQL no longer scans the whole file table to find files still being processed, which with many large files could take seconds per page load and slow the database for everyone; a new index covers that lookup and is created by a migration. [Commit](https://github.com/open-webui/open-webui/commit/e1bbc859f19aa5c88e9ed857a32303b101d2119b), [#30003](https://github.com/open-webui/open-webui/issues/30003)
- 🔄 **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, Simplified Chinese, Hindi, Japanese, Romanian, Czech, Slovenian, Croatian, Slovak, Dutch, Hungarian, Tamil, Spanish, Vietnamese, Norwegian Bokmål, Hebrew, Greek, Lithuanian, Korean, Canadian French, Swedish, Portuguese (Portugal), Brazilian Portuguese, Thai, Estonian, Russian, Bosnian, Ukrainian, Basque, Bulgarian, Azerbaijani, Danish, Irish, Finnish, Bengali, Latvian, Traditional Chinese, Polish, Georgian and Galician 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, every field whose name ends in "password" is now masked in both logged requests and logged responses, including admin settings such as YaCy, Jupyter and the LDAP Application DN Password, and passwords containing a double quote, where only fields named exactly "password" in requests were masked and only up to the first quote. [#31622](https://github.com/open-webui/open-webui/pull/31622), [#31659](https://github.com/open-webui/open-webui/pull/31659)
- 👁️ **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)
- 📞 **Voice mode permission applies to call links.** Opening a chat with "?call=true" in the URL now respects the "Allow Call" permission and the same checks as the Voice mode button, so it no longer starts a voice call for users without that permission, with several models selected or with the Web API speech-to-text engine. [#31826](https://github.com/open-webui/open-webui/pull/31826), [#31825](https://github.com/open-webui/open-webui/issues/31825)
- 🔒 **Password changes sign out everywhere without Redis.** Changing a password, by the user or an administrator, now signs that account out on every device even on installations without Redis, where existing sessions stayed valid until they expired. [Commit](https://github.com/open-webui/open-webui/commit/24e30d1cbdaab624dfe20f479f805e6791cf0226)
- ⛓️ **Live connections end with the session.** A browser's live connection is now checked every 30 seconds and closed once its sign-in has been revoked or has expired, where it kept receiving updates. [Commit](https://github.com/open-webui/open-webui/commit/24e30d1cbdaab624dfe20f479f805e6791cf0226)
- 🤐 **Sign-in requests kept out of the audit log.** With request auditing on, the bodies of authentication and OAuth requests and their responses, such as sign-in, password changes and API key creation, are no longer written to the audit log. [Commit](https://github.com/open-webui/open-webui/commit/24e30d1cbdaab624dfe20f479f805e6791cf0226)
- 🛂 **Forwarded headers trust for open-webui serve.** Starting Open WebUI with "open-webui serve" or "open-webui dev" now honors "FORWARDED_ALLOW_IPS", where it trusted forwarded headers from every connection regardless of the setting. [Commit](https://github.com/open-webui/open-webui/commit/24e30d1cbdaab624dfe20f479f805e6791cf0226)
- 🤖 **Automation and sub-agent access ends with the account's sessions.** Signing an account out of every device, for example by changing its password, now also cuts off its running automations and sub-agents, whose access stayed valid for up to an hour. [Commit](https://github.com/open-webui/open-webui/commit/24e30d1cbdaab624dfe20f479f805e6791cf0226)
- 🪪 **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)
- 🤝 **Sharing a shared folder.** Only a folder's owner or an administrator can now change who a folder is shared with, where anyone with write access to it could also share it with other people or groups. [Commit](https://github.com/open-webui/open-webui/commit/8145774e329c7174437944b1dd361fef9a50639a)
- 🕵️ **Shared chats keep the owner's settings private.** Opening a chat shared with you, by link or through a shared folder, no longer hands you the owner's chat settings such as the system prompt and other parameters, chosen tools, filters and tool servers, filled-in chat variables or message details, and cloning a shared chat no longer copies the owner's chat variables or files the clone under the owner's folder. [Commit](https://github.com/open-webui/open-webui/commit/de73bb830aeb150bc5bb4707566d3969f70408b0)
- 🛃 **Administrators read other users' chats without writing to them.** With "ENABLE_ADMIN_CHAT_ACCESS" on, administrators can now only read other users' chats, where they could also send messages into them, stop their replies or answer their tool approvals through direct API requests even though the chat page only showed them read only. [Commit](https://github.com/open-webui/open-webui/commit/6cfd6987e5b220040c2e476105779dcc10d3d14b)
- 🗒️ **Notes switch applies to the notes API.** Turning Notes off with "ENABLE_NOTES" or in Admin Settings now also refuses every notes API request, where it only hid notes in the interface and anyone with the notes permission could still create, read, change and delete notes through the API. [Commit](https://github.com/open-webui/open-webui/commit/83acd08697d2985e3da03b20e3c8119c958d32d7), [#31414](https://github.com/open-webui/open-webui/issues/31414)
- 🎣 **Links no longer act on your behalf without asking.** Opening Open WebUI from a link, including from another website or a hidden frame, can no longer act in your name unseen: a prompt given with "?q=" is only filled into the message box instead of being sent, loading web pages or videos with "load-url" or "youtube" and starting a voice call with "call=true" or "voice=true" now ask for confirmation first, and links that create a note with a title and content now ask before creating it. [Commit](https://github.com/open-webui/open-webui/commit/91853205e817b0234fb3038f06cddf669ec7d335), [Commit](https://github.com/open-webui/open-webui/commit/0ffd86967fd2e5a537f69934b13c899b7f5c6f32)
- 🕶️ **Enforced temporary chats hold on every route.** Users with Enforce Temporary Chat can no longer save chats by calling the chat API directly or through import, clone and fork, where only the web interface stopped them; admins are not affected and existing chats still open. [Commit](https://github.com/open-webui/open-webui/commit/d04f78b3bfbeca383d78830391faa9639554fae4), [#31633](https://github.com/open-webui/open-webui/issues/31633)
- 👑 **First admin keeps its protection.** On Postgres, an account created in the same second as the first admin, as happens when a script sets up an instance, can no longer be taken for the primary admin, which let other admins demote or delete the real first admin and made that account impossible to edit, lock or delete. [#32157](https://github.com/open-webui/open-webui/pull/32157)
- ✋ **Tool approval in temporary chats.** With tool approval set to ask, tools called in a temporary chat now wait for an Allow or Deny dialog, where they ran without asking although the menu showed approval as on. [Commit](https://github.com/open-webui/open-webui/commit/82f142d376f8b2c83153607fd18ecff467e10c30), [#29249](https://github.com/open-webui/open-webui/issues/29249)
- 🪣 **Limits for collaborative note editing.** Live collaborative editing now keeps a size budget per document and a limit on open documents per connection and stores only well-formed updates, so a client can no longer make the server hold unbounded editing data. [#31603](https://github.com/open-webui/open-webui/pull/31603)
- 🗣️ **Interface language detection.** Browsers reporting a bare or regional language code, such as German, Dutch or Polish in Firefox and 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)
- 🔑 **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)
- 🧱 **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)
- ⏰ **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](