- fix(pwa): iOS keyboard gap caused by WebKit viewport-fit=cover bug.
After keyboard open/close, 100dvh permanently shrinks. Track max
innerHeight in --app-height CSS variable as stable replacement.
- feat(pwa): auto-prompt notification permission on first login in
standalone mode (once only, skips if denied).
- refactor: remove duplicate notification toggle from header menu
(already in Settings).
- feat(dev): expose Vite dev server on network (host: true) for
mobile testing via Tailscale.
- docs: update README — add Task Progress FAB, fix notification
flow description, document OPENAI_API_KEY / VAPID_EMAIL env vars,
clarify voice input backends, add CLI --version/--help, update
.env.example.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- New Chat → Chat uses replaceState so back skips new chat screen
- Active tab persisted to sessionStorage, restored on back navigation
- Scroll-to-bottom button positioned relative to footer (not hardcoded)
- overscroll-behavior: none to prevent iOS rubber-band
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove useVisualViewport hook (keyboard gap is iOS browser behavior, not a bug in PWA)
- Header: absolute overlay with translateY animation (no content jump)
- Header: hide during scroll, show after 1s stop, stay visible at bottom
- Scroll-to-bottom: smooth animation with isAutoScrolling guard
- Icon: ArrowDownToLine replaces ChevronDown
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- New round starts when all tasks complete before next TaskCreate
- FAB counts only current round (e.g. 0/4 instead of 20/24)
- Bottom sheet: current round on top, collapsible "Previous tasks" history
- O(1) Set lookup for history filtering
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add TaskAggregator (server/stores) to unify TaskCreate/TaskUpdate/TodoWrite
- Broadcast task-state snapshots via new WS event on tool events + reconnect
- TaskFab: SVG progress ring with fade-out on completion, reappears on new tasks
- TaskBottomSheet: full task list with dependencies, activeForm, expandable description
- Remove inline TodoWrite rendering (TaskProgress), filter task tools from chat flow
- Rebuild task state from JSONL history on server restart/reconnect
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 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>
- Add favicon.ico, favicon-32x32.png, favicon-16x16.png
- Add dedicated maskable-512x512.png with safe-zone padding for Android adaptive icons
- Add iOS splash screens for 5 common device sizes (excluded from SW precache)
- Add NetworkFirst runtime caching for stable API routes (excludes volatile endpoints)
- Add safe-top inset to all view headers for PWA standalone mode
- Bump version to 0.2.2
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace old finger-tap icons with pixel-art claw icons matching the
current ClawTap branding. Bump version to 0.2.1.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Multi-adapter mobile UI for AI coding assistants.
Supports Claude Code, Codex CLI, and Gemini CLI through one interface.
Features:
- Real-time bidirectional sync via tmux + WebSocket
- Cross-AI review (send one AI's output to another for review)
- Multi-review tabs with minimize/expand
- Push notifications (PWA) with smart session-aware filtering
- Three-channel event system (hooks, file watcher, pane monitor)
- Voice input, image paste, draft persistence
- Terminal-native design (JetBrains Mono, dark theme, pixel art claw)
- CLI with --adapter flag on every command
- Zero-overhead fire-and-forget hooks