feat(web): SPA skeleton embedded in the binary #60
Reference in New Issue
Block a user
Delete Branch "issue/6-web-skeleton"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #6.
Adds
web/: Vite + TypeScript SPA, no framework. One page rendersGET /api/healthas a signal-chain board (TMDB / Prowlarr feeds, Transmission out), with per-upstream status, detail, version and round-trip readouts, a probe control, and a 15 s repoll. States: probing, ok, degraded, unconfigured, unreachable, daemon-down.arr-daemonembedsweb/distviainclude_dirand serves it with correct MIME types, immutable caching for hashed assets, SPA fallback for extensionless routes, and hard 404s for missing files and unknown/api/*paths.build.rsruns pnpm when present, accepts a prebuilt bundle viaARR_WEB_DIST, and embeds a placeholder only in debug builds so the node-less CI rust job still passes; release builds without a bundle fail.Biome (config at repo root) and
tsc -b --noEmitare wired intojust ci. Dev mode proxies/apito the daemon (ARR_DAEMON_URLoverride). Design went through the impeccable skill;.impeccable/design.jsonis the token record. Rajdhani woff2 is self-hosted — the embedded SPA makes no network requests.🤖 Generated with Claude Code
Loose: Adding
web/package.jsonactivatesweb-check, but it runsbiome ci web/beforepnpm -C web install. On a clean CI runner,biomeis only a project devDependency, sojust ciexits before installation. Install first and invoke it throughpnpm -C web exec biome ci ..Fixed in
98a040a:web-checknow installs first and runspnpm -C web exec biome ci ., so it no longer depends on a system-wide biome.Reviewed
98a040a9638784df47ab8fe1f1ff00ccce67f0be. No findings.Reviewed
1b64afc2a18fa510de00440271a9c1e36af790e1. No findings.Reviewed
5dd5a25873abaf8caee822cded5389941aebcbfb. No findings.