22 Commits

Author SHA1 Message Date
pfl
530c12d9c0 Fix curses error in print_colored at window boundaries
- Wrap all addch calls in try/except blocks
- Return early when hitting window boundary
- Prevents crash when content exceeds window dimensions
- Gracefully truncates output instead of throwing error
2026-01-09 15:13:52 +01:00
pfl
993ed4f051 Fix curses error when info window is full
- Wrap addstr newlines in try/except blocks
- Prevents crash when writing to window boundary
- Info window has scrollok=False, so cursor can't move beyond bounds
2026-01-09 15:11:19 +01:00
pfl
42b958acdb Add terminal resize handling
- Detect KEY_RESIZE event in input thread
- Recreate windows with new dimensions on resize
- Redraw all content after resize
- Add minimum terminal size check (20x80)
- Handle both expansion and shrinking gracefully
2026-01-09 15:08:44 +01:00
pfl
fbaa4564e4 Fix cursor position and live timer updates
- Track cursor position in UIManager.cursor_pos
- Restore cursor after print_message() and update_server_info()
- Sync cursor_pos between wait_stdin thread and manager
- Update server info panel every second for live timer display
- Timer now ticks continuously instead of only on game events
2026-01-09 14:58:05 +01:00
pfl
e6e32033ad Add live match timer countdown
- Add match_time_last_sync timestamp to track server updates
- Update timestamp in parser when TIME events received
- Calculate elapsed time in UI for live countdown
- Timer now ticks in real-time between server events
2026-01-09 14:00:32 +01:00
pfl
16b5209338 Fix exception handling in ui.py
- Replace 6 bare except: with except curses.error:
- Remove inline import logging, use module-level logger
- Improves safety by not catching KeyboardInterrupt/SystemExit
2026-01-09 13:56:14 +01:00
xbl
7d5210214a salidu 2026-01-09 13:17:30 +01:00
xbl
7c031d2cae featurz 2025-12-30 15:50:07 +01:00
xbl
40e868416e featurz 2025-12-30 00:50:24 +01:00
xbl
c7b6df9932 changey 2025-12-29 22:40:31 +01:00
xbl
1a57258a2d feat 2025-12-29 17:06:14 +01:00
xbl
bc4f62dcf8 lul 2025-12-29 14:00:21 +01:00
xbl
dbc4391be2 foxes 2025-12-29 08:41:07 +01:00
xbl
18cf31073f fixez 2025-12-29 08:05:47 +01:00
xbl
3f61ff1a06 foxes 2025-12-24 10:02:04 +01:00
xbl
53c0b3af55 improoove 2025-12-24 09:23:26 +01:00
xbl
d387a13855 laul 2025-12-23 22:32:49 +01:00
xbl
61a9425650 improoove 2025-12-23 22:13:52 +01:00
xbl
fbc6b596e2 colorz 2025-12-23 17:11:27 +01:00
xbl
c1e5a28b41 saved 2025-12-23 15:41:10 +01:00
xbl
c648a99439 sumting 2025-12-23 10:18:50 +01:00
xbl
a889898694 refactor 2025-12-23 09:37:42 +01:00