Commit graph

18516 commits

Author SHA1 Message Date
Classic298
20527ee662
chore: carry the wording editor follow-ups into the 0.11.4 entry
Two follow-ups tidy the editor the per-language wording is written in, dropping
the line that said whether a field was translated or using the default and
holding back the controls beside a skill or tool name. Neither changes what the
entry describes, so they join its links rather than standing on their own.

The terminal work is left out: the dock it adds is not rendered anywhere yet,
and the rest of that commit rewrites the existing terminal in place and sends
two identifying headers upstream, none of which shows to anyone using it.
2026-09-05 03:54:06 +00:00
Classic298
b1d1b7821a
chore: add the interface wording and sketch upload entries to 0.11.4
Added records an administrator being able to replace the interface's own
wording language by language, which is a separate thing from a model or a tool
carrying wording of its own and so stands beside that entry rather than joining
it. A replacement that drops a placeholder the original fills in is refused, as
it is for the resources.

Fixed records the Arduino sketch that failed to upload to a knowledge base
because its extension was missing from the list of files read as plain text, so
it went to a document extraction server that answered with something the loader
could not read.
2026-09-04 23:16:44 +00:00
Classic298
5e73aef3fc
chore: carry the valve labels and translation table into the wording entry
The entry named only what a resource is called and says about itself, leaving
out the labels on its valves, which are translatable down to the options in a
dropdown, and the table each editor now offers in place of the code when a
language is picked, with the JSON file it reads and writes. An import that
drops a placeholder the original fills in is refused, which is worth the words
it takes to say.

It stays one entry: every part of this arrived together and none of it existed
in another form before.
2026-09-04 22:39:49 +00:00
Classic298
19be91e729
chore: widen the per-language wording entry in 0.11.4
The mechanism that gave a model its name, description and starter prompts in
each language now covers tools, skills, functions, banners and arena entries
too, each written in the editor that owns it, so the entry names them rather
than standing as a second one beside it. Both commits travel with it.

The response shape entry is unchanged: it is the saving call for the admin
defaults, which this second commit does not touch.
2026-09-04 22:33:42 +00:00
Classic298
72261b153d
chore: add the per-language model wording entries to 0.11.4
Added leads with a model carrying its name, description and starter prompts in
each language, written in the workspace editor or the admin defaults and chosen
by the language the interface is set to, falling back to the plain wording where
that language has none. Every part of it arrived together, so it is one entry.

Changed opens the section for the saving call that now answers with the
suggestions and their per-language wording together where it returned the bare
list, which anything reading that response directly has to account for. No
schema change travels with it, so the section carries no migration warning.
2026-09-04 21:44:04 +00:00
Classic298
556ee730cf
chore: add the arena, relevance and dialog entries to 0.11.4
Fixed gains the arena model that failed on something unrelated whenever its
provider answered with an error, so the reason never reached the chat and
titles and tags broke alongside it; it is placed high, a message that fails
outright costing more than one that reads oddly. It also gains the relevance
figure that a reply drawing on a single source never showed, appearing only
once a second source joined it, and the grey band the attach webpage dialog
carried between its address box and its button.
2026-09-04 21:21:01 +00:00
Classic298
66b8c36a8f
chore: add the note from search entry to 0.11.4
Fixed records the three ways starting a note from the search box went wrong, as
one entry because they are one action: the browser back button making a further
note on every press, the action doing nothing at all when the notes page was
already open, and the typed text losing everything from the first ampersand or
hash onwards. It sits below the listener leak, unwanted notes being a nuisance
rather than something that grows on the server.
2026-09-04 19:57:07 +00:00
Classic298
e14132c5de
chore: extend the quick delete entry to automations in 0.11.4
The shortcut that turns a note's trailing controls into a delete button now does
the same for a row on the automations page, so the entry names both places and
carries both pull requests with the issues they close, rather than repeating
itself for the second surface.

The pass blanking redundant English values in the en-US catalogue is omitted:
the key stands in for the value there, so nothing reads differently.
2026-09-04 16:00:13 +00:00
Classic298
6a713c1bc0
chore: add the version check, ligature and search entries to 0.11.4
Fixed gains the version check that reported whatever it was running as the
newest release whenever it could not reach the listing, and logged nothing
about it, which is placed high because an administrator reads it as an answer
rather than a failure. It also gains the arrow sequences drawn as glyphs, which
had text look altered although every character was stored and sent as typed;
that one sits with the other reading corrections.

