Commit graph

19210 commits

Author SHA1 Message Date
Classic298
c94ac152ea
fix: browser gets stuck in a reload loop after a server upgrade (#31631)
After a server upgrade, browsers could keep reusing their cached copy of the old app page for days, since it was sent with no caching instructions. That old page points at files the new version no longer has, so the app reloads into the same cached page and loops until a hard refresh. The app page now tells the browser to check for a newer version on every visit, which is a tiny request when nothing changed. Other files are cached as before, and an admin-set CACHE_CONTROL still takes precedence.

Fixes #31630
2026-10-10 12:15:39 -05:00
Timothy Jaeryang Baek
82f142d376 refac 2026-10-10 21:11:33 +04:00
Timothy Jaeryang Baek
3e0e760ce3 refac 2026-10-10 21:11:20 +04:00
Timothy Jaeryang Baek
e32d2f75bd refac 2026-10-10 21:01:41 +04:00
Classic298
f56db69130
refac: bound collaborative document buffers (#31603)
Collaborative document buffers now keep a size budget per document and a limit on open documents per connection, only store well-formed updates and are keyed by the document id unchanged.
2026-10-10 20:56:24 +04:00
G30
d2535883c8
i18n: fix mistakes in the existing Persian (fa-IR) translations (#32202) 2026-10-10 20:53:33 +04:00
Timothy Jaeryang Baek
9fad17558b refac 2026-10-10 20:49:28 +04:00
G30
94e9c7fef9
fix: show a knowledge file's current name in citations after it is renamed (#31860) 2026-10-10 20:44:43 +04:00
Timothy Jaeryang Baek
0c3f74c9c1 refac 2026-10-10 20:41:13 +04:00
Timothy Jaeryang Baek
212bfc13e9 refac 2026-10-10 20:31:55 +04:00
G30
78550396da
fix: keep a tag's name when the last chat using it is archived (#32200) 2026-10-10 20:30:15 +04:00
Timothy Jaeryang Baek
d04f78b3bf refac 2026-10-10 20:29:50 +04:00
Timothy Jaeryang Baek
a6b1c0b357 chore: bump 2026-10-10 20:26:28 +04:00
Timothy Jaeryang Baek
1be0d34123 refac 2026-10-10 20:18:42 +04:00
Classic298
0a50954090
fix: Chat failed notifications are not sent when the provider returns an error status (#32198)
Notification targets subscribed to Chat failed stayed silent when the provider answered a chat with an error status, such as a 500, or could not be reached at all. Those failures show up as an error in the chat, but only a few uncommon failures were announced to the targets. Now these failures notify Chat failed targets too, with the error text and a link to the chat.

Fixes #32003
2026-10-10 20:16:10 +04:00
Classic298
69a1c57328
fix: calendar event created late in the evening is saved ending a day late (#32199)
Creating a calendar event after 23:00 saved it ending on the day after the date picked, so it showed on two days. The new event form pre-fills an end time one hour from now, which falls on the next day, and that next-day end date was kept even when the event was set to other times. The end date now stays on the start date when the end time is later in the day than the start time. An event that ends after midnight or spans several days keeps its end date.

Fixes #31994
2026-10-10 20:15:25 +04:00
Classic298
c2a5c7a24e
fix: switching a Chat Controls parameter back to Default ignores your Settings value (#32192)
When a parameter like Temperature was switched to Custom in Chat Controls and then back to Default, the value saved in Settings > General was dropped and the model used its built-in default instead. Default now uses the Settings value again, also in chats where this already happened.

Fixes #32013
2026-10-10 20:12:45 +04:00
Classic298
eebf6438ab
fix: creating a model in Manage Ollama shows no error when Ollama rejects it (#32196)
When Ollama rejected a new model in the Manage Ollama dialog, for example a model definition with no base model, the form cleared and showed no error, so the admin could not tell the model was never created or why. The dialog now shows Ollama's error and keeps the entered name and definition, so the admin can correct them and try again.

Fixes #32002
2026-10-10 20:11:53 +04:00
Classic298
aaea99005d
fix: messages to a model fail after the admin removes a model control the user had set (#32197)
When an admin removed a model control (such as Thinking) after a user had chosen one of its options in the chat input, every message that user sent to that model failed with "the selected option is no longer available" and never reached the model. The control is gone from the chat input, so the user had no way to undo the choice. A choice for a control that no longer exists is now ignored and the message goes through. When only one option of a control is removed, the error stays, because the control is still in the chat input and the user can pick another option there.

Fixes #31996
2026-10-10 20:11:47 +04:00
G30
170ec28a1a
fix: name the secret key when stored MFA secrets cannot be decrypted at startup (#32189) 2026-10-10 20:10:39 +04:00
Classic298
8aa61fcd6c
fix: automation Once schedule defaults to the wrong day outside UTC (#32193)
The Once schedule in the automation dialog filled in today's date in UTC but the browser's local time. When the browser's date differs from UTC's, the default was a day off: east of UTC it was yesterday, so Create failed with "RRULE has no future occurrences", and west of UTC it was tomorrow, so the automation ran a day late. The earliest selectable date had the same mix-up, so west of UTC today could not be picked. The default date and the earliest selectable date now both use the browser's local date.

Fixes #31999
2026-10-10 20:09:40 +04:00
Classic298
9b3d599c75
fix: user can no longer chat after losing access to model controls they had used (#32194)
A user who had picked an option in a model control (the per-model selector in the chat input, for example High on a Thinking control) could not chat any more once the admin switched off Allow Chat Controls or Allow Chat Params for them. Every message failed with "You cannot change model parameters.", and the user could not clear the saved selection because the selector is hidden for them. When either permission is off, the saved selection is now skipped when sending, so messages go through with the model's default options, and it applies again if the permission comes back.

Fixes #31995
2026-10-10 20:09:31 +04:00
Timothy Jaeryang Baek
ab15284a47 refac 2026-10-10 20:09:04 +04:00
Classic298
045020ce73
fix: editing an automation removes the end of its schedule (#32191)
An automation whose schedule stops after a number of runs or on a date lost that end the first time it was edited and saved, even when only the title changed, so it kept running forever. The Edit dialog showed such a schedule as a plain Daily, Weekly or Monthly one, and those options have no setting for an end, so saving wrote the schedule back without it. These schedules now open as Custom with the stored rule in its text field and are saved exactly as they were.

Fixes #32000
2026-10-10 20:04:29 +04:00
Classic298
4c5520a01f
fix: no download progress when creating a model in Manage Ollama (#32187)
Creating a model in Admin Settings > Models > Manage Ollama from a base model that Ollama has not downloaded yet showed no download progress at all. The progress display hit an error in the browser the moment the download began, so the admin saw nothing until the model was created. The model name and a percentage bar that fills up as the download goes now show the whole time.

Fixes #32001
2026-10-10 20:03:00 +04:00
Classic298
641c82df19
fix: automations, timers and sub-agents fail with "Message already exists" (#32177)
Automation runs, timers and sub-agents stopped getting a reply after the shared chats rework: the chat shows an empty answer and the run fails with `409 Message already exists or has an invalid ID.` Each of them creates the empty answer before asking the model, and the backend began refusing to fill an answer that is already in the chat; the server-side API flow in the docs and API calls without a user message broke the same way. Such an empty answer is now filled in again when it belongs to the same user and answers the same message, and API calls without a user message work as before, saving the reply on its own as the docs describe. A firing timer or sub-agent also no longer cancels the chat's other timers that are set to stop when the user writes next. Answers that are already finished, or that belong to another user in a shared chat, are still refused.

Fixes #32066
2026-10-10 20:02:54 +04:00
Classic298
7f3749ed6b
fix: user created in the same second as the first admin takes over its protection (#32157)
Account creation times are stored in whole seconds. On Postgres, a user created in the same second as the first admin, which is normal when a script sets up an instance, could be picked as the primary admin. Other admins could then demote or delete the real first admin, nobody could edit, lock or delete that user, and pending users were shown that user as the admin contact. An admin account now wins a same-second tie against a regular one.
2026-10-10 20:01:41 +04:00
G30
e056b29685
fix: report a failed admin Interface save and fall back to the default when a number field is left empty (#32163) 2026-10-10 20:01:18 +04:00
Classic298
c7e7dbf984
fix: closing Settings opened from the user menu loses the keyboard focus (#32185)
Picking Settings from the user menu with the keyboard left the focus on the menu item, which disappears as the menu closes. When Settings closed, the focus went back to that removed item, so it was lost and the next Tab started over at the top of the page. The menu now gives the focus back to the user menu button when it closes after an item is picked, the same as when it is closed with Escape, so closing Settings returns there.

Fixes #32017
2026-10-10 20:01:08 +04:00
Classic298
6faf540310
fix: show the speech engine's reason when it refuses a transcription (#32186)
When an OpenAI-compatible speech-to-text engine or Deepgram rejected a recording, the error shown after dictating only gave the HTTP status, such as "429 Too Many Requests", and the engine's own reason, such as "Quota exceeded" or "Invalid credentials.", was lost. The error now shows that reason. When the engine sends no reason, the HTTP status is shown as before.

Fixes #32009
2026-10-10 20:00:51 +04:00
Classic298
8fa22d0997
fix: Datalab Marker extraction fails on installs outside the Docker image (#32164)
With Datalab Marker as the content extraction engine, every file upload it processed failed on pip and source installs with `Permission denied: '/app'`, because Open WebUI saved a copy of the extracted text under `/app`, a folder that only exists inside the Docker image. That copy now goes to the uploads folder inside `DATA_DIR`, so extraction works on any install. Docker installs with the default data directory keep the same location.

Fixes #32025
2026-10-10 20:00:02 +04:00
Classic298
c9f9c4b1da
fix: functions and tools with a required Valves field cannot be saved (#32165)
Since the recent change that keeps a history of function and tool edits, saving a new function or tool whose Valves (its admin settings, such as an API key) have a required field with no default was refused with "Current Valves are incompatible with this code: ... Field required", because a new one has no Valves set yet. Editing the code to add a new required field failed the same way. Missing required fields no longer block saving, so the function or tool can be installed first and its Valves filled in afterwards, as before that change. Saved Valves that have the wrong type for the new code are still rejected.

Fixes #32145
2026-10-10 19:59:52 +04:00
Classic298
93838060b2
fix: image pasted into a note right after another save is lost on reload (#32175)
Pasting an image into a note a moment after another change to that note was saved could lose the image. The note page got the result of the earlier save back after the paste and took over its older, empty list of attached files, so the image was saved without its file. After a reload it showed as a grey placeholder and was missing from the PDF export. The note page now keeps its own attached files while it still has a change waiting to be saved.

Fixes #32123
2026-10-10 19:58:05 +04:00
Classic298
d12bf062b5
fix: stopping a reply leaves the chat stuck with the Stop button showing (#32184)
Stopping a reply did stop it, but the page kept showing it as still generating: the Stop button stayed and the next message was never answered. The same happened when sending a queued message right away with Send now. After the reply was marked finished, the page put back an older copy of it that was still marked as generating. Stopped replies now show as finished again, the Send button returns and the next message gets an answer.

Fixes #32081
2026-10-10 19:56:19 +04:00
Classic298
958ad36734
fix: reply in a new chat sometimes stays blank until reload (#32181)
In a new chat the reply sometimes stayed blank and looked like it was still generating, with the loading animation and the Stop button, even though the answer was complete on the server. Reloading the page showed it. It happened when the chat's new title arrived while the reply was still coming in: refreshing the chat list with the new title replaced the finished answer with a blank one. A title or tag update no longer overwrites the reply, so the finished answer shows as soon as it is done.

Fixes #32091
2026-10-10 19:56:02 +04:00
Classic298
e0b0edfeb0
fix: Kagi web search fails on every search when a domain filter list is set (#32183)
With Kagi as the web search engine, any entry in the Domain Filter List made every search fail with "'SearchResult' object has no attribute 'get'", so the model got no search results. The Domain Filter List now works with Kagi the same way it does with the other search engines, and the remaining results reach the model.

Fixes #32004
2026-10-10 19:55:00 +04:00
Classic298
9d888fbd52
fix: Response Splitting dropdown in admin Audio settings has no label for screen readers (#32180)
Screen readers announced the Response Splitting dropdown in Admin Settings > Audio without a name. It is now announced as "Select how to split message text for TTS requests". Nothing changes visually.

Fixes #32010
2026-10-10 19:54:42 +04:00
Classic298
4b088a4a9b
fix: Perplexity Search ignores the domain filter list (#32182)
With Perplexity Search as the web search engine, the Domain Filter List had no effect: blocked domains still showed up in the results the model got, and an allowlist let every result through. The filter now applies to Perplexity Search results as it does for the other search engines.

Fixes #32005
2026-10-10 19:54:25 +04:00
Timothy Jaeryang Baek
a92fcdf107 refac 2026-10-10 19:53:31 +04:00
Classic298
2dff26b1b9
fix: skill versions saved within the same second are listed in random order (#32167)
When a skill was saved several times within one second, its version history in the skill editor listed those versions in a shuffled order. This happens when a model edits a skill several times in one reply, or when an import replaces a skill right after it was created. Each new version now gets a save time at least one second later than the one before it, so the history keeps the order the versions were saved in. During such a burst, the shown save time runs ahead by about one second per extra save.

Fixes #32134
2026-10-10 19:49:21 +04:00
Classic298
b6a7820a2d
fix: feedback CSV export leaves the chat_id column empty (#32169)
Exporting feedback as CSV from Admin Settings > Evaluations > Feedback left the chat_id column empty on every row. Each row now holds the ID of the chat the feedback was given in, the same ID that appears in the chat's URL.

Fixes #32021
2026-10-10 19:49:12 +04:00
Classic298
2cdf015217
fix: Browser Notifications switch stays on after the browser denies permission (#32170)
Turning on Browser Notifications in a browser that blocks them showed an error, but the switch stayed on even though nothing was saved. The switch now turns back off when the browser denies permission.

Fixes #32024
2026-10-10 19:49:05 +04:00
Classic298
88b3f68a1f
fix: sidebar Workspace entry ignores group permission changes until reload (#32171)
When an admin changed a group's permissions, members who had the app open saw Workspace show up or vanish in their user menu right away, but the sidebar kept its Workspace entry as it was until they reloaded the page. The Notes, Calendar and Automations entries in the sidebar had the same problem. The sidebar now follows the change right away, like the user menu.

Fixes #32020
2026-10-10 19:48:55 +04:00
Classic298
200036f6a6
fix: a reply rewritten by an action button still shows its old text (#32172)
Pressing an action button whose function rewrites the reply, as the action docs describe, stored the new text with the chat but the chat kept showing the old reply, right away and after a reload. The reply now shows the new text, and its thinking and tool call sections stay visible. The action gets the reply as one text, so when the reply had text both before and after a tool call, all of it is replaced by the new text, shown after the tool calls.

Fixes #32023
2026-10-10 19:48:46 +04:00
Classic298
1579af28a0
fix: skill search does not find a skill by its translated name (#32174)
Searching Workspace > Skills only matched a skill's original name, description and id, so typing the German name given to a skill in its editor found nothing, even with the interface in German. The search now also matches the names and descriptions translated in the skill editor, in any language, so both the translated and the original name find the skill, as the Translations page in the docs says.

Fixes #32018
2026-10-10 19:48:08 +04:00
Classic298
cdd96e5b57
fix: chat title shows raw skill syntax when it is named after the first message (#32176)
When a chat is named after its first message (title generation off, or the automatic title is blank), a message that starts with a skill picked by typing $ in the message box gave the chat a title like `<$tides-1234|Tides> when is high tide`. The title now shows each picked skill by its name, so the sidebar reads "Tides when is high tide".

Fixes #32019
2026-10-10 19:47:46 +04:00
Classic298
92f283bba5
fix: swiping to reply to a channel message on a phone also opens the sidebar (#32178)
On a phone, swiping right on a channel message to reply to it also opened the sidebar, which slid over the channel and covered the message. A swipe on a message now only starts the reply. On messages that cannot be replied to, for example in a read-only channel, the same swipe still opens the sidebar.

Fixes #32016
2026-10-10 19:47:24 +04:00
Classic298
f7727e24b9
fix: Download choices open off the left edge of the screen on phones (#32179)
On a narrow phone screen, the Download choices in the chat header menu, in a chat's menu in the sidebar and in the note menu opened to the left of the menu, past the edge of the screen, with their labels cut off. When there is no room for them on either side of the menu, they now open over the menu, fully on screen. Where there is room beside the menu, they open as before.

Fixes #32015
2026-10-10 19:47:13 +04:00
Timothy Jaeryang Baek
e86c82406d refac 2026-10-10 18:55:05 +04:00
Timothy Jaeryang Baek
a3cd6158bb refac 2026-10-10 18:51:24 +04:00