- Enable native mobile pinch-zoom by rewriting the viewport meta.
- Strip Content-Security-Policy / X-Frame-Options from HTML responses
so heatmap.jeffemmett.com can be iframed in.
- On /explore: inject a collapsible heatmap iframe at the top, and
replace People + Places sections (truncated grid with 'view more')
with horizontally-scrollable strips fetched from /api/people and
/api/search/cities.
- Re-run injection on history pushState + MutationObserver to cover
Svelte SPA route changes.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
server.js: hash live-search.js into INJECT_VERSION, expose
/api/custom/inject-version, set no-store on HTML so inline version
tag stays fresh.
live-search.js: compare baked window.__LS_VERSION vs server version
every 2 min + on visibility change; show banner, auto-unregister
service worker, clear caches, and reload when a new version ships.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Hijacks #location-selection in Immich's search filter modal: hides
country/state/city comboboxes, injects a text input that opens the
live-search overlay directly in map view for pan/zoom exploration.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds immich-proxy (search-app) with live search injection, WebSocket
proxying for socket.io, and 10GB upload buffering via Traefik middleware.
Moves Traefik routing from immich-server to proxy. Updates valkey 8→9.
Adds backlog tasks for drone sync and Syncthing reconnection.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>