uwarp-space
2026-02-19
SSH transport added, multi-session modes implemented, binary parser layouts corrected with Hypothesis fuzzing
178 files · 15,035+ · 10,330-
SSH transport for game server
2 files changed
telnet.pySSH transport implemented alongside existing telnet__init__.pyServe command resolver updated to support SSH transport
- Implemented SSH transport for the game server (
feat: implement SSH transport for game server) instantiate internal1 file
telnet.py
- Merged PR #3 from
ssh-transport-proxybranch decouple internal2 files
telnet.py__init__.py
Multi-connection session modes
2 files changed
backend.pyWatch, Share, and Transfer session modes implemented_resolver.pySession mode resolution logic
Wire 17 remaining TEDIT config fields
5 files changed
agent.py17 remaining TEDIT configuration fields wired to actual gameplay logicbanking.pyBanking rules wired to TEDIT fieldsmovement.pyMovement rules wired to TEDIT fieldsrobbery.pyRobbery rules wired to TEDIT fieldstrading.pyTrading rules wired to TEDIT fields
Commerce report trading flow
2 files changed
trading.pyTW2002 commerce report trading flow implementedtrading.pyTrading analysis helpers for commerce report
- Implemented the TW2002 commerce report trading flow (
feat: implement TW2002 commerce report trading flow) instantiate internal2 files
trading.pytrading.py
Binary layout fixes — port class and sector records
2 files changed
sqlite.pySector record binary layout: port_id at offset 98, 7 warp slots (not 6)converters.pyPort class binary layout and buy/sell direction encoding corrected
- Corrected port class binary layout and buy/sell direction encoding
remediate
internal
1 file
converters.py
- Fixed sector record binary layout:
port_idat offset 98, 7 warp slots (not 6) remediate internal1 file
sqlite.py
- Fixed off-by-one in warp slot count throughout sqlite/parser code (6→7)
remediate
internal
1 file
sqlite.py
Port/sector index fix for GameD-style data
1 file changed
sqlite_store.pyPort-sector index improved for GameD-style data where port.sector_id = 0
TW2002 parity — combat, deploy, equipment, planet, corp, stats
6 files changed
combat.pyCombat output parity fixesdeploy.pyDeploy command parity fixesequipment.pyEquipment command parity fixesdisplay.pyDisplay command parity fixesmovement.pyM command shows warp list before prompting; duplicate Move header removedreports.pyStats display parity fixes
- Additional parity fixes covering combat output, deploy, equipment, planet display, corp prompt, and stats display
remediate
behavioral
3 files
combat.pydeploy.pyequipment.py
- M command now shows warp list before prompting for destination sector
decouple
behavioral
1 file
movement.py
- Removed duplicate Move header (game_loop already emits the label)
decouple
internal
1 file
display.py
Rate limiting and error loop detection
1 file changed
engine.pyPer-session rate limiting and error loop detection added
- Added per-session rate limiting to prevent flooding the game server
instantiate
internal
1 file
engine.py
- Added error loop detection to stop repeating bad command sequences
instantiate
behavioral
1 file
engine.py
Hypothesis property-based fuzzing
2 files changed
models.pyHypothesis-based property tests for player binary parseralien.pyHypothesis-based property tests for alien binary parser
Module splitting and code quality
3 files changed
_movement_helpers.pyMovement helpers extracted to keep movement.py under 500 LOC_management_helpers.pyPlanet management helpers extracted_purchases_helpers.pyPurchases helpers extracted
- Enforced 500 LOC limit per module; split large modules into focused submodules
decouple
internal
2 files
_movement_helpers.py_management_helpers.py
- Enforced no-logic
__init__.pyrule decouple internal2 files
__init__.py__init__.py
- Removed legacy/redundant fields from parser models
decouple
internal
1 file
models.py
TWGS cleanup
1 file changed
defaults.pySwarm config path fixed; test universe reset to GameD data with clean ship types