4 Commits (efb0be78967f3872a041679814ae1b1c951b9947)

Author SHA1 Message Date
I Luk Kim efb0be7896 feat: Claude mode UI improvements and stability enhancements
Claude mode view:
- Context-aware action row replaces all-keys row in Claude mode
  (mode pill, stop button, arrows; selection→option buttons; thinking→pulsing stop)
- Thinking block detection and pulse animation
- Response/text blocks preserve ANSI colors via ansiToHtml()
- Tool-use body collapsible for long outputs (>5 lines)
- Context usage progress bar in status bar (green/yellow/red)
- Mode pill group shows all 3 modes with active highlight + pop animation
- Selection options show focused state and keyboard shortcut hint
- Prompt turn boundaries with visual spacing

Stability:
- WebSocket heartbeat (app-level ping/pong, 15s timeout)
- WS max payload 1MB limit
- Auth rate-limit map periodic cleanup
- Socket connection timeout (10s)
- Terminal line buffer cap (10,000 lines)
- Password masking in console output

UX:
- Scrollback loading indicator
- Code/diff/tool-result copy buttons
- Collapsible tool results (>8 lines)
- Modifier key box-shadow transition

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 months ago
I Luk Kim e411ab38db feat: auto-load scrollback on scroll-to-top, CLI packaging, misc fixes
- Auto-request scrollback history when user scrolls to top of terminal
- Preserve scroll position when prepending scrollback content
- Add files/prepublishOnly to package.json for npm install -g support
- Suppress url.parse() deprecation warning from Express internals
- Fix reconnect: re-subscribe to surface after auth-ok on reconnect
- Improve iOS background recovery with visibility API + elapsed check
- Harden ANSI stripping to handle OSC and other escape sequences

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5 months ago
I Luk Kim 5b9780fafb feat: Claude mode UI, status indicators, IME fix, tunnel support
- Add Claude Code parsed view with block-based rendering (prompt, tool-use,
  tool-result, code, diff, table, selection options, status bar)
- Add session status dots in sidebar and top bar (idle=yellow, working=green
  with pulse animation) parsed from terminal title characters
- Differentiate active input prompt vs previous submitted prompts with
  distinct background colors
- Fix Korean IME composition issue (last character on next line on Enter)
- Fix CSP inline script violation by moving to external sw-unregister.js
- Add per-block DOM diffing to prevent layout shifts on re-render
- Strip box-drawing borders from tool-result blocks for stable layout
- Add ngrok tunnel support, replace qrcode with qrcode-terminal
- Add Claude-specific keyboard action bar with mode toggle and shortcuts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5 months ago
I Luk Kim 8bcd7eacd8 feat: initial commit with UX improvements
Add full project including 12 UX improvements: wider gesture edge zone (50px),
prefers-reduced-motion support, additional shortcut keys (^A ^E ^R ^W ^U) and
PageDown, Escape to close sidebar, haptic feedback, key repeat for arrow keys,
sidebar loading/empty state, login loading state, reconnect status indicator,
terminal dim on disconnect, QR modal focus management, and desktop keyboard toggle.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 months ago