Commit Graph

113 Commits

Author SHA1 Message Date
GitHub Copilot ff8f5efabd Optimize screenshot updates using pyte dirty tracking
- get_screen_state() now returns has_changes flag indicating if screen changed
- pyte's dirty set tracks which rows have been modified since last read
- Screenshot handler returns cached SVG immediately when no changes detected
- Removed _screenshot_last_rendered_activity tracking (replaced by dirty flag)
- Added test for dirty flag behavior

Bump version to 0.1.16
2026-01-24 11:27:33 +00:00
GitHub Copilot 0cae07cba6 fix: complete pyte-to-Rich color mapping
Audited all color names from both libraries and added complete mappings:

pyte standard ANSI:
- brown -> yellow (pyte uses 'brown' for ANSI color 33)

pyte bright/AIXTERM colors:
- brightblack -> bright_black
- brightred -> bright_red
- brightgreen -> bright_green
- brightbrown -> bright_yellow
- brightblue -> bright_blue
- brightmagenta -> bright_magenta
- bfightmagenta -> bright_magenta (typo in pyte's BG_AIXTERM)
- brightcyan -> bright_cyan
- brightwhite -> bright_white

Also handles hex colors from 256-color and truecolor modes
by adding '#' prefix (e.g., 'ff8700' -> '#ff8700').

Bumps version to 0.1.15.
2026-01-24 11:23:01 +00:00
GitHub Copilot 0d53952ff7 fix: handle all pyte color formats for Rich compatibility
- Add 'brown' -> 'yellow' mapping (pyte uses 'brown' for ANSI yellow)
- Add helper function to convert hex colors (pyte outputs 'ff8700',
  Rich needs '#ff8700')
- Handles 256-color and truecolor (24-bit) ANSI codes properly

Bumps version to 0.1.14.
2026-01-24 11:21:09 +00:00
GitHub Copilot 4566d03aa5 chore: bump version to 0.1.13
Changes since 0.1.12:
- Fix pyte color name mapping for Rich compatibility
- Use session's actual screen state for screenshots
- Use requested dimensions when creating screenshot sessions
- Fix terminal lifecycle race conditions
2026-01-24 11:17:55 +00:00
GitHub Copilot 4f8c7d88d5 fix: repair broken tests and remove unused dependencies
Test fixes:
- Fix app_session.py to use 'textual-webterm' package name (not 'textual-web')
- Fix CLI version test to not hardcode version number
- Fix static path test to not use removed Path._flavour attribute

Removed unused dependencies:
- xdg
- msgpack
- httpx

All 209 tests pass with 86% coverage.
2026-01-24 10:40:26 +00:00
GitHub Copilot f9196da9f8 fix: use pyte+Rich hybrid for colored SVG screenshots
Screenshots now properly preserve terminal colors:
1. Replay buffer provides raw ANSI data with color codes
2. pyte interprets escape sequences for accurate screen state
3. Rich renders the pyte buffer with colors to SVG

This gives us both accurate terminal state (no creeping/wrapping)
and proper color preservation in screenshots.

Bumps version to 0.1.12.
2026-01-24 10:37:54 +00:00
GitHub Copilot 33da0e335c fix: use pyte terminal emulator for screenshot rendering
Replaces simple carriage return handling with pyte terminal emulator
to properly interpret all ANSI escape sequences including cursor
positioning. This fixes the tmux status bar 'creeping up' issue in
screenshots.

Adds pyte dependency to pyproject.toml.

Resolves TODO item #2.
2026-01-24 10:23:31 +00:00
GitHub Copilot d03f32bf69 Improve local_server and terminal_session coverage 2026-01-22 14:09:34 +00:00
GitHub Copilot 0cfb3b0a2f Include app/terminal/exit modules in coverage 2026-01-22 13:49:50 +00:00
GitHub Copilot 8f252adc27 Increase local_server test coverage 2026-01-22 13:40:59 +00:00
GitHub Copilot f4f944b391 Bump version to 0.1.10 2026-01-22 00:38:23 +00:00
GitHub Copilot 20d33a97f8 Fix terminal font fallback 2026-01-22 00:34:11 +00:00
Rui Carmo a0e31d43fd merge 2026-01-21 23:53:57 +00:00