Skip to content

wftnp 0.1.2

Latest

Choose a tag to compare

@binarylogic binarylogic released this 05 Oct 17:34

This release fixes two callback shutdown edge cases found during a repository audit and adds repeatable tests against real WFTNP equipment.

  • Track callback task lifetime separately from subscription intent, so shutdown waits for callback cleanup after a failed subscription is replaced or removed.
  • Avoid deadlock when callback cleanup calls stop() while another shutdown is already joining that callback.
  • Log discovery resolution failures at debug level.
  • Add task test:hardware: one opt-in, serial lane with local configuration and a write-blocking TCP proxy. Ordinary CI never connects to equipment.

Validation: 91 simulator/unit tests pass with 96% combined coverage; formatting, lint, source typing, and strict package metadata checks pass. The hardware lane passed against KICKR BIKE and KICKR RUN: 30-second streams with interleaved reads, three real TCP interruptions per device, automatic subscription recovery, and notification disable/re-enable. The final run received 121 bike packets and 61 treadmill packets during the streams. No equipment-control commands were sent.

See the audit and hardware validation for details, instructions, and limitations. Hardware checks used idle equipment; simultaneous ROUVY/Zwift operation and long workouts remain unverified.

pip install 'wftnp[discovery]==0.1.2'