Versioned cache-first for /js, /css, /fonts, manifest so the ~22 no-store assets (+~5MB fonts) aren't re-fetched through the tunnel on every load. Safe via the existing ?v= cache-busting URLs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude parsed view:
- Tables now require a real column-border row (┌┬┐/├┼┤); welcome/notice boxes
(rounded ╭╰, single │ column) no longer render as garbled tables
- Tighten code detection so log lines / prose with parentheses aren't boxed as code
- Status bar no longer eats prose/question lines containing a "·"; pull ctx%/model
from combined statuslines
- Renderer hashes full block content, so streaming updates re-render instead of
freezing ("parsed, then not")
- Left-normalize TUI lines shoved to the right on wide panes (text/response/tool
output only; code/tables/diffs untouched)
Scroll history:
- Stop the loader flash-loop once scrollback is exhausted (noMoreHistory guard)
- Keep the reading position on load; older content is revealed by scrolling up
further (preserve-position)
ngrok:
- No-cache pass-through service worker adds the ngrok-skip-browser-warning header
to navigations so the free-tier interstitial is skipped on revisits
(replaces the old caching SW; sw-unregister removed)
Send:
- Server awaits send_text before pressing Enter so the submit can't race the
bracketed paste (fixes "had to press Enter twice")
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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>