diff --git a/AGENTS.md b/AGENTS.md index d397502..3cf219f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -147,6 +147,8 @@ Set in Settings > Environment (super admin), not `.env`. `envs` (private; encryp ### PWA and notifications - Generated assets (manifest, icons, `offline.html`, `loading.html`) come from `bun run gen:favicon`, which reads `main.css`; outputs are committed. Shared paths in `src/data/pwa-data.ts`. +- **Install name:** app setting `install_name` (Settings > General, super admin). `handlePwaFile` rewrites the manifest's `name`/`short_name` per request (`namePwaManifest`), the root head uses it for iOS tags, the loading page's `` is the `{{name}}` placeholder. Devices pick up a new name only on reinstall. +- Notification `badge` is `icons/badge-96.png` (white silhouette; Android masks by alpha, so never the opaque app icon). Brave on Android has no WebAPK, so its notifications always carry Brave's name and icon. - `public/sw.js` is served `no-store`; navigations network-only (authenticated HTML never cached); `/api/`, `/ws`, `/media/`, `/computers/`, `/build-info.json` never intercepted. It never reloads on its own. In development the worker and caches are actively removed (`clear-development-service-worker.ts`, stub `/sw.js`). - **Precache (production):** a navigation without the current build cookie gets `loading.html`, which downloads all of `.bunext/public` into `cobble-assets-<build_id>`, verifies, sets the cookie and reloads (falls back to network on stall). React knows nothing of this. - Phone shell: rail is a slide-over below `md`; rail internals use the `@rail:` container variant, not viewport `lg:`. `LiveSocket` is remounted on online/pageshow/visibility since twui stops retrying after three attempts. Nothing is queued offline. diff --git a/public/icons/badge-96.png b/public/icons/badge-96.png new file mode 100644 index 0000000..b9011a0 Binary files /dev/null and b/public/icons/badge-96.png differ diff --git a/public/loading.html b/public/loading.html index a6dec0e..45bdf5b 100644 --- a/public/loading.html +++ b/public/loading.html @@ -5,8 +5,11 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" /> <meta name="theme-color" content="#fbfaf7" /> <meta name="robots" content="noindex" /> -<title>cobble +{{name}} + + +