Commit Graph

37 Commits

Author SHA1 Message Date
Greg Hendrickson
ff643e1265 Fix linting: remove trailing whitespace 2026-01-27 20:49:46 +00:00
Greg Hendrickson
d698caf846 Smooth two-step move interaction with visual feedback
- Type source square (e.g. E2), see piece selected (blue highlight)
- Legal destinations shown in green with dots
- Type destination to complete move
- ESC to cancel selection
- Click same piece to deselect
- Much smoother than typing full move
2026-01-27 20:37:36 +00:00
Greg Hendrickson
38c83fbe51 Large terminal-filling board with background shading
- Big board (7-char cells, 3 rows tall) for 80x40+ terminals
- Compact board (5-char cells, 2 rows tall) for smaller
- Dark square shading with ANSI 256-color backgrounds
- Better visual hierarchy and spacing
- Simpler prompt (>)
2026-01-27 20:35:31 +00:00
Greg Hendrickson
2ffb72a328 Clean Gambit-style board - simple ANSI, no Rich markup
- Simple box drawing characters
- Direct ANSI escape codes (no Rich markup issues)
- Dots on dark squares, empty on light
- White pieces bright white, black pieces yellow
- Clean single-line cells like Gambit
2026-01-27 20:30:59 +00:00
Greg Hendrickson
8f8888214a Beautiful big chess board with colors
- Auto-scales: big board for large terminals, compact for smaller
- Dark/light square colors with background shading
- White pieces in white, black pieces in yellow for contrast
- Unicode box-drawing characters for elegant borders
- Centered vertically and horizontally
- Better status display
2026-01-27 20:27:44 +00:00
Greg Hendrickson
1663fe965e Fix: remove invalid set_terminal_size_handler call 2026-01-27 20:24:28 +00:00
Greg Hendrickson
6120a83180 Fix terminal size detection + proper resize handling
- Connect resize handler to process channel
- Re-fetch terminal size before each render
- Improved screen clearing to remove artifacts
- Added debug logging for terminal size changes
2026-01-27 20:17:20 +00:00
Greg Hendrickson
d5b187fdd5 Fix scope error + proper vertical/horizontal centering
- Remove leftover console.print that caused scope error
- Consolidate all board rendering into render_board function
- Add vertical centering based on terminal height
- Board now properly centers in any size terminal
2026-01-27 18:55:43 +00:00
Greg Hendrickson
ed484e27a2 Simplify chess board rendering - plain text that works over SSH
- Remove complex Rich styling from board (caused rendering issues)
- Use simple ASCII box drawing (+---+) instead of Unicode box chars
- Use dots for dark squares, spaces for light
- Plain text status display
- Much more reliable over SSH terminals
2026-01-27 18:53:54 +00:00
Greg Hendrickson
e3915f1b33 Fix Rich markup errors + add UI rendering tests
- Fix mismatched closing tags in menu markup
- Use Text() objects for safe string rendering
- Add comprehensive UI render tests that catch markup errors
- Tests cover: menu, game status, chess board, narrow terminals
- CI will now catch these before deployment
2026-01-27 18:50:21 +00:00
Greg Hendrickson
39afbadf91 Persist SSH host key across restarts
- Remove key generation from Dockerfile (was causing new key each build)
- Add ssh_keys volume mount in docker-compose
- Generate key at runtime only if it doesn't exist
- No more clearing known_hosts after updates!
2026-01-27 18:46:13 +00:00
Greg Hendrickson
0ada6cb418 Improve menu UI - better styling, table layout, color badges 2026-01-27 18:44:44 +00:00
Greg Hendrickson
788393a46f Fix ASCII art title - use simple ASCII for terminal compatibility 2026-01-27 18:42:52 +00:00
Greg Hendrickson
19a7fcfb0e Fix: remove invalid set_terminal_size_handler call
asyncssh SSHServerProcess doesn't have that method. Simplified
input handling - now updates size on each keypress instead.
2026-01-27 18:41:12 +00:00
Greg Hendrickson
1b0b093895 Fix terminal resize crash, improve TUI scaling & styling
- Add TerminalSession class with proper resize handler
- Fix crash when terminal is resized
- Add ASCII art title for wide terminals
- Better centered panels with Rich
- Green chess board theme with proper piece colors
- Stockfish AI integration (falls back to random moves)
- Move history display
- Responsive layout that adapts to terminal size
- Hide/show cursor appropriately
2026-01-27 18:37:56 +00:00
Greg Hendrickson
692c6c92dc fix: encode strings to bytes for binary SSH + use port 22 2026-01-27 18:17:47 +00:00
Greg Hendrickson
730f2eb37a fix: use simple menu directly (Textual over SSH unreliable) 2026-01-27 18:14:04 +00:00
Greg Hendrickson
db1ce55c2c feat: robust SSH with fallback menu + comprehensive tests
- Add fallback Rich-based menu when Textual fails
- Working chess game via simple terminal UI
- Proper PTY/terminal handling for SSH
- Added pytest test suite:
  - SSH auth tests (no-auth, accept any)
  - Mode selection tests (play/learn/watch)
  - Chess board widget tests
  - Move validation tests
  - Game state detection tests
