Commit Graph

69 Commits

Author SHA1 Message Date
GitHub Copilot bf54d44c7e Bump version to 0.2.3 2026-01-24 12:22:25 +00:00
GitHub Copilot 73c520b0c6 Bump version to 0.2.2 2026-01-24 12:16:28 +00:00
GitHub Copilot 231bf69b3d Bump version to 0.2.1 2026-01-24 11:59:40 +00:00
GitHub Copilot 901a2e4cfa Release v0.2.0
New features:
- CPU sparklines on dashboard showing 30-minute container history
- Real-time screenshot updates via Server-Sent Events
- Auto-focus terminals on page load
- Tab reuse when clicking dashboard tiles
- pyte-based screenshot rendering with proper ANSI interpretation
- Dirty tracking for efficient screenshot caching

Documentation:
- Updated README with new features and API endpoints
- Added Dashboard Features section
- Documented compose mode CPU sparklines
- Added API endpoints table

Technical improvements:
- Docker stats collection via Unix socket (no new deps)
- SSE endpoint for activity notifications
- Proper pyte-to-Rich color mapping
- Terminal lifecycle race condition fixes
2026-01-24 11:53:44 +00:00
GitHub Copilot 34aee378d9 Bump version to 0.1.18 2026-01-24 11:34:27 +00:00
GitHub Copilot 1f51d878c8 Add CPU sparkline to dashboard in compose mode
- New docker_stats.py module reads container stats from Docker socket
  using only asyncio + stdlib (no new dependencies)
- Calculates CPU % from delta of cpu_usage and system_cpu_usage
- Maintains ring buffer of last 30 CPU readings per container
- render_sparkline_svg() generates mini SVG chart from history
- DockerStatsCollector polls containers every 2 seconds
- New /cpu-sparkline.svg endpoint serves sparkline for a container
- Dashboard shows sparkline in tile header next to container name
- Only active in compose mode (--compose-manifest flag)
- Graceful degradation if Docker socket unavailable

Bump version to 0.1.17
2026-01-24 11:33:27 +00:00
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