Commit Graph
3907 Commits
Author SHA1 Message Date
Timothy Jaeryang Baek 212eec408c refac 2026-07-24 01:44:30 -04:00
Classic298 b6acd3cc45 fix: web speech STT repeating previous transcriptions and inserting text on cancel (#26793)
The VoiceRecording component stays mounted (hidden) between recordings, and the web speech engine accumulated every session's transcript into the never-reset transcription variable. Each new recording therefore confirmed all previous utterances again, so the inserted text repeated once per session and previously deleted text reappeared in the input.

Additionally, cancelling a recording (X button, Escape or a recognition error) called stopRecording(), which stops the SpeechRecognition instance and fires its onend handler, which unconditionally confirms the transcription. Cancelled recordings therefore still inserted the accumulated transcript.

Reset the transcription at the start of each web speech session and detach the onend handler on cancel so cancelled recordings no longer confirm.

Fixes #26784
2026-07-24 00:40:02 -05:00
Timothy Jaeryang Baek cea991260f refac 2026-07-24 01:09:50 -04:00
G30 e212e3c7f4 fix(ui): resolve workspace model ID to base model on delete from model selector (#26819) 2026-07-24 00:03:31 -05:00
Timothy Jaeryang Baek 5f6a9d16b2 refac 2026-07-24 00:56:43 -04:00
Timothy Jaeryang Baek d637c2128c refac 2026-07-24 00:56:29 -04:00
Timothy Jaeryang Baek 239cb74007 refac 2026-07-24 00:56:25 -04:00
Timothy Jaeryang Baek b35e2d265a refac 2026-07-24 00:54:03 -04:00
Timothy Jaeryang Baek 8cbb7f765c refac 2026-07-24 00:47:12 -04:00
Timothy Jaeryang Baek 1e88367cc8 refac 2026-07-24 00:43:31 -04:00
Timothy Jaeryang Baek 381ababeba refac 2026-07-24 00:40:21 -04:00
Classic298 c895490aa8 fix: blank chat messages on Safari caused by content-visibility virtualization (#26805)
Since v0.10.0 chat messages are virtualized with content-visibility: auto to skip rendering of off-screen messages. Safari's implementation of content-visibility has known paint bugs (WebKit bugs 277573, 281570 and 283846) that can leave the contents of a message unpainted even when it is on screen. On iOS this makes assistant responses render as empty, both in Safari and as a PWA, while the same chats render fine in Chromium and Firefox. This matches the regression window reported in #26712, which appeared when upgrading from 0.9.6 to 0.10.2.

Detect Safari (including all iOS browsers, which use WebKit) with the same user agent check already used in MessageInput and ShareChatModal, and skip the virtualization class there. Safari falls back to rendering all messages like before v0.10.0, while other engines keep the optimization. Verified with a spoofed Safari user agent that messages render without the virtualization class and with content-visibility resolving to visible, while Chromium keeps content-visibility: auto.

Fixes #26712
2026-07-23 23:38:18 -04:00
Classic298 0f8d12201c fix: empty assistant message content in action function body (#26798)
Assistant responses are now stored as structured output items on message.output, with message.content left empty. The action payload built in chatActionHandler still sent message.content only, so action functions received assistant messages with an empty content property. Derive the content from the structured output via getOutputText, falling back to message.content, matching how the rest of Chat.svelte resolves assistant text.

Fixes #26672
2026-07-23 23:34:14 -04:00
Jiwon Lee 9d020edf0f fix: make native date/time picker icons visible in dark mode (#27275) 2026-07-23 22:23:46 -04:00
G30 3132f11e55 feat: add setting to toggle keyboard shortcuts on/off (#27300) 2026-07-23 22:14:56 -04:00
Timothy Jaeryang Baek e769f9ff4f refac 2026-07-23 17:53:13 -04:00
G30 e62e4eb9fe fix(ui): contain archived chats and analytics content within the settings modal (#27306) 2026-07-23 13:34:35 -05:00
Timothy Jaeryang Baek ca11bd90a7 chore: format 2026-07-23 13:41:16 -04:00
Timothy Jaeryang Baek 93bd05271c refac 2026-07-23 13:40:30 -04:00
Timothy Jaeryang Baek 49abfbdd15 refac 2026-07-23 13:18:04 -04:00
Timothy Jaeryang Baek 1513ddaf58 refac 2026-07-23 12:25:17 -04:00
Timothy Jaeryang Baek d0f7da4f45 refac 2026-07-23 04:45:27 -04:00
Timothy Jaeryang Baek 73421c5b42 refac 2026-07-23 02:55:06 -04:00
Timothy Jaeryang Baek 409fb39717 refac 2026-07-21 13:53:30 -04:00
Timothy Jaeryang Baek 49e57f4e7e chore: format 2026-07-20 22:11:42 -04:00
Timothy Jaeryang Baek af9a315ac3 refac 2026-07-20 01:33:47 -04:00
Timothy Jaeryang Baek 6e5efc1f75 refac 2026-07-20 01:21:15 -04:00
Timothy Jaeryang Baek 4da2ff2655 refac 2026-07-20 00:25:37 -04:00
Timothy Jaeryang Baek d3ea51fd46 refac 2026-07-20 00:23:01 -04:00
Timothy Jaeryang Baek b2f7ecd83a refac 2026-07-17 06:45:00 -04:00
Timothy Jaeryang Baek 59c75f569b refac 2026-07-17 06:38:10 -04:00
Timothy Jaeryang Baek 890bfd0d97 refac 2026-07-17 06:28:07 -04:00
Timothy Jaeryang Baek 346b99c383 refac 2026-07-16 23:39:16 -04:00
Timothy Jaeryang Baek b08f1e8847 refac 2026-07-16 23:38:27 -04:00
Timothy Jaeryang Baek 53b8e6560b refac 2026-07-16 23:35:13 -04:00
Timothy Jaeryang Baek a2000df253 refac 2026-07-16 21:57:15 -04:00
Timothy Jaeryang Baek 668f9fe390 refac 2026-07-16 21:25:35 -04:00
Timothy Jaeryang Baek 975c9f9b50 refac 2026-07-16 21:08:23 -04:00
Timothy Jaeryang Baek d7f33996ee refac 2026-07-16 02:49:21 -04:00
Timothy Jaeryang Baek 2e857a82d7 refac 2026-07-16 02:47:51 -04:00
Timothy Jaeryang Baek 75894161e4 refac 2026-07-16 02:35:44 -04:00
Timothy Jaeryang Baek 8270aa59ab refac 2026-07-16 02:27:59 -04:00
Timothy Jaeryang Baek f0eea61155 refac 2026-07-16 02:21:46 -04:00
Timothy Jaeryang Baek 3c45f9f511 refac 2026-07-16 02:18:54 -04:00
Timothy Jaeryang Baek 9be11883b8 refac 2026-07-16 02:05:08 -04:00
Timothy Jaeryang Baek 4d27bfff92 refac 2026-07-16 01:42:24 -04:00
Timothy Jaeryang Baek cf235738f5 refac 2026-07-16 01:27:52 -04:00
Timothy Jaeryang Baek 200d447f62 refac 2026-07-16 01:10:13 -04:00
Timothy Jaeryang Baek c55e373b99 refac 2026-07-16 00:58:34 -04:00
Timothy Jaeryang Baek 92fbc77877 refac 2026-07-16 00:32:27 -04:00