- Use terminal.loadFonts() API for proper font re-measurement after web fonts load
- Add documentation referencing ghostty-web commit feab41f9a8e4491f
- Handle DA1 responses split across socket reads with escape sequence buffering
- Update Makefile push target to explicitly push current tag
- Restore terminal.options.fontFamily assignment for proper font stack handling
- Add dynamic service registration to DockerStatsCollector for docker watch mode
- Remove force_redraw on reconnect that caused DA1 responses to display as text
- Fix escape sequence display: filter DA1 responses that can be split across socket reads
- Fix font rendering: use ghostty-web renderer API (setFontFamily/remeasureFont)
- Fix sparklines: update slug-to-service mapping when containers are added/removed
- Improve typeahead thumbnails: increase to 96x72px (4:3 ratio)
- Add tango theme with GNOME/xterm.js default colors
- Change default theme from xterm (VGA) to tango
- Keep xterm theme available as classic VGA alternative
- Add get_screen_snapshot() method that doesn't mutate terminal state
- Use change counter for reliable activity detection instead of dirty flag
- Update screenshot handler to use non-mutating snapshot method
- Refactor tests to use shared fixtures and reduce duplication
- Update copilot-instructions.md with detailed Makefile usage
- Add --docker-watch CLI flag to watch for containers with webterm-command label
- Containers with label 'auto' get bash exec, otherwise use label as command
- Dynamic dashboard updates via SSE when containers start/stop
- Add /tiles endpoint for JSON tile list
- Multi-stage Dockerfile for minimal production image
- Update README with docker-watch documentation
The docker watcher monitors Docker events and automatically:
- Adds terminal tiles when labeled containers start
- Removes tiles when containers stop
- Notifies dashboard via SSE for live updates
- Vendor patched version with native theme/palette support at WASM level
- Remove color remapping patches (no longer needed)
- Pre-load Ghostty WASM before terminal creation
- Bundle size reduced from 1.16 MB to 0.67 MB
- Includes IME input fixes
Bump version to 0.7.0
Replace Map-based color lookup with Uint32Array hash table for O(1)
lookups without string allocation. Patch at WASM getLine level
(once per line) instead of renderCell (once per cell) for better
performance on high-throughput terminal output.
ghostty-web WASM uses Tomorrow Night as its internal default palette,
not VS Code Dark. Updated GHOSTTY_DEFAULT_PALETTE to match the actual
colors so theme remapping works correctly.
Bump version to 0.6.8
- Add color mapping from ghostty-web's default palette to custom themes
- Monkey-patch renderer.renderCell to remap fg/bg colors at runtime
- Fix THEME_BACKGROUNDS keys to match terminal.ts theme names
- Add debug logging for color remapping verification
This works around ghostty-web's hardcoded WASM palette by intercepting
cell colors before rendering and remapping them to the configured theme.
- Fix ITheme property: selection -> selectionBackground (ghostty-web compat)
- Add dynamic body background color matching theme
- Add THEME_BACKGROUNDS mapping in local_server.py
- Add tsconfig.json for TypeScript type checking
- Update Makefile to use bun run for all frontend commands
- Add typecheck script to package.json (make build now typechecks)
- Add detailed console tracing for theme debugging
- Store fontFamily/fontSize in WebTerminal class for cell measurement
v0.6.5
- Apply Ctrl modifier to letters typed via mobile keyboard (e.g., Ctrl+D sends 0x04)
- Apply Shift modifier to uppercase letters typed via mobile keyboard
- Apply modifiers to arrow keys and Tab in keydown handler
- Deactivate modifiers after key is sent
Bump to v0.6.3
- Add classic xterm theme with VGA colors and black background
- Add Monokai Pro theme (standard variant)
- Rename old monokai to ristretto (Monokai Pro Ristretto)
- Fix ristretto colors to match official palette
- Set xterm as default theme
- Bump version to 0.6.0