Commit Graph
83 Commits
Author SHA1 Message Date
DebianandSisyphus c636557849 Sync rosters at match start, harden dedup and TIME handling, add scoreboard and damage summary
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-18 13:04:34 +02:00
DebianandSisyphus 43758f980c Run the roster seeder after cvar handling so credential responses survive
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-18 12:43:19 +02:00
DebianandSisyphus c9487b954a Seed the player roster from a status dump on connect and map change
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-18 12:33:59 +02:00
DebianandSisyphus c5e0bc3f01 Track roster connects and disconnects from the stats stream
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-18 12:30:12 +02:00
DebianandSisyphus b69cc38cce Consume every LIVESTATS heartbeat variant and show them all only with -v
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-18 12:26:42 +02:00
DebianandSisyphus 17dd04857f Announce the winner of aborted matches too, only restarts stay silent
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-18 12:20:46 +02:00
DebianandSisyphus ca1666f3a5 Ignore docs build artifacts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-18 12:19:29 +02:00
DebianandSisyphus be7c3aec56 Track vote subjects and authoritative player scores in game state
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-18 12:19:29 +02:00
DebianandSisyphus 38f1446cde Announce forfeited match winners and show LIVESTATS lines only with -v
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-18 12:19:23 +02:00
DebianandSisyphus c08db27b57 Suppress all status debris in the window instead of shape-matching chunks
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 23:36:53 +02:00
DebianandSisyphus 73e503e863 Hide status output chunks behind a suppression window opened by the status echo
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 23:31:46 +02:00
DebianandSisyphus 3bc84ba3f2 Catch status rows in all arrival modes: wrapped, colored and split fragments
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 23:24:46 +02:00
DebianandSisyphus d188c6a506 Match RCON output shapes on color-stripped text so status rows hide correctly
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 23:07:41 +02:00
DebianandSisyphus 8eccfefc75 Show client id and endpoint on connect/disconnect, gate command echoes behind -v
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 22:04:47 +02:00
DebianandSisyphus e834b44ba6 Hide RCON command output but keep command echoes from other clients
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 21:47:25 +02:00
DebianandSisyphus 9ea4aa122a Make server name learning opt-in to avoid lagging the game server
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 21:35:10 +02:00
DebianandSisyphus 190152733e Add timestamps to game events and connection messages
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 21:31:31 +02:00
DebianandSisyphus b8864ca8dd Stop double-formatting stats stream events
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 21:27:28 +02:00
DebianandSisyphus b641eb4e45 Fix scroll-hold drift, ignore input while too small and redraw scrolls immediately
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 21:27:28 +02:00
DebianandSisyphus 71bd740d78 Bound listing capture and accept all server count-line formats
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 21:27:27 +02:00
pfl 3d1dc19d9b Learn cvar and command names from the server for autocomplete
Send cvarlist and cmdlist on connect and merge the answer into the
autocomplete candidates. Number the server menu from 0, keep suggesting
sibling commands while the command name is typed, mask the password in
the startup line, ignore venv/, fix README claims.
2026-09-16 18:25:48 +02:00
pfl db123993c0 Rework TUI: single-threaded curses, scrollback buffer, server menu
- All curses drawing on the main thread; stdin polled together with the
  ZMQ sockets, Ctrl-C only sets a flag
- Output kept in a 2000-line buffer and redrawn from it, so resizes keep
  the history; PgUp/PgDn and mouse wheel scroll it
- Messages without trailing newline continue the current line (status
  table columns arrive as separate messages)
- Too-small terminal shows a warning instead of exiting
- Start without arguments shows a server selection menu
- Colors on the terminal default background; version 0.9.0
2026-09-16 17:01:51 +02:00
DebianandSisyphus 0613d380a4 Add graceful shutdown, reconnect handling and config file integration
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-13 14:00:16 +02:00
DebianandSisyphus 3213bb38b4 Handle undersized terminals and wire autocomplete/history options
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-13 14:00:16 +02:00
DebianandSisyphus 271637ee71 Add config getters for logging, history and behavior settings
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-13 14:00:16 +02:00
DebianandSisyphus 5b90d66276 Remove dead code, fix cvar argument type and add player name helper
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-13 14:00:13 +02:00
DebianandSisyphus e47badb7b3 Harden JSON event parsing and broadcast message formatting
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-13 14:00:13 +02:00
DebianandSisyphus 15d461c234 Fix ZMQ socket monitor leak and guard monitor recv against races
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-13 14:00:13 +02:00
xbl 18bfa4b88e modified: install.sh 2026-06-14 14:50:05 +02:00
xbl ed78238ddc modified: install.sh 2026-06-14 14:43:50 +02:00
xbl bd0a2d4f38 modified: install.sh 2026-06-14 14:41:16 +02:00
xbl 0f84feead8 modified: install.sh 2026-06-14 14:36:15 +02:00
xbl fb19b09a43 modified: main.py 2026-06-14 14:34:10 +02:00
xbl e163e988f2 modified: install.sh 2026-06-14 14:29:28 +02:00
xbl d1f6e15bdb modified: install.sh 2026-06-14 14:24:35 +02:00
xbl b87ac01d83 modified: install.sh 2026-06-14 14:16:42 +02:00
xbl d14c268178 modified: install.sh 2026-06-14 14:15:44 +02:00
xbl a87533fead deleted: AUTOCOMPLETE.md
modified:   README.md
	modified:   install.sh
2026-06-14 13:59:16 +02:00
xbl 0666d33749 modified: README.md 2026-06-13 10:24:21 +02:00
xbl 29c613877d deleted: qlpycon.bash
deleted:    test_ui.py
2026-06-13 10:23:34 +02:00
xbl 7ca9795a39 modified: .gitignore
modified:   README.md
	new file:   install.sh
	renamed:    config.py -> lib/constants.py
	renamed:    cvars.py -> lib/cvars.py
	renamed:    formatter.py -> lib/formatter.py
	renamed:    network.py -> lib/network.py
	renamed:    parser.py -> lib/parser.py
	renamed:    qlpycon_config.py -> lib/settings.py
	renamed:    state.py -> lib/state.py
	renamed:    ui.py -> lib/ui.py
	modified:   main.py
	modified:   qlpycon.bash
	new file:   qlpycon.conf.example
2026-06-13 10:21:29 +02:00
xbl be6ae8d137 modified: qlpycon.bash 2026-06-12 20:52:10 +02:00
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 f1ed9c3d2c Add UI test mode script 2026-01-09 15:02:03 +01:00
pfl 4ac9432db9 Ignore CLAUDE*.md files 2026-01-09 14:59:53 +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 a03b4b0b93 Add missing Quake Live commands to autocomplete
- Match control: readyall, allready, abort, pause, unpause, lock, unlock, timeout, timein
- Player management: shuffle, put, mute, unmute, slap, slay
- Server control: restart, endgame, nextmap, forcemap
- QLX commands: qlx, elo, balance, teams, scores
- Info commands: serverinfo, players, maplist, configstrings

Total commands increased from 18 to 47
2026-01-09 14:23:50 +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