Added gains the text search moved off the path the server answers on, so a long
search no longer keeps other requests waiting.

The metadata entry gains the four vector stores that never applied the shared
size cap, coercion and sanitising, bringing them in line with the other eleven
rather than standing as an entry of its own.
2026-09-04 15:46:45 +00:00
Classic298
1af996ab6d
chore: add the notes shortcut and web citation entries to 0.11.4
Added records the shortcut that turns a note's menu button into a delete button
while Shift is held, ahead of the placeholder and translation entries in their
reserved places.

Fixed records the pages a web search only listed no longer being offered as
things to cite, which had produced citations pointing at the wrong result under
a title that read as correct. It sits directly below the code formatter, a
citation that is wrong being worse to a reader than one that is missing.
2026-09-04 15:31:00 +00:00
Classic298
2faf98e339
chore: add the code formatter entry and widen the translation coverage entry in 0.11.4
Fixed leads with the built-in code formatter, which pulled in the formatter but
none of the packages it depends on, so saving any tool or function ended in a
missing module error however plain the code was. It sits directly below the
advisory, being the correction that stops the most people getting their work
saved.

The settings heading entry widens into one covering every string that was fixed
in English, the headings among them, now that labels and messages across the
admin pages, the workspace and notifications have been opened up the same way
and Spanish, Russian and Ukrainian have filled them in. Its five commits travel
together. German and Spanish join the translation entry.
2026-09-04 07:47:10 +00:00
Classic298
4a3059bc51
chore: add the settings group heading entry to 0.11.4
The groundwork that made these headings translatable was held back last time,
the keys having landed empty in every catalogue so nothing read differently.
Russian and Ukrainian now carry the wording, so the change shows and the entry
joins Fixed at the foot of the section, below the corrections that reach
further. The two commits that made the headings translatable are referenced;
the catalogues that filled them sit in the translation entry, which names both
languages and carries no links.
2026-09-03 21:12:43 +00:00
Classic298
9cf3504faf
chore: give the file metadata entry a noun phrase label
The label read as an outcome, which suits a correction rather than an addition
and left the entry sounding like something that had stopped going wrong. It is
now the plain noun phrase the format asks of a label, with the sentence beneath
carrying what the metadata now does.
2026-09-03 20:26:08 +00:00
Classic298
377e83a51c
chore: record the file metadata entry as an addition in 0.11.4
Metadata attached to an upload reaching the retrieved sources is a capability
that was not there before rather than a correction, so the entry moves to Added
and leads that section, ahead of the general improvements placeholder and the
translation entry in their reserved places. The wording drops the framing that
described it as something no longer going missing; its pull request, issue and
follow-up commit travel with it unchanged.
2026-09-03 20:25:42 +00:00
Classic298
26dcc057bd
chore: add the security advisory notice to 0.11.4
Adds the standard notice as the first item in the Fixed section. The release
touches the guard that keeps image editing from reaching private addresses, and
carries a listener leak a caller could drive without limit, so it meets the
trigger the format sets for the notice. The notice is the fixed wording and
takes no reference links of its own; the individual entries keep theirs.
2026-09-03 20:24:58 +00:00
Classic298
d4a5aba6e8
chore: extend the metadata and translation entries in 0.11.4
The metadata entry gains the follow-up that trims what travels with each piece
of a file, keeping the oversized and internal fields out of every chunk and
picking up metadata nested a level down, and is recorded there rather than as a
second entry because it continues the same story. The translation entry gains
the Russian and Ukrainian catalogues.

The settings group headings and the keys added for them are omitted: the new
keys carry no translation in any catalogue yet, so every heading still reads as
it did, and the change only makes them translatable later.
2026-09-03 20:23:08 +00:00
Classic298
0b1c76e12e
chore: open the 0.11.4 changelog
Starts the section for the commits landed on dev after the 0.11.3 entry was
merged. Fixed records the direct connection listener left behind on every
request that ended badly, the metadata attached to an uploaded file that never
reached the retrieved sources, the slash command menu showing white text on
white in the light theme, and image editing refusing an image the instance
already held. Added carries the general improvements placeholder and the
Traditional Chinese, Korean and Finnish catalogues.

