Commit Graph
26 Commits
Author SHA1 Message Date
Timothy Jaeryang Baek f8c5fda283 refac 2026-08-13 02:03:13 -06:00
Timothy Jaeryang BaekandClassic298 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. BaekandJun Siang Cheah 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