fix: PWA manifest was never linked, icons 404'd; add install prompt (v0.64.0)

layout.tsx pointed <link rel="manifest"> at /manifest.json, but the
actual generated route (app/manifest.ts) serves at
/manifest.webmanifest -- the manifest was silently never picked up.
Its icons also referenced icon-192.png/icon-512.png, which don't
exist (only the .svg versions do). Both together meant Chrome/Android
install eligibility was broken with no visible error.

Also adds apple-mobile-web-app meta tags + viewport-fit=cover for
iOS home-screen installs, and a dismissible install banner driven by
the standard beforeinstallprompt event (Chromium-only by spec).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Arnaud
2026-07-20 23:55:22 +02:00
parent b17984fbef
commit 5f270dee08
7 changed files with 97 additions and 6 deletions
+12 -1
View File
@@ -1,5 +1,5 @@
// Mirrors CHANGELOG.md at the repo root — update both together.
export const APP_VERSION = "0.63.0";
export const APP_VERSION = "0.64.0";
export type ChangelogEntry = {
version: string;
@@ -11,6 +11,17 @@ export type ChangelogEntry = {
};
export const CHANGELOG: ChangelogEntry[] = [
{
version: "0.64.0",
date: "2026-07-21 00:30",
fixed: [
"The web app manifest was never actually linked into the page (pointed at /manifest.json, but the real route is /manifest.webmanifest) and its icons referenced PNGs that don't exist in the repo — both silently broke install eligibility on Chrome/Android. Manifest now links correctly and icons point at the existing SVGs.",
],
added: [
"Added apple-mobile-web-app meta tags and a viewport-fit=cover safe-area setting for iOS home-screen installs.",
"Added an install-app banner (Chrome/Edge/Android only, via the standard beforeinstallprompt event) so the PWA install prompt is a first-class, dismissible UI element instead of relying on the browser's own icon.",
],
},
{
version: "0.63.0",
date: "2026-07-21 00:15",