-
feat: styled error pages for all error surfaces
Some checks failedCI / Backend (push) Failing after 11sCI / UI (push) Successful in 51sRelease / Test backend (push) Successful in 54sRelease / Check ui (push) Successful in 1m9sCI / Backend (pull_request) Successful in 45sCI / UI (pull_request) Successful in 56sRelease / Docker / caddy (push) Successful in 1m22sRelease / Docker / backend (push) Failing after 1m46sRelease / Docker / ui (push) Successful in 2m32sRelease / Docker / runner (push) Successful in 3m35sRelease / Gitea Release (push) Has been skippedreleased this
2026-03-30 23:00:00 +05:00 - ui/src/error.html: custom SvelteKit last-resort fallback (replaces
the bare '500 | Internal Error' shown when +error.svelte itself fails)
— branded, auto-refreshes in 20s, book+lightning SVG illustration - ui/src/routes/+error.svelte: improved with context-aware SVG
illustrations (question mark book for 404, lightning bolt for 5xx),
larger status watermark, and a Retry button on non-404 errors - caddy/errors/500.html: new static error page matching the 502/503/504
design — served by Caddy when a gateway-level 500 occurs - Caddyfile: add handle_errors 500 block pointing at /srv/errors/500.html
- caddy/Dockerfile: COPY errors/ into image so static pages are baked in
Downloads
- ui/src/error.html: custom SvelteKit last-resort fallback (replaces