417 Commits

Author SHA1 Message Date
GitHub Copilot 349574ff6e Document docker label handling and theme fallbacks 2026-01-29 19:31:32 +00:00
GitHub Copilot 348abac485 Bump version to 1.1.19 2026-01-29 19:25:16 +00:00
GitHub Copilot df06898739 Log screen update failures 2026-01-29 19:25:12 +00:00
GitHub Copilot 635a6e018e Bump version to 1.1.18 2026-01-29 19:24:30 +00:00
GitHub Copilot 147dd3fc16 Close Docker sockets on errors 2026-01-29 19:24:26 +00:00
GitHub Copilot e813e703be Bump version to 1.1.17 2026-01-29 19:18:59 +00:00
GitHub Copilot 3ee35b54f5 Support containers with either webterm-command or webterm-theme label
Previously, only containers with the webterm-command label were detected
by the Docker watcher. Now containers with webterm-theme label (but not
webterm-command) are also picked up and use the default auto command.

Changes:
- Add _has_webterm_label() helper to check for any webterm label
- Update event handler to use the new helper
- Update _get_labeled_containers() to query for both labels
- Add tests for theme-only label detection
2026-01-29 19:18:55 +00:00
GitHub Copilot 30e9bbed4d Bump version to 1.1.16 2026-01-29 19:13:44 +00:00
GitHub Copilot d5343117d3 Filter DA1 responses from replay buffer on WebSocket connect
The replay buffer can contain DA1/DA2 terminal attribute responses
(e.g., \x1b[?1;10;0c) that were captured before filtering was added
to the session classes. These responses appear as visible text like
'1;10;0c' when sent to the client on reconnect.

This adds an additional filter pass when sending the replay buffer,
ensuring no DA1 responses reach the client regardless of when they
were captured.
2026-01-29 19:13:40 +00:00
GitHub Copilot 3c4e62b572 Bump version to 1.1.15 2026-01-29 19:09:01 +00:00
GitHub Copilot 2366ca402c fix: add DA1 response filtering to TerminalSession
The docker exec commands were using TerminalSession (via pty.fork), not
DockerExecSession. Added the same DA1/DA2 response filtering to both
session types to prevent escape sequence fragments from being displayed.
2026-01-29 19:08:56 +00:00
GitHub Copilot 83b3426a64 Bump version to 1.1.14 2026-01-29 19:07:02 +00:00
GitHub Copilot 4420e77d6a fix: resolve CSS variables in font-family before passing to Canvas
The data-font-family attribute was set to 'var(--webterm-mono)' but Canvas 2D
context doesn't understand CSS variable syntax. Now we resolve the variable
using getComputedStyle before passing to ghostty-web Terminal.
2026-01-29 19:06:57 +00:00
GitHub Copilot 4620bd8364 Bump version to 1.1.13 2026-01-29 18:54:55 +00:00
GitHub Copilot 19f455d293 fix: font initialization and DA1 response filtering
- 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
2026-01-29 18:54:50 +00:00
GitHub Copilot 31ff91dcc3 Bump version to 1.1.12 2026-01-29 18:39:14 +00:00
GitHub Copilot 3a6f797e84 fix: font stack, sparklines, and DA1 response issues
- 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
2026-01-29 18:38:49 +00:00
GitHub Copilot 6ad9bc9ad0 Bump version to 1.1.11 2026-01-29 18:23:48 +00:00
GitHub Copilot 83bbd65c49 fix: terminal rendering and dashboard issues
- 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)
2026-01-29 18:23:44 +00:00
GitHub Copilot 074832cff2 fix: CI/CD + server bugs 2026-01-29 17:51:51 +00:00
GitHub Copilot bde95d3d3e Bump version to 1.1.10 2026-01-29 17:51:16 +00:00
GitHub Copilot 7463fbead5 Bump version to 1.1.9 2026-01-29 17:25:28 +00:00
Rui Carmo 66df66a200 Update README with blog post link
Added a link to a related blog post for more context.
2026-01-29 16:57:39 +00:00
GitHub Copilot f0e11ecc7d Bump version to 1.1.8 2026-01-29 13:18:31 +00:00
GitHub Copilot 8dc16b59e2 Add Docker exec PTY sessions 2026-01-29 13:18:31 +00:00
GitHub Copilot 74a2e31a55 Bump version to 1.1.7 2026-01-28 22:54:31 +00:00
GitHub Copilot 5a59f054a2 Add workflow cleanup pruning 2026-01-28 22:53:17 +00:00
GitHub Copilot 770a08191b Bump version to 1.1.6 2026-01-28 21:12:04 +00:00
GitHub Copilot f0afcd2ed6 Persist dev dependencies in Makefile 2026-01-28 21:11:38 +00:00
GitHub Copilot 2f64968231 Add typeahead search previews 2026-01-28 21:09:36 +00:00
GitHub Copilot 915c9d1cbd Bump version to 1.1.5 2026-01-28 20:35:24 +00:00
GitHub Copilot 6397c43e16 Add tango theme and make it the default
- 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
2026-01-28 20:34:12 +00:00
GitHub Copilot 3cf4b38f29 Bump version to 1.1.4 2026-01-28 20:16:07 +00:00
GitHub Copilot 126a4bc712 Fix screenshot affecting terminal state in open sessions
- 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
2026-01-28 20:15:51 +00:00
GitHub Copilot 77288ff589 Bump version to 1.1.3 and fix CI/CD workflow 2026-01-28 19:55:40 +00:00
GitHub Copilot 52faeffb46 cleanup 2026-01-28 18:38:21 +00:00
GitHub Copilot b961459fc5 Merge branch 'main' of github.com:rcarmo/textual-webterm 2026-01-28 17:11:17 +00:00
GitHub Copilot 2e61b45ef1 Bump version to 1.1.2 2026-01-28 17:10:49 +00:00
GitHub Copilot 14234e2531 Bump version to 1.1.2 2026-01-28 16:53:36 +00:00
GitHub Copilot 3bc77d4a85 Bump patch version and fix xterm selection 2026-01-28 16:18:24 +00:00
GitHub Copilot b4d7f2e98a Bump minor version and update ghostty-web 2026-01-28 16:13:08 +00:00
GitHub Copilot 69f0e2748f Bump version and prevent screenshot deadlock 2026-01-28 13:30:21 +00:00
GitHub Copilot 216380405a feat: add Docker watch mode for dynamic container sessions
- 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
2026-01-28 12:45:02 +00:00
GitHub Copilot 0fad9e7353 docs: update for v1.0.0 release with ghostty-web
- Update ARCHITECTURE.md with ghostty-web details and native theme support
- Update ROADMAP.md marking migration complete
- Note patched ghostty-web fork from rcarmo/ghostty-web
- Document 11 built-in themes, IME support, smaller bundle size
- Bump version to 1.0.0
2026-01-28 11:20:06 +00:00
GitHub Copilot 793fe54a7f docs: update README noting ghostty-web replaces xterm.js
- Add note about patched ghostty-web fork with native theme support
- Document migration from xterm.js/Textual
- Update related projects section
2026-01-28 11:18:14 +00:00
GitHub Copilot b6bb994e8e feat: upgrade to ghostty-web 0.4.0-ime-fix from rcarmo/ghostty-web
- 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
2026-01-28 11:15:09 +00:00
GitHub Copilot 05d42d275f chore: bump version to 0.6.9 2026-01-28 10:14:17 +00:00
GitHub Copilot b15d27f853 perf: optimize color remapping with Uint32Array lookup
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.
2026-01-28 10:13:02 +00:00
GitHub Copilot d7d7a0d165 fix: correct GHOSTTY_DEFAULT_PALETTE to Tomorrow Night
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
2026-01-28 10:05:16 +00:00
GitHub Copilot e04e943e92 Add runtime palette patch for ghostty-web theme colors
- 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.
2026-01-28 09:59:37 +00:00