Commit graph

19786 commits

Author SHA1 Message Date
Classic298
35ee76cebb
fix: multi-factor authentication section shows while MFA is off (#32980)
Every user saw a "Multi-factor authentication" section under Account, reading "Authenticator not configured" and "Managed by your administrator.", although MFA is off by default and there is nothing to set up. The section now only shows when MFA applies to the signed-in user, so everyone who has to use an authenticator still sees it.

Refs #32830
2026-10-23 10:58:07 +09:00
Classic298
b17ee7d839
fix: chat menu Copy shows while chat export is not allowed (#32960)
* fix: chat menu Copy shows while chat export is not allowed

Users without the chat export permission get no Download entry in the chat menu, but Copy was still there and copied the whole chat as text, the same as the plain text download. Copy is now hidden as well while chat export is not allowed.

Refs #32830

* fix: chat menu opens empty once Copy is hidden

With Copy hidden for users without the chat export permission, a temporary chat with no artifacts that is not scrolled down had nothing left in its chat menu, so the button opened an empty dropdown. The button is now hidden in that case and shows again as soon as the menu has an entry.

Refs #32830
2026-10-23 10:58:00 +09:00
Timothy Jaeryang Baek
82d6f230b4 refac 2026-10-23 10:57:12 +09:00
Classic298
11406c1654
fix: audio settings tab shows while speech and calls are not allowed (#32977)
The Audio settings tab showed to users who may use neither speech-to-text, text-to-speech nor calls, so none of its settings applied to them. The tab now shows as soon as one of the three is allowed.

Refs #32830
2026-10-23 10:53:13 +09:00
Classic298
fbad6fb252
fix: compress images in channels setting shows while channels are off (#32976)
Settings > Interface offered "Compress Images in Channels" when channels are turned off for the instance or the user may not use them. It now only shows when the user can use channels, the same way the sidebar decides whether to list them, and the settings search skips it otherwise. A saved choice is kept.

Refs #32830
2026-10-23 10:50:54 +09:00
Classic298
be8f2c0a21
fix: auto-generation settings show while the admin turned them off (#32973)
Settings > Interface offered the title, follow-up and chat tag auto-generation switches even when the admin turned those generations off, so switching them did nothing. Each switch now only shows while its generation is on. The settings for keeping and inserting follow-up prompts stay, because they still apply to follow-ups saved in existing chats. Saved choices are kept and apply again once the admin turns the generation back on.

Refs #32830
2026-10-23 10:50:24 +09:00
Classic298
1f737b8948
fix: context compaction threshold shows while context compaction is off (#32962)
Admins saw the Context Compaction Threshold under Advanced Params, in the model editor, the model defaults and the chat settings, even with context compaction turned off, which is the default, and the value did nothing. It is now hidden while context compaction is off. A threshold already saved on a model is kept and applies again once compaction is turned on.

Refs #32830
2026-10-23 10:48:38 +09:00
Classic298
502af86b25
fix: "By @user" link to openwebui.com shows while community sharing is off (#32961)
Models imported from openwebui.com show their openwebui.com author as a link on the new chat screen, also when community sharing is turned off. That author line is now hidden while community sharing is off, and other models keep showing their author as before. The model keeps its author info, so turning community sharing back on brings the link back.

Refs #32830
2026-10-23 10:48:24 +09:00
G30
9e634dc960
fix(a11y): the Archived Chats and Keyboard lists stay usable at 400% zoom (#32938) 2026-10-23 10:47:17 +09:00
Classic298
4324573f16
fix: Valves pickers in Chat Controls show while tools and functions are off (#32959)
With tools or functions turned off for the instance (ENABLE_TOOLS, ENABLE_FUNCTIONS), Chat Controls still offered both under Valves, and the list for the disabled one was always empty. Tools and functions are now only offered there while they are enabled, and the Valves section is hidden when both are off.

Refs #32830
2026-10-23 10:46:52 +09:00
Classic298
9faca2ac5b
fix: Attach Notes shows while the Notes permission is off (#32967)
The "Attach Notes" entry in the message input's "+" menu showed to users without the Notes permission, and the list it opened only said "No notes found". It now shows only when the admin has Notes turned on and the user may use Notes, the same rule the sidebar already follows for its Notes entry.

Refs #32830
2026-10-23 10:46:03 +09:00
Classic298
9e5a355fd2
fix: Capture shows for models without Vision (#32969)
"Capture" in the "+" menu showed when no selected model supports images, and after picking a screen the user only got "Selected model(s) do not support image inputs". It now shows only when at least one selected model has "Vision", which is also what attaching an image requires.

Refs #32830
2026-10-23 10:44:51 +09:00
G30
2ea6bf4369
fix(a11y): unarchiving a chat in Archived Chats keeps keyboard focus in the list (#32909) 2026-10-23 05:40:55 +09:00
G30
8ce855974f
fix(a11y): arrow keys move through the input and integrations menus, and their items are menu items (#32940) 2026-10-23 04:41:17 +09:00
G30
20f97c703f
fix(a11y): choosing a Workspace section keeps keyboard focus on its link (#32913) 2026-10-23 04:40:50 +09:00
G30
c90536e21d
fix(a11y): each Workspace page has a heading for screen readers (#32911) 2026-10-23 04:40:23 +09:00
Timothy Jaeryang Baek
bb10ca4719 refac 2026-10-23 04:39:28 +09:00
Classic298
f6f42b0111
fix: editing a WebP image fails with the built-in image editor (#32902)
Editing a WebP image (an uploaded one, or one generated by a provider that returns WebP) failed in the Docker image. Python only learns the WebP type from a system file the image does not ship, so the picture went to the image provider labelled with no type at all, and providers rejected it. WebP is now registered at startup like the other types Open WebUI already sets, so the provider receives it as image/webp.

Fixes #32899
2026-10-23 04:22:51 +09:00
Timothy Jaeryang Baek
3a95998e32 refac 2026-10-23 04:21:15 +09:00
Classic298
3299a09753
fix: tooltips show names and descriptions exactly as written (#32953)
Text shown in a tooltip was treated as markup, so a name, path or description containing angle brackets came out mangled or partly missing. Tooltips now show their text as written, and the few places that deliberately show formatted content ask for it explicitly.
2026-10-23 04:16:15 +09:00
G30
b1e10f5306
fix(a11y): the collapsed sidebar's buttons and links aren't nested inside another button (#32930) 2026-10-23 03:56:18 +09:00
G30
855b003b86
fix(a11y): options in a Select dropdown tell screen readers which one is chosen (#32926) 2026-10-23 03:52:13 +09:00
G30
0a5c105ab0
fix(a11y): the search window's list is named by its visible caption (#32944) 2026-10-23 03:50:37 +09:00
G30
7fe27647d4
fix(a11y): the on/off switch on a Prompts row isn't nested inside another button (#32928) 2026-10-23 03:50:19 +09:00
G30
61b49c2dd7
fix(a11y): focus moves to the other sidebar button when you open or close the sidebar (#32893) 2026-10-23 03:49:09 +09:00
G30
d6e29020c0
fix(a11y): the skip link's target no longer sits past the page's right edge (#32952) 2026-10-23 03:43:32 +09:00
G30
7ee7b2895c
fix(a11y): the folder toggle in the sidebar has a name and says whether the folder is open (#32895) 2026-10-23 03:31:55 +09:00
G30
a5cfa98e9a
fix(a11y): the Settings window is named Settings for screen readers (#32924) 2026-10-23 03:02:25 +09:00
G30
e231ca160b
fix(a11y): copying a prompt in Workspace shows a notification that screen readers read (#32905) 2026-10-23 02:50:03 +09:00
G30
f844f6e893
fix(a11y): the Keyboard tab's shortcut categories are headings with a list of shortcuts under each (#32922) 2026-10-23 02:44:09 +09:00
G30
7b26b962ea
fix(a11y): screen readers hear how many models match a search in the model picker (#32897) 2026-10-23 02:41:45 +09:00
Classic298
6b9237f1a1
fix: Images settings cannot be saved without an API key for a feature that is switched off (#32949)
On a fresh install the image generation engine is OpenAI with no key, and saving Admin Settings > Images failed with "OpenAI API Key is required." even with Image Generation switched off, which blocked every change on the page, including setting up Image Edit with another engine. Image Edit had the same problem: with Gemini as its engine and no key, the page refused to save even with Image Edit off. Each engine's key or URL is now only asked for while its feature is on, so switching Image Generation or Image Edit on without one is still refused.

Fixes #32835
2026-10-23 02:41:09 +09:00
qwist1233-cpu
1740dea1df
i18n: fill the blank Turkish (tr-TR) strings (#32917)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-10-23 02:09:07 +09:00
Timothy Jaeryang Baek
63eed95c87 refac
Some checks are pending
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_OLLAMA=true free_disk:false name:ollama suffix:-ollama]) (push) Waiting to run
Create and publish Docker images with specific build args / merge (map[name:cuda suffix:-cuda]) (push) Blocked by required conditions
Create and publish Docker images with specific build args / merge (map[name:cuda126 suffix:-cuda126]) (push) Blocked by required conditions
Create and publish Docker images with specific build args / merge (map[name:main suffix:]) (push) Blocked by required conditions
Create and publish Docker images with specific build args / merge (map[name:ollama suffix:-ollama]) (push) Blocked by required conditions
Create and publish Docker images with specific build args / merge (map[name:slim suffix:-slim]) (push) Blocked by required conditions
Create and publish Docker images with specific build args / notify-helm-charts (push) Blocked by required conditions
Create and publish Docker images with specific build args / copy-to-dockerhub (, main) (push) Blocked by required conditions
Create and publish Docker images with specific build args / copy-to-dockerhub (-cuda, cuda) (push) Blocked by required conditions
Create and publish Docker images with specific build args / copy-to-dockerhub (-cuda126, cuda126) (push) Blocked by required conditions
Python CI / Ruff Format (3.11) (push) Waiting to run
Python CI / Ruff Format (3.12) (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
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_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 / copy-to-dockerhub (-ollama, ollama) (push) Blocked by required conditions
Create and publish Docker images with specific build args / copy-to-dockerhub (-slim, slim) (push) Blocked by required conditions
Frontend Build / Format & Build (push) Waiting to run
Frontend Build / Unit Tests (push) Waiting to run
2026-10-22 13:00:54 +09:00
Classic298
ed3cf83553
refac: recheck live chat access after archiving and bulk unsharing (#32887)
Archiving a chat, archiving all chats and unsharing all chats now run the same live access recheck as the other chat changes.
2026-10-22 08:32:51 +09:00
Classic298
a9adb2b78e
perf: posting in a channel takes seconds when many members are online (#32889)
Every message posted in a channel waited until the server had re-checked the login of every online member of that channel, one connected session at a time with a few database lookups each, before the post went through. In a large channel that added seconds to every single message. The result only decides who gets a notification, and the message is already delivered to everyone before this step, so the check now runs right after the post returns, as the first step of the work that sends notifications and bot replies. Members are re-checked exactly as before, including disconnecting any session whose login is no longer valid.

Postgres 16, standard channel, median time for a post to return:

| Online members | Before | After |
| --- | --- | --- |
| 100 | 0.37 s | 0.03 s |
| 300 | 1.6 s | 0.05 s |
| 1,000 | 3.4 s | 0.10 s |
2026-10-22 07:48:19 +09:00
G30
494619062a
fix(a11y): the Suggested label on a new chat is a heading that names the suggestion list (#32891) 2026-10-22 07:41:32 +09:00
Timothy Jaeryang Baek
c9415a688e refac 2026-10-22 07:40:01 +09:00
G30
5e0f723434
fix(a11y): the model name on a new chat is a heading for screen readers (#32880) 2026-10-22 07:25:38 +09:00
G30
da2780b240
fix(a11y): screen readers read the model the arrow keys are on in the model picker (#32886) 2026-10-22 07:25:28 +09:00
Timothy Jaeryang Baek
4d70ed07ff refac 2026-10-22 07:14:26 +09:00
Classic298
52f51ea4f3
chore: quote the bracketed options in the compose launcher help (#32881)
The help examples show options like --enable-gpu[count=1] without quotes. zsh, the default shell on macOS, reads the square brackets as a file pattern and stops with "no matches found", so typing them as shown fails there. The examples now quote those options, which works the same in bash and zsh.

Refs #32878
2026-10-22 07:09:01 +09:00
Classic298
bae611e785
perf: saving a group or changing its members takes seconds when many users are online (#32882)
Since 0.12.0, every group save and every member add or remove made the server recheck access for every chat that any online user had open in a browser tab, one database lookup at a time, before the save finished. With a few thousand people online, saving a group took several seconds, and every one of those open chats reloaded its contents afterwards. When a group change can affect what someone may see, the server already makes that person's browser reconnect, and an open chat checks its access again on reconnect, so group changes now skip the recheck for everyone else. Folder and chat sharing changes keep it.

Postgres 16, 2,000-member group, one open chat per online user:

| Online users | Saving the group without permission changes, before | after | Adding a member, before | after |
| --- | --- | --- | --- | --- |
| 1,000 | 2.0 s | under 0.05 s | 2.2 s | under 0.05 s |
| 3,000 | 6.7 s | under 0.05 s | 6.6 s | under 0.05 s |
2026-10-22 07:08:49 +09:00
Classic298
b7d1de05ab
perf: changing permissions on a large group is slow (#32883)
When a group change affects its members (new permissions, parent group or default models, or deleting the group), the server makes every member's browser reconnect so it picks up the new permissions without a page reload. To find each member's connections it read through the whole list of connected users again for every single member, so saving a 2,000-member group with 3,000 people online spent almost 9 seconds on this with Redis as the websocket manager, and about 1 second without. It now finds all members' connections in one pass.

Changing one permission on a 2,000-member group, time the save spends making members reconnect:

| Online users | Redis, before | Redis, after | No Redis, before | No Redis, after |
| --- | --- | --- | --- | --- |
| 1,000 | 2.8 s | 0.15 s | 0.09 s | <0.01 s |
| 3,000 | 8.7 s | 0.28 s | 1.2 s | <0.01 s |
2026-10-22 07:08:30 +09:00
Classic298
8fa77c8282
fix: PowerPoint preview centres titles the file aligns left (#32876)
In the PowerPoint preview, a title or subtitle that the file sets to left alignment was drawn centred, the same as one with no alignment at all. Decks made by python-pptx and most deck generators set the alignment on every paragraph, so their left-aligned title slides all came out centred. The preview now keeps a title the file aligns left on the left, and only centres titles and subtitles that leave the alignment open.

Fixes #32873
2026-10-22 07:01:10 +09:00
Timothy Jaeryang Baek
095cca5fca refac 2026-10-22 06:56:43 +09:00
G30
f2baa486bc
fix(a11y): the model picker outlines the row that Enter will pick while you use the arrow keys (#32875) 2026-10-22 06:55:22 +09:00
Timothy Jaeryang Baek
35b51e09ea refac 2026-10-22 06:35:41 +09:00
Classic298
75358502c9
refac: direct tool server connection check auth handling (#32862)
The connection check in the direct tool server form now picks the credential to send the same way saved direct connections do.
2026-10-22 06:23:23 +09:00
G30
53356e84c6
fix(a11y): toast text in the light theme meets the 4.5:1 contrast minimum (#32871) 2026-10-22 06:20:49 +09:00