2435ef7961
Closes the discoverability gap on the in-app update flow — the /api/client/apk endpoint exists but had no web UI surface to find it. User asked to be able to "visit the site on my phone and download the apk from there." - web/src/lib/components/MobileAppDownload.svelte — fetches /api/client/version once on mount; renders a download link with version + size when 200; renders nothing on 404 (no APK bundled, graceful degradation in dev environments and pre-CI-wiring images). - Mounted on the login page (below the Register link) so the link is discoverable without authentication. The /api/client/* endpoints are themselves unauthed, so the flow works end-to-end for any visitor on a phone. - Also mounted in Settings → Mobile app section for logged-in users who want to grab the matching APK for sideloading on a different device. Browser handles the download via the server's existing Content-Disposition: attachment; filename="minstrel.apk" header. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>