iOS install hint component #56

Member

Maestro task: ad6b3d80-9f41-40ac-8e2a-f786e1fa9777 (Feature 06 - PWA Shell and Offline, final task).

Done-condition

InstallHint renders only on iOS/iPadOS Safari when not standalone (display-mode: standalone and navigator.standalone both false), copy exactly "Tap Share, then Add to Home Screen to get notifications", dismissible and remembered per device, exported for onboarding step 3 and the Notifications screen. Vitest covers shown on iOS Safari tab, hidden when standalone, hidden on Android/desktop, dismissal persisted. Typecheck, test, build pass.

Evidence

  • New web/src/pwa/InstallHint.tsx + module.css + test.tsx, reusing Card/Icon/IconButton primitives; exported and intentionally not yet wired into any screen.
  • npm test: 29 files / 302 tests passed; npm run build passed (no Google Fonts check); gofmt -l . empty; no dependency added.
Maestro task: ad6b3d80-9f41-40ac-8e2a-f786e1fa9777 (Feature 06 - PWA Shell and Offline, final task). ## Done-condition InstallHint renders only on iOS/iPadOS Safari when not standalone (display-mode: standalone and navigator.standalone both false), copy exactly "Tap Share, then Add to Home Screen to get notifications", dismissible and remembered per device, exported for onboarding step 3 and the Notifications screen. Vitest covers shown on iOS Safari tab, hidden when standalone, hidden on Android/desktop, dismissal persisted. Typecheck, test, build pass. ## Evidence - New web/src/pwa/InstallHint.tsx + module.css + test.tsx, reusing Card/Icon/IconButton primitives; exported and intentionally not yet wired into any screen. - npm test: 29 files / 302 tests passed; npm run build passed (no Google Fonts check); gofmt -l . empty; no dependency added.
dev_agent added 1 commit 2026-10-05 08:19:49 -04:00
Add iOS install hint component
CI / ci (push) Successful in 1m34s
CI / ci (pull_request) Successful in 1m33s
ceccbda61d
InstallHint shows "Tap Share, then Add to Home Screen to get notifications"
only in iOS and iPadOS Safari browser tabs (not when display-mode is
standalone or navigator.standalone is true), since iOS delivers Web Push
only to installed apps. Dismissing it is remembered per device in
localStorage; when storage is unavailable the hint still shows and
dismisses for the page's lifetime. Exported from src/pwa/InstallHint.tsx
for onboarding step 3 and the Notifications screen.

Maestro task: ad6b3d80-9f41-40ac-8e2a-f786e1fa9777

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
review_agent requested changes 2026-10-05 08:23:03 -04:00
Dismissed
review_agent left a comment
Member

Independent Codex gpt-6-sol review: CHANGES_REQUIRED for this exact commit.

Independent Codex gpt-6-sol review: CHANGES_REQUIRED for this exact commit.
overseer added 1 commit 2026-10-05 08:27:34 -04:00
Tighten iOS Safari detection and report install hint storage failures
CI / ci (push) Successful in 1m33s
CI / ci (pull_request) Successful in 1m39s
695003c5f7
Detect Safari by its exact user agent tail instead of a "Safari/" token
plus an exclusion list, so third-party iOS browsers such as MQQBrowser
no longer get the hint. When storage cannot be read or written, keep the
hint visible and show an error banner with Retry instead of treating the
dismissal as saved.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
review_agent left a comment
Member

Independent Codex gpt-6-sol review: APPROVED for this exact commit.

Independent Codex gpt-6-sol review: APPROVED for this exact commit.
approver_agent merged commit 581ff217a9 into feature/ea4f47b4-6f1e-4735-a33e-6e91bf092564-pwa-shell 2026-10-05 08:35:36 -04:00
Sign in to join this conversation.
No Reviewers
No labels
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Maniacs_Mansion/MealQuest#56