uwarp-space 2026-04-01
uwarp-explorer shared library, PvPContext orchestrator, key mapping and display parity
74 files · 7,783+ · 3,019-

uwarp-explorer shared library

10 files changed
  • __init__.py Public TW2002 client API exported from __init__
  • session.py TW2002Session type alias
  • io.py I/O primitives: send, recv, expect
  • screen.py Screen parsing with inlined extract_semantic_kv
  • login.py Login flow
  • recovery.py BBS recovery
  • nav.py Navigation helpers
  • sysop.py Sysop API helpers
  • trade.py Trading helpers
  • uwarp-explorer-design.md Shared TW2002 library design spec
  • uwarp-explorer package extracts the shared TW2002 client library into dedicated modules: session type alias, I/O primitives, screen parsing, login, BBS recovery, navigation, sysop API, and trading. All internal parity _helpers modules replaced with shims pointing to the promoted API. Public API exported from init. parse_display_screen, parse_sector_display, extract_int, parse_credits, and parse_sector added to the public API. instantiate behavioral
    2 files
    • __init__.py
    • io.py

PvPContext orchestrator and PvP parallel runner

2 files changed
  • pvp.py PvPContext orchestrator: action/screen/wait_for primitives for multi-player PvP test coordination
  • pvp_runner.py PvP parallel runner: runs multi-player PvP tests across simultaneous game connections
  • PvPContext orchestrator provides action/screen/wait_for primitives for coordinating multi-player PvP scenarios. PvP parallel runner executes PvP test groups simultaneously across two game connections. PvP test groups exported from uwarp-explorer init. instantiate behavioral
    1 file
    • pvp.py

Key mappings and display parity fixes

2 files changed
  • input_adapter.py @, ;, ^ global key mappings added; all key mappings aligned with TWGS Gold help screen; M→move, backtick→broadcast
  • display.py TWGS Gold date format; box-drawing separator in quick stats; (unexplored) suffix for unvisited sectors; trailing === divider removed; Who's Playing header removed from # command; trader rank title removed from rank/exp line
  • @, ;, ^ global key mappings added for TWGS Gold parity. All key bindings aligned with the TWGS Gold help screen. M mapped to move; backtick mapped to broadcast instead of comms_log. Date format changed to TWGS Gold format instead of ‘Today’. Quick stats uses box-drawing separator. Unvisited sectors show ‘(unexplored)’ suffix. Trailing === divider and Who’s Playing header removed. remediate behavioral
    2 files
    • input_adapter.py
    • display.py

Stardock port menu, turn recovery, navigation Y/N/!

3 files changed
  • stardock.py Stardock port menu matching TWGS Gold parity
  • comms.py Turn recovery after sub-space broadcast — matches TWGS Gold
  • navigation.py Y/N/! TWGS Gold parity: NavPoint Settings menu displayed on Y; waypoints correctly handled
  • Stardock port menu rewritten to match TWGS Gold format. Turn recovery added after sub-space broadcast to match TWGS Gold behavior. Navigation Y key shows TWGS-style NavPoint Settings menu. Combat auto-target on A command matches TWGS Gold flow. Mine-type prompt text and interdictor ship check fixed. remediate behavioral
    3 files
    • stardock.py
    • comms.py
    • navigation.py

Corp_id lookup fix and last 3 parity failures resolved

2 files changed
  • corporation.py require_corp uses get_corp() lookup; corp_id assigned to empty slots during parsing and creation; positional corp_id assigned correctly
  • parity_check.py Last 3 parity failures resolved: alien rank (KNOWN_DIFF), FedSpace attack message, send mail, and surrender
  • require_corp now uses get_corp() lookup instead of raw list index, fixing off-by-one corp access. Corp_id correctly assigned to empty slots during both parsing and in-game corp creation. Last 3 parity failures resolved: alien rank marked as KNOWN_DIFF (requires .RNK file parsing), FedSpace attack message text corrected, and remaining send mail/surrender flows fixed. remediate behavioral
    2 files
    • corporation.py
    • parity_check.py