- CI workflow for GitHub Actions
- Run tests with: pytest tests/ -v
2026-01-27 18:08:57 +00:00
Greg Hendrickson
0e9597020a fix: enable fallback auth methods for compatibility
Accept any password/key as fallback for clients that still try auth
2026-01-27 18:05:02 +00:00
Greg Hendrickson
b9eff6705d fix: enable zero-auth SSH connections
- Return False from begin_auth to skip authentication
- Users can connect instantly without password/key prompts
- Frictionless: just ssh play@shellmate.sh
2026-01-27 18:01:48 +00:00
Greg Hendrickson
795fb73734 feat: hyper-polished chess board rendering
- Auto-fit to terminal size with dynamic cell sizing
- Refined color palette (sage/forest green squares)
- Gold highlights for selected squares
- Perfect border alignment with box-drawing chars
- Double-line outer borders for polish
- Compact mode auto-triggers on small terminals
- Better piece visibility with bold rendering
- Improved sidebar layout and sizing
2026-01-27 17:58:54 +00:00
Greg Hendrickson
58a00c9d2e revert: use port 2222 to avoid host SSH conflict 2026-01-27 17:31:06 +00:00
Greg Hendrickson
67cb1b302c chore: switch to port 22 for cleaner SSH URLs 2026-01-27 17:23:37 +00:00
Greg Hendrickson
4b4a65fa96 fix: SSH key permissions and configurable port 2026-01-27 17:19:05 +00:00
Greg Hendrickson
202e98fbfd fix: use Python 3.12 in Dockerfile 2026-01-27 17:17:52 +00:00
Greg Hendrickson
22d4967fea fix: Dockerfile copy README and src 2026-01-27 17:17:26 +00:00
Greg Hendrickson
f9f2af449a Create CNAME 2026-01-27 17:11:58 +00:00
Greg Hendrickson
283ecda5b5 Delete CNAME 2026-01-27 17:11:52 +00:00
Greg Hendrickson
319eacd8df chore: trigger cert provisioning 2026-01-27 16:20:00 +00:00
Greg Hendrickson
63dc8deaf8 feat: complete TUI with playable chess game vs AI 2026-01-27 15:30:39 +00:00
Greg Hendrickson
732d4eb33f feat: premium landing page with animations and modern design 2026-01-27 15:27:05 +00:00
Greg Hendrickson
a5189d4a7c feat: add landing page for shellmate.sh 2026-01-27 15:16:59 +00:00
Greg Hendrickson
d9ed17b3e0 chore: bump to latest package versions (Python 3.12+) 2026-01-27 15:15:55 +00:00
Greg Hendrickson
f3a95d8767 Add CI/CD pipeline and SDLC docs 2026-01-27 15:13:28 +00:00
Greg Hendrickson
5135f0dd4d Update branding to shellmate.sh 2026-01-27 15:12:59 +00:00
Greg Hendrickson
eb64e73ae1 Update branding: shellmate.md 2026-01-27 15:12:09 +00:00
Greg Hendrickson
95471924a4 Initial scaffold for ShellMate - SSH chess TUI 2026-01-27 15:11:08 +00:00