fix(images): percent-encode original-image URLs ('#' in paths 404'd) #100

Merged
bvandeusen merged 1 commits from dev into main 2026-06-12 00:44:56 -04:00
Owner

An image whose on-disk path contains # (post folders like BLUE#59) served its hash-named thumbnail fine but 404'd the original: the unencoded # in image_url was parsed by the browser as a URL fragment, so #59/01_timelapse.jpg never reached the /images route. Adds a shared image_url(path) helper that percent-encodes the path (safe='/') and routes the 3 raw builders (gallery detail + 2 in series) through it. Not a cleanup-tool deletion — the file is on disk; only the URL was wrong.

Regression test on the encoder. CI green on dev (run 970).

🤖 Generated with Claude Code

An image whose on-disk path contains `#` (post folders like `BLUE#59`) served its hash-named thumbnail fine but 404'd the original: the unencoded `#` in `image_url` was parsed by the browser as a URL fragment, so `#59/01_timelapse.jpg` never reached the `/images` route. Adds a shared `image_url(path)` helper that percent-encodes the path (`safe='/'`) and routes the 3 raw builders (gallery detail + 2 in series) through it. Not a cleanup-tool deletion — the file is on disk; only the URL was wrong. Regression test on the encoder. CI green on dev (run 970). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
bvandeusen added 1 commit 2026-06-12 00:44:51 -04:00
fix(images): percent-encode original-image URLs ('#' in paths 404'd)
CI / lint (push) Successful in 3s
CI / frontend-build (push) Successful in 18s
CI / backend-lint-and-test (push) Successful in 26s
CI / integration (push) Successful in 3m17s
7c4b24c80d
An image whose on-disk path contains '#' (post folders like 'BLUE#59')
served its hash-named thumbnail fine but 404'd the original: the unencoded
'#' in image_url was parsed by the browser as a URL fragment, so
'#59/01_timelapse.jpg' never reached the /images route. Add a shared
image_url(path) helper that percent-encodes the path (safe='/') and route
the 3 raw builders (gallery detail + 2 in series) through it. Not a
cleanup-tool deletion — the file is on disk; only the URL was wrong.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
bvandeusen merged commit 9e81ced359 into main 2026-06-12 00:44:56 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/FabledCurator#100