Commit graph

26 commits

Author SHA1 Message Date
Timothy Jaeryang Baek
f8c5fda283 refac 2026-08-13 02:03:13 -06:00
Timothy Jaeryang Baek
c8f8fa451a a11y
Co-Authored-By: Classic298 <27028174+Classic298@users.noreply.github.com>
2026-08-11 01:25:20 -06:00
G30
38a03830c2
fix: show a placeholder when an image cannot be loaded (#27730)
A message referencing a file that no longer exists rendered a broken
image, because nothing anywhere noticed the failed load. What the user saw
depended on the caller's alt text: in a response the alt is the message
content, so the entire reply was rendered inside the image frame, and the
preview still opened full-screen on a dead image.

Image.svelte now tracks a failed load and renders an 'Image unavailable'
placeholder instead, suppressing the preview for a source that cannot be
shown. The failed state resets when the source changes, so a replaced or
corrected URL is retried. An onError callback lets a caller react without
changing behaviour for the eight existing call sites, which are untouched.

Responses now pass the file name (or 'Generated Image') as alt rather than
the message content, which was never a description of the image.
2026-08-10 22:27:13 -06:00
Timothy Jaeryang Baek
890bfd0d97 refac 2026-07-17 06:28:07 -04:00
Classic298
cfd2888545
fix:image url validation and signout post (#24420)
* refac(routers): reject external URLs in profile/model image handlers

* refac(ui): centralize image URL validation in safeImageUrl helper

* refac(auths): make signout POST-only

* refac: gate external profile image redirect behind ENABLE_PROFILE_IMAGE_URL_FORWARDING

Restore the 302 redirect for external http(s) profile image URLs in
the user and model profile-image endpoints, but gate it behind a new
ENABLE_PROFILE_IMAGE_URL_FORWARDING env flag (default: True).

Existing deployments that rely on external profile image forwarding
continue to work unchanged.  Operators who want to suppress the
redirect (to prevent client-side IP/UA/Referer leaks) can set the
flag to False.
2026-05-09 07:33:31 +09:00
Timothy Jaeryang Baek
d303f0351d refac 2025-08-14 04:19:54 +04:00
Sine Jespersen
ab3c19dd36 aria labels and high contrast mode for accessibility 2025-07-01 12:39:35 +02:00
Sine Jespersen
00e2ad1a9f Aria labels on image 2025-07-01 10:10:37 +02:00
Timothy Jaeryang Baek
c8e8111dd9 refac 2025-06-27 15:44:26 +04:00
Silentoplayz
d1e3940abd refac: Spinner and XMark components 2025-06-25 18:44:45 -04:00
Timothy Jaeryang Baek
d74809853d enh: note files 2025-05-03 23:29:19 +04:00
Timothy Jaeryang Baek
e3fa48b6ce chore: tailwind v4 migration 2025-02-15 19:27:25 -08:00
Timothy Jaeryang Baek
ecd3b4ebd4 enh: channel file upload 2024-12-23 14:43:58 -07:00
Timothy Jaeryang Baek
f1d21fc59a feat: channel socket integration 2024-12-22 19:40:01 -07:00
Timothy Jaeryang Baek
ff9fdc2f88 refac 2024-11-09 23:57:19 -08:00
Timothy J. Baek
73faa8dc80 refac: styling 2024-08-20 17:03:20 +02:00
Timothy J. Baek
e6b3de310b refac 2024-08-07 01:55:37 +02:00
Timothy J. Baek
8c84c74197 refac 2024-08-05 18:58:57 +02:00
Timothy J. Baek
37b117a84c fix: styling 2024-08-05 18:00:04 +02:00
Timothy J. Baek
ab6346ea1c refac: markdown rendering
Co-Authored-By: Jun Siang Cheah <me@jscheah.me>
2024-08-05 17:47:18 +02:00
Timothy J. Baek
7d42a79177 refac: token rendering 2024-08-05 17:12:41 +02:00
Timothy J. Baek
bf6c6627e8 revert 2024-08-05 01:03:22 +02:00
Timothy J. Baek
88086935af feat: markdown image preview 2024-08-04 18:14:17 +02:00
Jun Siang Cheah
a937f6504a feat: add image gen with automatic1111 to integration test 2024-05-20 23:03:05 +01:00
Timothy J. Baek
0221acd163 feat: dall-e integration 2024-03-08 17:38:10 -08:00
Timothy J. Baek
79615f26da feat: image preview 2024-02-22 18:49:34 -08:00