🎉 MVP: heatmap viewer with Rust tile proxy and Svelte frontend #1
Loading…
Reference in a new issue
No description provided.
Delete branch "mvp"
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?
Summary
First usable version of canicule: browse Strava's Global Heatmap with no Strava account (zoom 11), or with a server-side session cookie for high resolution (zoom 15). Map UI parity with the official viewer: 5 sports, 6 color palettes, opacity slider, 3 Carto basemaps, geolocation, shareable
#z/lat/lng/sport/colorURLs, responsive layout, resolution badge + About modal.Evidence
Before:
mainonly contained README + gitignore.After (fresh full run on this branch):
make test→ 40 Rust tests + 17 Vitest + 3 Playwright browser tests, all passing; svelte-check 0 errorscargo fmt --checkandcargo clippy -D warningscleanmake build→ single release binary embedding the frontend; serves the Vite bundle and a real anonymous Strava tile (200image/png)docker build+ container smoke:curl /api/config→{"authenticated":false,"maxZoom":11,…}, real tile 200 PNGX-Cache), ocean 404 negative cache, 10 concurrent identical requests → 1 upstream fetch, corrupt/truncated PNG never served, disk TTL not extended on promotion, failed cookie refreshes share one attemptIndependent whole-branch review completed; its three Important findings (truncated-PNG acceptance, TTL extension on disk promotion, refresh stampede on failure) are fixed RED→GREEN in
344039f.Merge Danger
Door: two-way — no data migrations, no external state; revert the merge and redeploy the previous image.
Blast Radius: new service only. Caveats for operators:
proxy/src/app.rs.MVP: heatmap viewer with Rust tile proxy and Svelte frontendto 🎉 MVP: heatmap viewer with Rust tile proxy and Svelte frontend