The tailwind reflow and the raw string escapes are omitted, the first being
whitespace and the second changing nothing that is visible today, though it
keeps the knowledge filesystem tools importable on a later Python.
2026-09-03 19:04:47 +00:00
G30
6f55514c5c
fix: let validate_url accept dotless hosts when local web fetch is enabled (#29945) 2026-09-12 17:56:16 -04:00
Timothy Jaeryang Baek
5bb321de06 refac 2026-09-12 17:43:01 -04:00
Classic298
08578557de
refac: share one community origin allowlist across window message handlers (#29918)
The three community origins were repeated inline in five window message handlers and now come from a single COMMUNITY_ORIGINS constant in constants.ts.

The sync stats modal uses that same list in both directions: it reads messages only from a community origin, replies to the origin the message came from, and names the community origins as the targets of the messages it sends. Its chat id goes into the request as one encoded path segment.
2026-09-12 16:35:16 -05:00
G30
887372aca5
fix: apply the selection highlight only when the editor is unfocused and keep it out of the chat input (#29952) 2026-09-12 16:19:09 -05:00
Timothy Jaeryang Baek
0edd731c74 refac 2026-09-12 17:11:37 -04:00
Classic298
2a44c9d384
refac: validate the URL scheme before rendering a link href (#29890)
Link URLs rendered from markdown, citations and web search results now pass a scheme check before they reach an anchor. A new safeLinkUrl helper sits beside isValidHttpUrl and keeps http, https, mailto, tel and relative URLs, returning undefined for anything else so the label renders without a link. Markdown links with an unusual scheme (ftp, sms, and application deep links such as obsidian or vscode) render as plain text from now on.

The citation checks move off a substring test for "http" onto isValidHttpUrl, which is what Citations.svelte already uses for the same question. That also drops two long-standing quirks: an uppercase HTTP:// source never rendered as a link, and a filename merely containing "http" rendered as a dead external one.
2026-09-12 16:06:58 -05:00
Classic298
746caa7c78
fix: honor ENABLE_PROFILE_IMAGE_URL_FORWARDING for channel webhook profile images (#29889)
Setting ENABLE_PROFILE_IMAGE_URL_FORWARDING=false stops the user and model profile image endpoints from redirecting browsers to external avatar URLs, but channel webhook avatars kept redirecting regardless. An operator who turned the setting off precisely to stop clients leaking their IP, User-Agent and Referer to outside origins still leaked all three whenever anyone viewed a channel message posted by a webhook with an external profile image URL.

The webhook profile image endpoint now reads the same setting the user and model endpoints already read, and serves the bundled default image instead of the redirect when forwarding is off. Stored URLs are untouched, so turning the setting back on restores the previous behaviour.

Verified against the real handler with seeded webhook rows: with the setting unset or true the endpoint still returns the 302 with the original Location, with it false it returns the default favicon as image/png with no Location and no header carrying the external host, and the data URI, no image and unknown webhook responses are byte identical in both states.
2026-09-12 16:06:34 -05:00
G30
ee4834e299
fix: only log a reranking model change when the request carries one (#29922) 2026-09-12 16:04:14 -05:00
Timothy Jaeryang Baek
a910b0d8f6 refac 2026-09-12 17:02:44 -04:00
Classic298
75b1836322
fix: drop thinking blocks when converting Anthropic Messages requests to Chat Completions (#29849)
* fix: drop thinking blocks when converting Anthropic Messages requests to Chat Completions

Claude Code and other Anthropic SDK clients pointed at /api/v1/messages send the assistant's earlier thinking blocks back with every follow-up request. Since 0.11.0 those blocks were copied into the OpenAI assistant message as content parts of type thinking, a part type Chat Completions does not define. Strict OpenAI-compatible servers such as NVIDIA Dynamo reject the whole request with 400 "data did not match any variant of untagged enum ChatCompletionRequestAssistantMessageContent", so a conversation with a reasoning model died on its second turn. The error reports its position at the very end of the body, which made the request look cut off; it was complete.

Thinking and redacted_thinking blocks are now skipped in the conversion, which is what happened before 0.11.0. An assistant turn that held only thinking blocks is kept as an empty assistant message so the turn order survives. Native Anthropic and LiteLLM connections are unaffected because they receive the request untouched, and thinking blocks in responses are still produced.

Fixes #29799

* fix: keep signed thinking blocks when converting Anthropic Messages requests

Dropping every thinking block also removed the signed ones. Those are the blocks a gateway such as LiteLLM forwards to Anthropic, which needs the signed thinking block of the previous assistant turn when a tool-use turn continues with extended thinking. Only the unsigned blocks are the problem: Open WebUI creates them itself from reasoning_content, and strict Chat Completions backends reject them because thinking is not a content part type they know.

Unsigned thinking blocks are now dropped while signed thinking and redacted_thinking blocks are kept, the same rule LiteLLM applies before forwarding to Anthropic and the rule the native chat path already uses for Anthropic reasoning details. Backends that never emit a signature, such as NVIDIA Dynamo and vLLM, keep receiving requests without thinking parts, so the original failure stays fixed.
2026-09-12 15:56:59 -05:00
Timothy Jaeryang Baek
c78ad89934 refac 2026-09-12 16:56:26 -04:00
Timothy Jaeryang Baek
7a4a4b93dc refac 2026-09-12 15:41:57 -04:00
Timothy Jaeryang Baek
ffae4116a8 refac 2026-09-12 14:57:22 -04:00
Classic298
0313ea0238
fix: stop every task of a chat when stopping a response without Redis (#29844)
Pressing Stop on a chat that has more than one running task (a multi-model
response, or a follow-up sent from another tab or device while a response
is still streaming) reported success but only cancelled the first task.
The survivors kept streaming and kept executing tool calls until the
iteration limit, which is the runaway reported in the issue.

Without Redis the stop loop iterates the live task-id list of the chat.
Each awaited cancellation runs that task's cleanup, which removes its id
from the same list mid-iteration, so the loop runs out one element early
and the last task is never cancelled. Returning a snapshot of the list to
callers keeps the loop on the ids it started with. Redis deployments
already got a fresh list from the set and were not affected.

Verified against a mock upstream that calls a tool on every turn: with three
tasks on one chat, stop left one or two alive before the change and cancels
all of them after it.

Fixes #29816
2026-09-12 13:55:13 -05:00
Dolores
af54ea6283
i18n: update zh-TW (#29885) 2026-09-12 13:54:00 -05:00
G30
4ee53e051e
fix: sanitize user-typed notification target ids the same way generated ones are (#29947) 2026-09-12 13:50:19 -05:00
Timothy Jaeryang Baek
7aaa4a692e 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: 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_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 / 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/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 / merge (map[name:cuda suffix:-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
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
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
Co-Authored-By: G30 <50341825+silentoplayz@users.noreply.github.com>
2026-09-10 19:05:36 -04:00
joaoback
5e7e38c035
i18n: add pt-BR translations for newly added UI items and consistency pass (#29870)
Some checks are pending
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_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/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/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/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_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 / 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
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
New **pt-BR** translations for items introduced in the latest releases, plus a consistency/quality pass across existing strings (grammar, tone, capitalization, pluralization). Placeholders and hotkeys preserved. No logic changes.
2026-09-10 13:57:43 -04:00
Timothy Jaeryang Baek
4948842bea chore: i18n 2026-09-09 23:34:25 -04:00
G30
eb9b7b659f
fix: render mentions whose ID contains any non-whitespace character as chips (#29864)
* fix: render channel mentions whose ID contains spaces or parentheses, such as workspace model IDs

* fix: accept any non-whitespace mention ID, matching the model ID rule on dev
2026-09-09 19:27:35 -04:00
Timothy Jaeryang Baek
540467b90a refac 2026-09-09 19:16:16 -04:00
Timothy Jaeryang Baek
17dbc6f001 refac
Some checks failed
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_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 / 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/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 / merge (map[name:cuda suffix:-cuda]) (push) Blocked by required conditions
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 / 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
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 / Unit Tests (push) Waiting to run
Frontend Build / Format & Build (push) Waiting to run
Python CI / Ruff Format (3.11) (push) Has been cancelled
Python CI / Ruff Format (3.12) (push) Has been cancelled
2026-09-09 17:09:53 -04:00
Timothy Jaeryang Baek
8a19e2f867 refac 2026-09-09 17:09:45 -04:00
G30
14e30933af
fix: render code blocks in channel model replies with the same editor as every other message (#29861) 2026-09-09 16:56:48 -04:00
Timothy Jaeryang Baek
e35b907f73 refac 2026-09-09 16:39:44 -04:00
Classic298
44f9a4f7f9
fix: stop forwarding upstream Server and Date headers from the OpenAI and Ollama proxies (#29843)
Streamed chat completions and the other proxied OpenAI and Ollama responses
went out with two Server and two Date headers: the upstream's copies, forwarded
verbatim, plus uvicorn's own. nginx in front of Open WebUI logs "upstream sent
duplicate header line" for both on every streamed request.

Server and Date belong to whoever terminates the connection, so both proxies now
drop the upstream's copies next to the encoding headers they already stripped.
The filter also compares header names case-insensitively. Before, it matched
title-case names only, so uvicorn-based upstreams such as vLLM and LiteLLM,
which send lowercase header names, had none of their headers stripped at all,
including the Content-Encoding entry the filter exists for.

Same fix as #29824 for the terminal proxy, applied to the other two proxy paths.
2026-09-09 16:35:48 -04:00
G30
b198c94efb
fix: open the thread when a notification toast for a thread reply is clicked (#29856) 2026-09-09 16:24:10 -04:00
G30
5b0f8a73ca
fix: keep the select chevron clear of the text in shrink-to-fit selects (#29866) 2026-09-09 16:22:00 -04:00
Classic298
8383bc708c
fix: show the right error when a model cannot be loaded for editing (#29694)
Opening the workspace model editor with an id that cannot be loaded redirected back to the model list and then fell through into the write-access check on the same empty model, so a plain not-found id produced "You do not have permission to edit this model". The message pointed people at their permissions for something that was never a permission problem.

The editor now stops after the redirect, so that message only appears when the model loaded and the user really cannot edit it.

Refs #29629
2026-09-09 12:55:38 -04:00
Timothy Jaeryang Baek
ee46e2664a refac 2026-09-09 12:51:59 -04:00
Timothy Jaeryang Baek
d70053e449 refac 2026-09-09 12:51:29 -04:00
Classic298
c955cbd2c5
fix: stop forwarding upstream Server and Date headers from the terminal proxy (#29841)
Proxied terminal responses (GET /api/v1/terminals/{id}/ports and every other
proxied route) went out with two Server and two Date headers: the terminal
server's copies, forwarded verbatim, plus uvicorn's own. nginx in front of Open
WebUI logs "upstream sent duplicate header line" for both on every request, and
the ports route is polled often enough to fill gigabytes of error log per day.

Server and Date belong to whoever terminates the connection, so the proxy now
drops the upstream's copies next to the framing headers it already stripped.
uvicorn's own values still go out, once. Everything else, including custom
upstream headers and TERMINAL_PROXY_HEADERS, passes through unchanged.

The OpenAI and Ollama proxies forward upstream Server and Date the same way and
are left for a separate change.

Fixes #29824
2026-09-09 12:31:02 -04:00
Classic298
1b67da7004
feat: sort flags for kb_exec file listings (#29840)
kb_exec silently ignored ls -t. It accepted the flag, dropped it and
returned the same undefined database order as a plain ls, so the model
believed it had a newest-first list when it did not. With a few thousand
files in a knowledge base there was no way to ask what changed recently
without reading the whole listing and comparing dates by eye.

ls, tree and find now sort their file lines by name by default, so the
same knowledge base always lists the same way. -t sorts newest first,
-S largest first and -r reverses, combinable like -at or -tr, matching
the flags the model already knows from a shell. Directories keep their
existing name order and stay grouped first. No query changes: the
timestamps and sizes were already loaded for the date and size columns.
2026-09-09 12:30:47 -04:00