uwarp-space 2026-04-05
Parity fixes: scanner density, mail stale screen, V command, and session liveness
7 files · 76+ · 32-

Scanner density and stardock entry parity fixes

3 files changed
  • primitives.py Stardock entry screen detection pattern updated
  • helpers.py Scanner density selection sends D\r; io helper updated
  • _tests_scanners.py Scanner density parity tests corrected
  • Scanner density selection was sending ‘D’ without the required Enter keystroke — TWGS Gold’s scanner menu uses ctx.require which needs ‘\r’ to confirm. Fixed to send ‘D\r’. Scanner sub-menu regex updated to match Gold’s actual output format. Stardock entry screen detection pattern broadened to handle variant welcome strings. remediate behavioral
    3 files
    • helpers.py
    • primitives.py
    • _tests_scanners.py

V command, mail stale screen, and screen_change_seq timing fixes

4 files changed
  • _runner.py screen_change_seq captured after _send; V command waits for keywords
  • _tests_comms.py mail_send_read stale screen test updated
  • _tests_display.py Display parity tests updated for V command behavior
  • _tests_navigation.py Navigation parity tests updated
  • Three timing/sequencing fixes: (1) screen_change_seq was being captured before _send, missing the echo update — moved to after _send; (2) V command parser was reading game_status before V’s output arrived — now waits for output keywords first; (3) mail_send_read was seeing a stale screen from a prior command — screen sync added before parsing. remediate behavioral
    3 files
    • _runner.py
    • _tests_comms.py
    • _tests_display.py

Session liveness check before parity sync

1 file changed
  • _runner.py uwarp session liveness verified before sync/test to prevent cascade failures
  • Parity runner now checks uwarp session liveness before each sync and test step. A dead or disconnected session was previously causing cascade failures across subsequent parity tests. The liveness check short-circuits and reports the session as disconnected rather than producing misleading parity failures. harden behavioral
    1 file
    • _runner.py