fix(pwa): audit fixes — safe-area, SW lifecycle, badge, tap highlight, update banner, precache

- Add safe-top to all full-screen overlays (PlanMode, DiffViewer, ChatView PlanViewer)
- Add safe-top to SessionsView drill-down header + swipe-back via pushState
- Move safe-top to ChatView outer container (persists when header hides)
- Add skipWaiting + clients.claim for immediate SW updates
- Create monochrome 96x96 badge icon for Android notifications
- Add -webkit-tap-highlight-color: transparent for dark theme
- Show SW update banner on all views, not just SessionsView
- Fix precache duplicates with specific glob patterns (18→16 entries)
- Add safe-bottom to ChatView saveToast
- Fix stale poll interval comment (10s→3s)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
kuannnn
2026-03-28 04:47:53 +08:00
parent 9c2158961c
commit 299649738e
10 changed files with 67 additions and 36 deletions
+1 -1
View File
@@ -55,7 +55,7 @@ export function PlanMode({ input, onApprove, onApproveYolo, onReject, onSendFeed
if (showFull) {
return (
<div className="fixed inset-0 bg-bg z-50 flex flex-col">
<div className="flex items-center justify-between px-4 py-3 border-b border-border shrink-0">
<div className="flex items-center justify-between px-4 py-3 border-b border-border shrink-0 safe-top">
<Badge className="font-mono">PLAN</Badge>
<Button variant="ghost" size="icon" onClick={() => setShowFull(false)}>
<X className="size-4" />