diff --git a/CHANGELOG.md b/CHANGELOG.md index c7c996a645..57a77a171c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - ๐Ÿท๏ธ **Custom file metadata.** Metadata attached to an uploaded file now travels with the pieces that file is split into and arrives with the retrieved sources, the oversized and internal fields left out. [#29499](https://github.com/open-webui/open-webui/pull/29499), [#29486](https://github.com/open-webui/open-webui/issues/29486), [Commit](https://github.com/open-webui/open-webui/commit/894655f66b9563890e63c76090ddecc90a311eb2), [#29502](https://github.com/open-webui/open-webui/pull/29502) - ๐Ÿ—‘๏ธ **Quick delete for notes and automations.** Holding Shift over a note in the list or grid, or over a row on the automations page, turns its trailing controls into a delete button, removing the entry in one click rather than the three the menu and its confirmation ask for. [#29635](https://github.com/open-webui/open-webui/pull/29635), [#29633](https://github.com/open-webui/open-webui/issues/29633), [#29640](https://github.com/open-webui/open-webui/pull/29640), [#29637](https://github.com/open-webui/open-webui/issues/29637) - โšก **Searching without holding up the server.** Searching the text of chats and knowledge now runs beside the rest of the server rather than in front of it, so a long search no longer keeps other requests waiting. [#29621](https://github.com/open-webui/open-webui/pull/29621) -- ๐Ÿ”„ **General improvements.** Various improvements were implemented across the application to enhance performance, stability, and security. +- ๐Ÿ”„ **General improvements.** Various improvements were implemented across the application to enhance performance, stability, and security. [Commit](https://github.com/open-webui/open-webui/commit/f1c803d36bae9d429eb630ad26853c9d939262b5) - ๐ŸŒ **Translation updates.** Translations for Traditional Chinese, Korean, Finnish, Russian, Ukrainian, German, Spanish, and Portuguese (Brazil) were enhanced and expanded. ### Fixed @@ -51,23 +51,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- ๐Ÿชถ **Slim runs with nothing configured.** An instance built slim starts and holds a conversation out of the box, the local models and the heavier machinery around them left out of the image, and each of the features that leaned on them now asks for a service of its own. [Commit](https://github.com/open-webui/open-webui/commit/cb942bb94c8dc7941336088fb3392e2398ff56c1) -- ๐Ÿ—„๏ธ **Slim keeps its data in SQLite or PostgreSQL.** A slim instance refuses to start against another database engine, or with AWS RDS IAM logins switched on, both of which take the standard image; SQLite, what it uses out of the box, needs nothing changed. [Commit](https://github.com/open-webui/open-webui/commit/d27aa72ab4a7b5632b4ad49e8467081ad3d7ebb4) -- ๐Ÿ“ **Slim keeps files on its own disk.** A slim instance refuses to start where file storage is pointed at an S3, Google Cloud or Azure bucket; local storage, what it uses out of the box, needs nothing changed. [Commit](https://github.com/open-webui/open-webui/commit/d27aa72ab4a7b5632b4ad49e8467081ad3d7ebb4) -- ๐Ÿงฎ **Slim searches through pgvector.** Knowledge search in a slim instance runs on PostgreSQL with pgvector; pointed at another vector store, it reports itself unavailable the first time something searches rather than at startup. [Commit](https://github.com/open-webui/open-webui/commit/cb942bb94c8dc7941336088fb3392e2398ff56c1), [Commit](https://github.com/open-webui/open-webui/commit/d27aa72ab4a7b5632b4ad49e8467081ad3d7ebb4) -- ๐Ÿง  **Slim asks for an embedding service.** A slim instance carries no embedding or reranking model of its own: knowledge needs one of the external embedding engines, reranking needs an external reranker or falls back to plain cosine scoring, and documents can no longer be split along a downloaded tokenizer. [Commit](https://github.com/open-webui/open-webui/commit/cb942bb94c8dc7941336088fb3392e2398ff56c1) -- ๐Ÿ“ƒ **Slim reads plain text by itself.** A slim instance reads text, Markdown, CSV, HTML and XML files as they are; a PDF, a Word file or a deck now takes one of the external extraction services. [Commit](https://github.com/open-webui/open-webui/commit/cb942bb94c8dc7941336088fb3392e2398ff56c1) -- ๐ŸŽ™๏ธ **Slim asks for a speech service.** A slim instance carries neither local Whisper nor local voices, so speech to text and text to speech each take an external engine, and the settings refuse a switch back to the local ones. [Commit](https://github.com/open-webui/open-webui/commit/cb942bb94c8dc7941336088fb3392e2398ff56c1) -- ๐Ÿ•ธ๏ธ **Slim reads pages without a browser.** A slim instance fetching a web page does it over plain HTTP or through an external loader; the built-in browser it used to drive is not carried. [Commit](https://github.com/open-webui/open-webui/commit/cb942bb94c8dc7941336088fb3392e2398ff56c1), [Commit](https://github.com/open-webui/open-webui/commit/d27aa72ab4a7b5632b4ad49e8467081ad3d7ebb4) -- ๐ŸงŠ **Slim cannot be built with the graphics card or Ollama options.** Building the slim image together with either is refused outright rather than producing an image carrying what slim leaves out. [Commit](https://github.com/open-webui/open-webui/commit/cb942bb94c8dc7941336088fb3392e2398ff56c1) -- ๐Ÿ”Ž **Slim leaves out DDGS.** The one web search engine that needs no key of its own is not carried in a slim build: it is greyed out in the admin web search settings, refused where an instance is switched over to it, and reports itself unavailable, so a slim instance searching the web takes one of the other providers. [Commit](https://github.com/open-webui/open-webui/commit/0fa4dea5ff64ea663f162d07c9a1175c39e4aad0) -- ๐Ÿ“ฅ **Slim fetches the code interpreter's packages as they are used.** A slim build carries the Python runtime that runs code in the browser but no longer the packages it draws on, from numpy and pandas to matplotlib and scikit-learn, which the browser now downloads from a public delivery network the first time code imports them rather than reading them from the instance. [Commit](https://github.com/open-webui/open-webui/commit/98fcb844e1b19f7dd6289af26273cdec5447dc52) -- ๐Ÿงฑ **Building the image needs BuildKit.** Building Open WebUI yourself now takes the BuildKit builder and reach to the registry the install tool is fetched from, next to the package index it already needed. [#29728](https://github.com/open-webui/open-webui/pull/29728) -- ๐Ÿงพ **Tools declare what they import.** A tool or function importing a package that was only ever present by accident, among them nltk, pymongo, the Google Drive client and the Gemini SDK, now has to name it in its requirements, or have it installed into the image where the instance cannot reach the package index. [#29725](https://github.com/open-webui/open-webui/pull/29725), [#29726](https://github.com/open-webui/open-webui/pull/29726), [Commit](https://github.com/open-webui/open-webui/commit/a1c02098aa2687c72482a59117efe643b785df51) -- ๐Ÿ”— **Default suggestions answer with an object.** Saving the default prompt suggestions now answers with the suggestions and their per-language wording together rather than the bare list it returned before, which anything calling it directly will need to read. [Commit](https://github.com/open-webui/open-webui/commit/7b6562e3358956ec71eed05352538a646d047734) -- ๐Ÿ–ผ๏ธ **Default picture without access.** A model picture now falls back to the standard logo wherever the viewer holds no grant on that model, such as a model reply shown to the other members of a channel, or the admin analytics and evaluation pages with the access bypass switched off. [#29700](https://github.com/open-webui/open-webui/pull/29700) -- ๐Ÿ”Š **Browser speech loads its engine from the instance.** The WebAssembly runtime behind on-device text-to-speech is now loaded from the files served alongside the interface rather than from a copy carried inside its JavaScript. [Commit](https://github.com/open-webui/open-webui/commit/f1c803d36bae9d429eb630ad26853c9d939262b5) -- ๐Ÿ–จ๏ธ **Chats are turned into PDFs by the browser alone.** Downloading a chat as a PDF is drawn in the browser, as it already was, and the server no longer offers to do it: the endpoint behind `POST /api/v1/utils/pdf` and the fonts it carried for the purpose are gone, which anything calling that endpoint directly will need to stop doing. [Commit](https://github.com/open-webui/open-webui/commit/508de20779168003e538bb936b49a31d4a8fb8bb) +- ๐Ÿชถ **Slim starts with nothing configured.** The slim image leaves out the local models and the libraries around them, and still starts and holds a conversation on its defaults; the features that leaned on those models each need an external service of their own. [Commit](https://github.com/open-webui/open-webui/commit/cb942bb94c8dc7941336088fb3392e2398ff56c1) +- ๐Ÿ—„๏ธ **Slim refuses to start on another database.** The slim image runs on SQLite, its default, or on PostgreSQL; pointed at MySQL, MariaDB or another engine, or started with AWS RDS IAM logins switched on, it stops with an error instead of starting, and those deployments need the standard image. [Commit](https://github.com/open-webui/open-webui/commit/d27aa72ab4a7b5632b4ad49e8467081ad3d7ebb4) +- ๐Ÿ“ **Slim refuses to start on cloud file storage.** The slim image keeps files on local storage, its default; configured for an S3, Google Cloud or Azure bucket, it stops with an error instead of starting, and those deployments need the standard image. [Commit](https://github.com/open-webui/open-webui/commit/d27aa72ab4a7b5632b4ad49e8467081ad3d7ebb4) +- ๐Ÿงฎ **Slim searches only through pgvector.** Knowledge search on the slim image needs PostgreSQL with pgvector. Configured for another vector store the instance still starts, and the failure arrives the first time something is searched rather than at startup. [Commit](https://github.com/open-webui/open-webui/commit/cb942bb94c8dc7941336088fb3392e2398ff56c1), [Commit](https://github.com/open-webui/open-webui/commit/d27aa72ab4a7b5632b4ad49e8467081ad3d7ebb4) +- ๐Ÿง  **Slim needs an external embedding service.** The slim image carries no embedding or reranking model of its own, so knowledge needs one of the external embedding engines, OpenAI, Ollama or Azure OpenAI, and reranking needs an external reranker; where none is configured, results fall back to plain cosine scoring, which ranks them less well. [Commit](https://github.com/open-webui/open-webui/commit/cb942bb94c8dc7941336088fb3392e2398ff56c1) +- โœ‚๏ธ **Slim splits documents without a tokenizer.** Splitting a document along a downloaded tokenizer is unavailable on the slim image, which leaves splitting by character or by token count. [Commit](https://github.com/open-webui/open-webui/commit/cb942bb94c8dc7941336088fb3392e2398ff56c1) +- ๐Ÿ“ƒ **Slim reads only plain text on its own.** The slim image reads text, Markdown, CSV, HTML and XML files as they are; uploading a PDF, a Word file or a presentation fails unless one of the external document extractors is configured. [Commit](https://github.com/open-webui/open-webui/commit/cb942bb94c8dc7941336088fb3392e2398ff56c1) +- ๐ŸŽ™๏ธ **Slim needs an external speech service.** The slim image carries neither local Whisper nor local voices: an instance configured for them still starts, but speech to text and text to speech fail when they are used until an external engine is set, and the audio settings refuse a switch back to the local ones. [Commit](https://github.com/open-webui/open-webui/commit/cb942bb94c8dc7941336088fb3392e2398ff56c1) +- ๐Ÿ•ธ๏ธ **Slim fetches pages without a browser.** The slim image carries no headless browser, so a web page is fetched over plain HTTP or through an external loader, and a page that draws itself with JavaScript comes back with less of its content than on the standard image. [Commit](https://github.com/open-webui/open-webui/commit/cb942bb94c8dc7941336088fb3392e2398ff56c1), [Commit](https://github.com/open-webui/open-webui/commit/d27aa72ab4a7b5632b4ad49e8467081ad3d7ebb4) +- ๐Ÿ”Ž **Slim leaves out DuckDuckGo search.** DDGS, the one web search provider that needs no key of its own, is not carried in the slim image: it is greyed out in the admin web search settings, refused where an instance is switched over to it, and reports itself unavailable where it is already selected, so web search on slim needs a provider with a key. [Commit](https://github.com/open-webui/open-webui/commit/0fa4dea5ff64ea663f162d07c9a1175c39e4aad0) +- ๐Ÿ“ฅ **Slim pulls the code interpreter's packages from a CDN.** The slim image carries the Python runtime that runs code in the browser but not the packages it draws on, so the browser downloads numpy, pandas, matplotlib, scikit-learn and the rest from `cdn.jsdelivr.net` the first time code imports them, which means the code interpreter needs outbound access from the browser and stops working where that is blocked. [Commit](https://github.com/open-webui/open-webui/commit/98fcb844e1b19f7dd6289af26273cdec5447dc52) +- ๐Ÿงฐ **Slim installs no requirement from a git address.** The slim image no longer carries git, so a tool or function whose requirements point at a `git+https://` address fails to install and needs the standard image or a published package. [Commit](https://github.com/open-webui/open-webui/commit/30eed1251301f74e0dfeaad09c41e81320f790fc) +- ๐ŸงŠ **Slim cannot be built with the CUDA or Ollama options.** A build combining `USE_SLIM` with `USE_CUDA` or `USE_OLLAMA` now stops with an error instead of producing an image carrying what slim exists to leave out. [Commit](https://github.com/open-webui/open-webui/commit/cb942bb94c8dc7941336088fb3392e2398ff56c1) +- ๐Ÿงฑ **Building the image needs BuildKit.** Building Open WebUI yourself now needs BuildKit, and the build pulls `uv` from `ghcr.io` alongside the packages it already fetched from the Python package index, so a build behind a restricted network needs both reachable. [#29728](https://github.com/open-webui/open-webui/pull/29728) +- ๐Ÿงพ **Tools declare what they import.** Packages that sat in the image only by accident, among them nltk, pymongo, the Google Drive client and the Gemini SDK, are no longer installed, so a tool or function importing one stops working on upgrade until it names the package in its own requirements; an instance that cannot reach the package index needs the package built into the image instead. [#29725](https://github.com/open-webui/open-webui/pull/29725), [#29726](https://github.com/open-webui/open-webui/pull/29726), [Commit](https://github.com/open-webui/open-webui/commit/a1c02098aa2687c72482a59117efe643b785df51) +- ๐Ÿ”— **Default suggestions answer with an object.** `POST /api/v1/configs/suggestions` now answers with an object holding the suggestions and their per-language wording, in place of the bare list it returned before, so anything calling it directly has to read the new shape. [Commit](https://github.com/open-webui/open-webui/commit/7b6562e3358956ec71eed05352538a646d047734) +- ๐Ÿ–ผ๏ธ **Model pictures fall back to the default logo.** A model picture is replaced by the standard logo wherever the viewer cannot access that model, in a model's reply shown to the other members of a channel and on the admin analytics and evaluation pages with the access bypass switched off, so a familiar picture shows as the default logo in those places. [#29700](https://github.com/open-webui/open-webui/pull/29700) +- ๐Ÿ–จ๏ธ **The server-side PDF endpoint is gone.** `POST /api/v1/utils/pdf` and the fonts it needed have been removed. Downloading a chat as a PDF is unaffected, the browser having drawn it for some time already, but anything calling that endpoint fails. [Commit](https://github.com/open-webui/open-webui/commit/508de20779168003e538bb936b49a31d4a8fb8bb) ## [0.11.3] - 2026-08-31