Temperature module USB reconnect (Flex 9.1.2)
Regression suite for TempDeck / gcode-module USB disconnect tolerance cherry-picked into monorepo branch chore_release-9.1.2. Validates unique inventory, absent/present polling across reconnect cycles, and a live set-temperature smoke command on the restored module instance.
Related PRs
- #21935 chore(mono): Cherry-pick select commits for chore_release-9.1.2
- #21834 fix(api): retry module build with backoff on transient ParseError/NoResponse
- #21880 fix(api): prevent duplicate module entries during USB reconnect
Harness commands
uv run flex-test module-reconnect b1 uv run flex-test module-reconnect wait-absent --serial <SERIAL> uv run flex-test module-reconnect wait-present --serial <SERIAL> uv run flex-test module-reconnect smoke --serial <SERIAL> --celsius 25
Tests
| ID | Plan |
|---|---|
| B1 Unique attach pass |
Baseline inventory must show exactly one temperature module with no duplicate serials.
|
| B2 Unplug then replug pass |
Reconnect path must drop the module then restore a single live instance (#21834/#21880).
|
| B3 Rapid reconnect cycles pass |
Duplicate serial accumulation was latent until retry landed; stress reconnect.
|
| B4 Transient re-enumeration pass |
TempDeck-specific poller/driver reconnect on brief USB re-enumeration.
|
| B5 Live command after reconnect pass |
Ensure the restored instance is usable (not a stale closed port).
|