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.py SSH transport implemented alongside existing telnet
  • __init__.py Serve command resolver updated to support SSH transport
  • Implemented SSH transport for the game server (feat: implement SSH transport for game server) instantiate internal
    1 file
    • telnet.py
  • Merged PR #3 from ssh-transport-proxy branch decouple internal
    2 files
    • telnet.py
    • __init__.py

Multi-connection session modes

2 files changed
  • backend.py Watch, Share, and Transfer session modes implemented
  • _resolver.py Session mode resolution logic
  • Implemented Watch, Share, and Transfer session modes for multiple simultaneous connections to the same game session decouple internal
    1 file
    • backend.py
  • Added end-to-end integration tests for multi-session mode flows qualify internal
    1 file
    • backend.py

Wire 17 remaining TEDIT config fields

5 files changed
  • agent.py 17 remaining TEDIT configuration fields wired to actual gameplay logic
  • banking.py Banking rules wired to TEDIT fields
  • movement.py Movement rules wired to TEDIT fields
  • robbery.py Robbery rules wired to TEDIT fields
  • trading.py Trading rules wired to TEDIT fields
  • All 17 remaining TEDIT configuration fields are now wired to actual gameplay logic decouple internal
    3 files
    • agent.py
    • banking.py
    • movement.py
  • Updated TEDIT wiring documentation to reflect 17-field integration decouple internal
    1 file
    • README.md

Commerce report trading flow

2 files changed
  • trading.py TW2002 commerce report trading flow implemented
  • trading.py Trading analysis helpers for commerce report
  • Implemented the TW2002 commerce report trading flow (feat: implement TW2002 commerce report trading flow) instantiate internal
    2 files
    • trading.py
    • trading.py

Binary layout fixes — port class and sector records

2 files changed
  • sqlite.py Sector record binary layout: port_id at offset 98, 7 warp slots (not 6)
  • converters.py Port 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_id at offset 98, 7 warp slots (not 6) remediate internal
    1 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.py Port-sector index improved for GameD-style data where port.sector_id = 0
  • Improved port-sector index for GameD-style data where port.sector_id = 0 decouple errata
    1 file
    • sqlite_store.py
  • Use sector.id when the sector_id field is zero in binary data decouple internal
    1 file
    • sqlite_store.py

TW2002 parity — combat, deploy, equipment, planet, corp, stats

6 files changed
  • combat.py Combat output parity fixes
  • deploy.py Deploy command parity fixes
  • equipment.py Equipment command parity fixes
  • display.py Display command parity fixes
  • movement.py M command shows warp list before prompting; duplicate Move header removed
  • reports.py Stats display parity fixes
  • Additional parity fixes covering combat output, deploy, equipment, planet display, corp prompt, and stats display remediate behavioral
    3 files
    • combat.py
    • deploy.py
    • equipment.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.py Per-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.py Hypothesis-based property tests for player binary parser
  • alien.py Hypothesis-based property tests for alien binary parser
  • Added Hypothesis-based property tests for all binary parsers to catch edge cases in game data decoding qualify internal
    2 files
    • models.py
    • alien.py

Module splitting and code quality

3 files changed
  • _movement_helpers.py Movement helpers extracted to keep movement.py under 500 LOC
  • _management_helpers.py Planet management helpers extracted
  • _purchases_helpers.py Purchases 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__.py rule decouple internal
    2 files
    • __init__.py
    • __init__.py
  • Removed legacy/redundant fields from parser models decouple internal
    1 file
    • models.py

TWGS cleanup

1 file changed
  • defaults.py Swarm config path fixed; test universe reset to GameD data with clean ship types
  • Fixed swarm config path; reset test universe to GameD data with clean ship types qualify internal
    1 file
    • defaults.py
  • Updated data files and config docs specify internal
    2 files
    • defaults.py
    • FEATURE_COMPLETENESS.md