Integrates ghostty-web and node-pty packages, adds tmux session recovery on startup,
refactors WebSocket transport to noServer mode, caches Sherpa voice model assets via
service worker. Large assets (sherpa, ghostty-vt.wasm, fonts) are now gitignored as
they are copied from the webterm project.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add a dedicated plan-approval bottom sheet (interactive-prompt) driven by
ExitPlanMode's now-4-option layout (Claude Code v2.1.177), with
approve/YOLO/reject/feedback wired through respondPlan(requestId).
- PermissionManager: stop auto-expiring AskUserQuestion/plan prompts and stop
releasing pending prompts on client disconnect — they reflect real CLI
state and must survive reconnects.
- Detect server-rejected tokens (401/403 or failed WS handshake) and bounce
back to the login screen via a new AUTH_EXPIRED_EVENT.
- Add `/cert` endpoint + Settings entry so phones can download/trust the
self-signed HTTPS cert directly; fix cert IP detection on non-macOS hosts.
- Add `clawtap reset-login` command and `/api/auth/reset-attempts` endpoint
to clear login rate-limit lockouts.
- Codex adapter: only forward recognized keystrokes/option indices to tmux,
never the synthetic "deny" dismissal signal.
- PWA: actively poll for service-worker updates (iOS standalone apps don't
reliably check on navigation).
- update-service.sh: install tmux if missing, prompt to create the env file
instead of failing, add --skip-firewall, and improve logging.
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