* fix: Call button shows while speech-to-text is unavailable
Unless realtime voice is set up, a call needs the server to turn the user's speech into text. The Call button still showed when the speech-to-text engine is "Web API", where clicking it only answered "Call feature is not supported when using Web STT engine", and to users without the speech-to-text permission, where the call opened but nothing they said was transcribed. The button now shows only when a call can work: realtime voice is on, a call is already running, or the engine is not "Web API" and the user has the speech-to-text permission.
Refs #32830
* fix: keyboard shortcut also needs the speech-to-text permission for calls
The call shortcut and call links now follow the same speech-to-text rule as the Call button.
* refac: keep the whole Call button condition in one place
Also drops the Web API speech-to-text message from the Call button, since the button no longer shows for that engine.
* refac: keep the call permission check unchanged in the call shortcut
The speech-to-text rule for the call shortcut is now its own check after the existing call permission check, which stays as it was.
* fix: image engine settings show while image generation is off
Settings > Images showed the image engine, its credentials and the whole image edit section even with image generation turned off. They now only show while the Image Generation switch is on, and flipping it on shows them right away, so everything can be set up before saving. Stored engine settings and keys are kept.
Refs #32830
* fix: saving image settings without a required key turns image generation off
Saving Settings > Images with Image Generation on but a required URL or API key empty showed an "is required" error and flipped the switch back off, which now also hid the field that needed filling. The switch now stays on with the error, so the missing value can be filled in and saved right away. Nothing is saved until then.
Refs #32830
* refac: always require the Gemini API key while image generation is on
The key field only shows while image generation is on, so it is simply required now.
* refac: drop the stray blank lines left in the image settings save checks
Each missing-setting check now shows its error and stops right away, with no leftover gap from the removed lines.
* fix: files selected together for a knowledge base only appear one at a time
Selecting or dropping several files into a knowledge base showed a row for the first file only. The others got no row at all until the one before them had finished processing, which with slow text extraction can be many minutes per file, so they looked lost. Every selected file now shows up as "Uploading" straight away, in the order they will be uploaded, and keeps its row until it has been added to the knowledge base. Each file still waits for the previous one to finish processing, as before.
* refac: give the upload list a type
The list of files waiting to upload now carries the same type as the rows it holds.
A note imported from a .md or .txt file on the Notes page and not edited since showed all of its text twice when two people opened it at the same time, and the doubled text was then saved into the note. The shared editing session is now the only place that loads the text of such a note, the same as for notes that were already edited, so it opens once for everyone. Like an edited note, it now needs the live connection to show its text.
Fixes#33002
* fix: web search engine settings show while web search is off
Settings > Web Search showed the search engine picker and all engine credentials even with web search turned off. They now only show while the Web Search switch is on, and flipping it on shows them right away, so the engine can be set up before saving. An API key the web loader shares with the hidden engine now shows in the loader section instead. Stored engine settings and keys are kept.
Refs #32830
* fix: web search confirmation and Bypass Web Loader show while web search is off
The Web Search Confirmation switch, its text and the Bypass Web Loader switch also showed with web search turned off, although they only act on web searches. They now hide together with the engine settings, and their stored values are kept. Bypass Embedding and Retrieval and Trust Proxy Environment stay visible, since they also apply to web pages attached to a chat.
Refs #32830
* refac: mark web search fields as plainly required
These fields only show while web search is on, so tying their required flag to the toggle no longer does anything.
* refac: write the web search checks inline
Same behaviour, the conditions now sit directly where they are used.
* fix: /skills:create shows for models that cannot create skills
"/skills:create" showed when the model had the "Builtin Tools" capability or its "Skills" built-in tool turned off, and the model then answered that skill creation is disabled. The command now shows only when every selected model has both turned on.
Refs #32830
* refac: keep the skill creation check with the other model capability checks
Moves the check next to the other per-model capability checks so it reads like them.
* refac: add type annotations to the skill creation check
Restores the type on the new option and types the new check.
Settings > Interface showed "Regenerate Menu" to users without permission to regenerate responses. Those users have no regenerate button, so the setting did nothing. It now only shows to users who can regenerate, and the settings search skips it for everyone else.
Refs #32830
Settings > Interface showed the terminal file display, show files on terminal select and terminal preview settings to users who have no terminal to use, which is the default. They now show once the user can reach a terminal, either one the admin set up or one of their own, the same way the chat input decides whether to offer the terminal picker. In the admin default interface settings they show whenever the instance offers terminals.
Refs #32830
* fix: model capability toggles show while their feature is off
In the model editor and the admin model defaults, the Web Search, Image Generation, Code Interpreter and Memory capabilities and the matching Default Features showed even when the admin had turned that feature off for the whole instance, so switching them did nothing. They are now hidden while the feature is off. Values already saved on a model are kept, so turning the feature back on restores each model's settings.
Refs #32830
* refac: use the codebase's name for instance feature switches
Renames the new feature lookup to match how the rest of the frontend refers to instance features.
* refac: keep each feature switch next to its capability
Reads the instance feature switch from the existing capability list instead of a separate map, with no change in behaviour.
* fix: Terminal capability shows while no terminal server exists
The Terminal capability showed in the model editor even when the admin had set up no terminal server and direct integrations were off, which is the default, so it did nothing. It now shows only when an enabled terminal server exists or users can add their own through direct integrations, and the value saved on a model is kept. The server now reports whether any enabled terminal server exists, since the editor itself only sees the servers the current user can access and a model can be shared with other users.
Refs #32830
* fix: hide the default terminal picker when no terminal is available
The model editor still showed the default terminal line when no terminal server or direct integration was available. It now follows the same rule as the Terminal capability.
* fix: temporary chat and delete chat shortcuts show while not allowed
The keyboard shortcuts list showed "New Temporary Chat" and "Delete Chat" to users who may not use temporary chats or delete chats, and pressing those shortcuts neither opened a temporary chat nor deleted anything for them. Both entries now only show to users with the matching permission, and the settings search skips them otherwise.
Refs #32830
* fix: new temporary chat shortcut does nothing without the permission
Users without the temporary chat permission were sent to a new chat by the New Temporary Chat shortcut; it now does nothing for them.
When one sentence failed to synthesize during Read Aloud, playback ended but every remaining sentence was still sent to the speech provider, each failure showed its own error toast and any audio that came back was thrown away. Read Aloud now requests no further sentences after the first failure, so a provider outage gives one error and no wasted requests.
Fixes#33023
Users > Groups and the default permissions showed toggles such as Web Search, Channels, Notes, API Keys or Rate Response even when the admin had turned that feature off for the whole instance, so changing them did nothing. Each of these toggles, and the sharing toggles for notes, folders and calendars, now only shows while its feature is on. Stored permission values are kept, so turning a feature back on restores each group's setting.
Refs #32830
Create and publish Docker images with specific build args / build (map[arch:linux/arm64 runner:ubuntu-24.04-arm], map[build_args:USE_OLLAMA=true free_disk:false name:ollama suffix:-ollama]) (push) Waiting to run
Create and publish Docker images with specific build args / build (map[arch:linux/arm64 runner:ubuntu-24.04-arm], map[build_args:USE_SLIM=true free_disk:false name:slim suffix:-slim]) (push) Waiting to run
Create and publish Docker images with specific build args / build (map[arch:linux/amd64 runner:ubuntu-latest], map[build_args:USE_CUDA=true
USE_CUDA_VER=cu126
free_disk:true name:cuda126 suffix:-cuda126]) (push) Waiting to run
Create and publish Docker images with specific build args / build (map[arch:linux/amd64 runner:ubuntu-latest], map[build_args:USE_CUDA=true free_disk:true name:cuda suffix:-cuda]) (push) Waiting to run
Create and publish Docker images with specific build args / build (map[arch:linux/amd64 runner:ubuntu-latest], map[build_args:USE_SLIM=true free_disk:false name:slim suffix:-slim]) (push) Waiting to run
Create and publish Docker images with specific build args / build (map[arch:linux/arm64 runner:ubuntu-24.04-arm], map[build_args: free_disk:false name:main suffix:]) (push) Waiting to run
Create and publish Docker images with specific build args / build (map[arch:linux/arm64 runner:ubuntu-24.04-arm], map[build_args:USE_CUDA=true
USE_CUDA_VER=cu126
free_disk:true name:cuda126 suffix:-cuda126]) (push) Waiting to run
Create and publish Docker images with specific build args / build (map[arch:linux/amd64 runner:ubuntu-latest], map[build_args: free_disk:false name:main suffix:]) (push) Waiting to run
Create and publish Docker images with specific build args / build (map[arch:linux/amd64 runner:ubuntu-latest], map[build_args:USE_OLLAMA=true free_disk:false name:ollama suffix:-ollama]) (push) Waiting to run
Create and publish Docker images with specific build args / build (map[arch:linux/arm64 runner:ubuntu-24.04-arm], map[build_args:USE_CUDA=true free_disk:true name:cuda suffix:-cuda]) (push) Waiting to run
The Voice section in Settings > Interface, with voice interruption and emoji in call, showed to users without the call permission, who cannot start a call. The section now only shows to users who can make calls, and the settings search skips it for everyone else.
Refs #32830
Co-authored-by: Tim Baek <tim@openwebui.com>
Settings > Interface showed "Web Search in Chat" when web search is off for the instance or the user may not use it, and the choice had no effect. It now shows under the same conditions as the web search button in the chat input, and the settings search skips it otherwise. A saved choice is kept and applies again once web search is available.
Refs #32830