You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implementation slice (a) of the #1254 design (note: doc/2026-11-01T03-54-00Z_design_pwa_push_notifications.md, PR #3314; epic #1184).
Make the PM aggregator installable as a PWA: web app manifest (name, icons incl. maskable + iOS sizes, theme/background, display standalone, start_url on the attention view), apple-mobile-web-app meta, and an install affordance in the UI where the platform supports one.
Hard constraint from the design (§6 of the note): /sw.js stays the kill switch in this slice — no service worker registration is added or changed here. iOS install must work without our own worker; Web Push itself is slice (b).
Acceptance:
Manifest served and valid (install prompt / Add to Home Screen works on Android + iOS from the tailnet origin)
Installed app opens standalone on the attention view, correct icons/theme on both platforms
/sw.js response is byte-identical to before this change
Design amendment (PR #3314 @76e898324, Codex P2): this slice also owns the Tailscale Serve HTTPS mapping for the aggregator — the current tailnet origin is plain HTTP, which is not a secure context, so installability and any later push subscription both require the Serve HTTPS origin first (config + README/topology docs).
agent-note:v1
state: triaged (coverage pass)
Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
Found via: coverage pass 2026-11-03
pm-stack/aggregator/src/render.ts:787 — layout meta: theme-color, mobile-web-app-capable, apple-mobile-web-app-capable, apple-touch-icon link
Install affordance: /alerts push panel with iOS Add-to-Home-Screen guide (render.ts:6892)
Tailscale Serve HTTPS amendment: PM_AGG_PUBLIC_ORIGIN defaults to https://amd-6.raptor-pumpkinseed.ts.net (src/config.ts:167); README documents the Serve mapping as the PWA origin
test/boot.test.ts:85 manifest test passes — bun test test/boot.test.ts: 12 pass / 0 fail
Activity
dezren39 commentedon Nov 1, 2026
Design amendment (PR #3314 @76e898324, Codex P2): this slice also owns the Tailscale Serve HTTPS mapping for the aggregator — the current tailnet origin is plain HTTP, which is not a secure context, so installability and any later push subscription both require the Serve HTTPS origin first (config + README/topology docs).
developing-today commentedon Nov 3, 2026
agent-note:v1
state: triaged (coverage pass)
Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
Found via: coverage pass 2026-11-03
dezren39 commentedon Nov 3, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 3, 2026
🤖 Agent note · triaged — already handled at current main
pm-stack/aggregator/src/server.ts:360—PWA_MANIFEST(comment: "feat(aggregator): PWA installability — manifest, icons, install affordance (#1254 slice a) #3315 slice a, landed with feat(aggregator): alert throat — sentinel incident intake, Supabase ledger, Web Push delivery + ack #3676"), start_url/attention, display standalone, icons incl. maskable; route/manifest.webmanifestat server.ts:1656pm-stack/aggregator/src/assets/icons/— icon-192, icon-512, icon-maskable-512, apple-touch-icon (+scripts/gen-icons.ts)pm-stack/aggregator/src/render.ts:787— layout meta: theme-color, mobile-web-app-capable, apple-mobile-web-app-capable, apple-touch-icon linkPM_AGG_PUBLIC_ORIGINdefaults tohttps://amd-6.raptor-pumpkinseed.ts.net(src/config.ts:167); README documents the Serve mapping as the PWA origintest/boot.test.ts:85manifest test passes —bun test test/boot.test.ts: 12 pass / 0 fail