13 Commits

Author SHA1 Message Date
izackp ea1ab6b2ce feat: add env-based auth config support 2026-05-12 12:03:00 -04:00
izackp ca870cc293 feat: add mobile virtual keyboard 2026-05-12 03:09:42 -04:00
izackp 3edc41e86c feat: add initial browser voice input prototype 2026-05-11 22:01:23 -04:00
izackp 3e0c9f87c8 feat: dock mobile keybar to bottom of screen with larger touch targets
The mobile keybar was a small floating overlay that obscured terminal
content. Now it's a full-width bar docked to the bottom using flexbox
layout, so the terminal shrinks to accommodate it. Buttons use 44px
height (Apple HIG recommended touch target) and evenly fill the width.
Also uses 100dvh for correct mobile viewport sizing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 04:06:45 -04:00
GitHub Copilot b6a9231b21 deps: update ghostty-web to fcc47d4 2026-02-26 20:43:19 +00:00
GitHub Copilot b03219401e deps: update ghostty-web to a5d8c7b 2026-02-26 20:31:02 +00:00
GitHub Copilot 982a68ea1c deps: update ghostty-web to bbdea28 (fixes stale selection highlight on click) 2026-02-26 20:16:40 +00:00
GitHub Copilot ce624f2966 Bump ghostty-web to 0.4.2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-19 15:59:26 +00:00
GitHub Copilot 153d6d1612 fix: bump ghostty-web to 0.4.1 with render loop resilience
Update ghostty-web to b0aa99e which wraps the requestAnimationFrame
render loop in try/catch. Previously, any exception in renderer.render()
or wasmTerm.getCursor() would silently kill the loop, permanently
freezing the terminal canvas while input continued to flow normally.

The fix ensures requestAnimationFrame is always re-scheduled and logs
errors to console for diagnosis. This addresses intermittent terminal
stalls that were not correlated with resize, focus, or user interaction.
2026-02-17 16:16:08 +00:00
GitHub Copilot 786cc4c80e Rebuild assets for mobile keybar updates 2026-02-03 20:21:00 +00:00
GitHub Copilot b4d7f2e98a Bump minor version and update ghostty-web 2026-01-28 16:13:08 +00:00
GitHub Copilot 3f6cfd4e96 Replace xterm.js with ghostty-web
Migrate from xterm.js to ghostty-web (Ghostty WASM terminal emulator).

Benefits:
- WASM-compiled parser from Ghostty (same code as native app)
- Better Unicode/complex script handling
- Simpler initialization (no viewport.scrollBarWidth issues)
- ~400KB WASM bundle

Changes:
- Update package.json: remove @xterm/* deps, add ghostty-web
- Rewrite terminal.ts using ghostty-web API
- Use built-in FitAddon with observeResize()
- Remove WebGL/Canvas/Unicode11/WebLinks/Clipboard addons
- Remove xterm.css (ghostty uses canvas renderer)
- Add ghostty-vt.wasm to static assets
- Update HTML template and tests

BREAKING: Major version bump to 0.4.0
2026-01-28 00:54:50 +00:00
GitHub Copilot 6f624b8565 Replace textual-serve with direct xterm.js 6.0 bundle
- Add package.json with @xterm/xterm 6.0 and all addons
- Create terminal.ts client with WebSocket protocol support
- Bundle with Bun (bun run build -> terminal.js)
- Remove textual-serve dependency from pyproject.toml
- Remove canvas monkey-patch workaround (no longer needed)
- Add scrollback support (configurable via data-scrollback)
- Update static file routing to serve from /static/
- Add Makefile targets: bundle, bundle-watch, bundle-clean
- Update tests for new static path structure

Benefits:
- Full control over xterm.js configuration
- Scrollback history now works (default 1000 lines)
- Custom font family without workarounds
- Smaller footprint (no unused Roboto Mono fonts)
- Latest xterm.js 6.0 features available
2026-01-25 12:45:50 +00:00