Commit graph

450 commits

Author SHA1 Message Date
Classic298
c4aac6152b
fix: regenerate menu setting shows while regenerating is not allowed (#32974)
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
2026-10-25 06:53:01 +09:00
Classic298
159a29ed06
fix: temporary chat and delete chat shortcuts show while not allowed (#32978)
* 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.
2026-10-25 05:05:31 +09:00
Classic298
d48b5e1c87
fix: voice call settings show while calls are not allowed (#32975)
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>
2026-10-24 11:25:36 +09:00
Classic298
521da58ff3
fix: web search in chat setting shows while web search is off (#32972)
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
2026-10-24 11:19:39 +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
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
Classic298
25b1156623
fix: Realtime call answers twice when a short pause splits a sentence (#32773)
In a Realtime call, a short pause mid-sentence can make the Realtime provider split the sentence into two turns. If you kept talking before the first half was transcribed, Open WebUI asked the voice model for one reply per half. The voice model hears the whole conversation each time, so both replies answered the full sentence and you heard the same answer twice, the second one about 15 seconds later. Now Open WebUI asks the voice model only once, after the last half, and that one reply covers the whole sentence.

Fixes #32764
2026-10-21 02:17:06 +09:00
Timothy Jaeryang Baek
4b81b12ed4 chore: format 2026-10-16 15:20:15 +04:00
Timothy Jaeryang Baek
d12da61e5a refac 2026-10-16 14:55:40 +04:00
Classic298
ed5c2d7522
feat: Google Drive file picker only asks for access to the files you pick (#32531)
Connecting Google Drive asked every user for the drive.readonly scope, read access to their whole Drive. Google classes that scope as restricted, so each self-hosted install needed Google's restricted-scope verification and security assessment, and until then users got the "Google hasn't verified this app" warning. The picker now only requests drive.file, access to the files the user picks, which Google classes as non-sensitive and which needs no such verification. With that scope Google requires the picker to name the Cloud project, so it sends the project number again, taken from the leading digits of the Google Drive client ID. It also opens in list view, as Google recommends for this scope, since the picker gets no thumbnail access with it.

Fixes #29537
2026-10-16 14:09:42 +04:00
Timothy Jaeryang Baek
ba0b2169e1 refac 2026-10-16 03:13:13 +04:00
Timothy Jaeryang Baek
a70e96525d refac 2026-10-14 18:22:33 +04:00
Timothy Jaeryang Baek
f9c524d31d refac 2026-10-14 15:54:56 +04:00
Timothy Jaeryang Baek
e5c80682b9 refac 2026-10-14 14:41:26 +04:00
G30
3991035767
feat: rotate, pan and zoom the voice avatar (#32378) 2026-10-14 12:18:44 +04:00
Timothy Jaeryang Baek
be6f0a6656 refac 2026-10-13 17:22:11 +04:00
G30
80ae7f620a
fix: VRM 0.x voice avatars rest with their arms down (#32270) 2026-10-12 23:32:27 +04:00
Timothy Jaeryang Baek
a9227421d8 refac 2026-10-12 17:57:07 +04:00
Timothy Jaeryang Baek
d786ed56c9 refac 2026-10-12 11:16:56 +04:00
Timothy Jaeryang Baek
78613d86f7 refac 2026-10-11 15:55:57 +04:00
Timothy Jaeryang Baek
46a2a830ab refac
Co-Authored-By: Algorithm5838 <108630393+Algorithm5838@users.noreply.github.com>
2026-10-10 22:25:11 +04:00
Timothy Jaeryang Baek
79d376a1f3 refac 2026-10-10 21:28:33 +04:00
Timothy Jaeryang Baek
a8388243d6 refac 2026-10-09 17:56:20 +04:00
Timothy Jaeryang Baek
dc1203d34c refac 2026-10-09 16:35:59 +04:00
Timothy Jaeryang Baek
7d205a86dc refac 2026-10-08 23:49:38 +04:00
Timothy Jaeryang Baek
87a9374595 refac 2026-10-08 19:40:19 +04:00
Timothy Jaeryang Baek
b8b3fb9068 refac 2026-10-08 18:24:35 +04:00
Classic298
5079890442
fix: chats from the last day of a month show under Previous 7 days on the first (#31973)
On the first day of a month, chats from the day before were listed under "Previous 7 days" in the sidebar instead of "Yesterday". The same happened on January 1st for chats from December 31st. Any chat from the previous calendar day is now listed under "Yesterday", whatever the month or year.

Fixes #31964
2026-10-07 16:23:02 +04:00
Timothy Jaeryang Baek
56b6b660a8 refac 2026-10-07 14:10:46 +04:00
Timothy Jaeryang Baek
c6130741f5 refac 2026-10-07 14:01:47 +04:00
Timothy Jaeryang Baek
99a50e8c1b refac 2026-10-07 13:57:19 +04:00
Timothy Jaeryang Baek
e56f85f432 refac 2026-10-07 13:49:55 +04:00
Timothy Jaeryang Baek
d6a7948a77 refac 2026-10-07 13:45:42 +04:00
Timothy Jaeryang Baek
eda4fed598 refac 2026-10-07 13:39:16 +04:00
Timothy Jaeryang Baek
eee724c82f refac 2026-10-07 13:37:24 +04:00
Timothy Jaeryang Baek
7401f41630 refac 2026-10-07 13:22:00 +04:00
Timothy Jaeryang Baek
7c9d73b605 refac 2026-10-07 12:37:50 +04:00
Timothy Jaeryang Baek
4f1f385419 refac 2026-10-07 12:10:52 +04:00
Timothy Jaeryang Baek
093bfce2b6 refac 2026-10-07 00:39:16 +04:00
G30
35b0db7edc
fix: unmute the Read Aloud player after a Voice mode call ends (#31874) (#31875) 2026-10-05 15:25:58 +04:00
Timothy Jaeryang Baek
398c37c73c refac 2026-10-05 14:35:15 +04:00
Classic298
273180a0d7
fix: Read Aloud and auto-playback ignore the Speech Playback Speed setting (#31881)
Read Aloud and response auto-playback always played at normal speed, regardless of the Speech Playback Speed setting. The speech is played one sentence at a time, and the browser put the speed back to normal every time a new sentence started. The chosen speed now stays in effect for every sentence. Voice mode already respected the setting.

Fixes #31870
2026-10-05 11:15:06 +04:00
Classic298
8e03389de1
fix: inline math touching an em dash or en dash is not rendered (#31901)
In chat replies, inline math written right next to an em dash or en dash, with either $...$ or \(...\), was left unrendered, as in "constants—\(e\), \(i\) and \(0\)—in one equation" where the 0 showed up as plain "(0)". Both dashes are now allowed directly before or after a formula, like spaces, commas and brackets already are, so the math renders whenever a dash touches it.
2026-10-05 06:41:57 +04:00
Timothy Jaeryang Baek
8a4547104c refac 2026-10-01 08:13:45 +04:00
Classic298
6c322941d1
fix: iPhone HEIC photos are rejected by vision models (#31649)
iPhone photos were only converted to JPEG when the browser reported their type as exactly image/heic. Firefox reports image/heif and some browsers report no type at all, so those photos were uploaded as HEIC and vision models failed with an error. When conversion did run, the JPEG was still uploaded with the HEIC file name and type, so the model was told it was HEIC anyway. HEIC and HEIF photos are now converted whatever type the browser reports and are uploaded as a .jpg with the JPEG type, in chats, channels and notes.

Fixes #28411
2026-09-30 21:03:07 +04:00
Timothy Jaeryang Baek
b39abad5c2 refac 2026-09-27 23:07:52 +04:00
Classic298
7924ce7d79
fix: unhandled play() rejection wedges the Read Aloud button; auto-playback silent on iOS (#30373)
On iOS and iPadOS, auto-playback of a finished reply is never heard and the speaker button stays stuck in "speaking", so the first tap only stops a playback that never started. WebKit rejects play() started from a network event, and the audio queue ignored that rejection, so its state never reset. Call mode on the same devices was silent too.

A rejected play() now resets the queue, returns the button to idle and shows a toast (an aborted play from stop or a message switch is ignored). The first user tap or keypress plays a 10 ms silent clip on the shared audio element, which WebKit then allows to play later without a gesture; if that attempt fails it retries on the next gesture. Call mode plays unmuted: WebKit pauses an element that is unmuted after play() outside a gesture, even once unlocked.

The unlock and call mode change follow the reporter's on-device tests (iPhone iOS 27, iPad iPadOS 26.6.2). Verified in Chromium with autoplay restricted: the base queue wedges and drops later chunks; with the fix it reports the error, recovers, the unlock plays once and never interrupts audio already playing, and chunks queued during the unlock still play.

Fixes #30262
2026-09-23 23:52:09 -04:00
Classic298
46ea826e01
refac: keep rendered diagrams and SVG on same-origin resources (#30271)
Mermaid diagrams and the shared SVG sanitizer now accept only same-origin and data: references. Image URLs, class styles and directive config are checked on the parsed diagram before it renders, and the sanitizer drops attribute values and stylesheet rules that point at another origin. use elements keep local #id references only.

SVGPanZoom and the SVG file preview call the shared sanitizer instead of keeping their own configs, so SVG artifacts and uploaded SVG files follow the same rule. Uploaded SVGs that reference external sprites now render those parts blank, which is the point of the change.

A diagram that references an external resource now reports an error instead of rendering, and an SVG artifact keeps everything except the rules that reference one.
2026-09-21 15:15:28 -04:00
Timothy Jaeryang Baek
30881dbcc9 refac 2026-09-21 11:09:09 -04:00
Timothy Jaeryang Baek
7cbaabe02f refac 2026-09-18 10:51:00 -04:00