flex-testing-agent

Published Flex robot test suggestions from monorepo release deltas, plus the local harness that runs them.

← All suggestions

validated · updated 2026-07-17

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.

Monorepo branch: chore_release-9.1.2 · compared to v9.1.1 · robot OS 9.1.2-alpha.0

Hardware: temperatureModuleV2

Related PRs

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

IDPlan
B1
Unique attach
pass

Baseline inventory must show exactly one temperature module with no duplicate serials.

  • Ensure TempDeck USB is connected.
  • Run `uv run flex-test module-reconnect b1`.
  • Confirm PASS and record serial.

KansasFLEX TDV21P20211130D06 idle ~22C

B2
Unplug then replug
pass

Reconnect path must drop the module then restore a single live instance (#21834/#21880).

  • Unplug TempDeck USB.
  • Run `wait-absent --serial <SERIAL>`.
  • Replug USB.
  • Run `wait-present --serial <SERIAL>` and `b1`.
B3
Rapid reconnect cycles
pass

Duplicate serial accumulation was latent until retry landed; stress reconnect.

  • Repeat unplug/absent/replug/present for three full cycles.
  • After each present, confirm duplicates=none.

Three cycles on KansasFLEX; no duplicates

B4
Transient re-enumeration
pass

TempDeck-specific poller/driver reconnect on brief USB re-enumeration.

  • Covered by rapid USB unplug/replug cycles above.
  • Optionally wiggle/reseat cable without full removal.
B5
Live command after reconnect
pass

Ensure the restored instance is usable (not a stale closed port).

  • With module present, run `module-reconnect smoke --serial <SERIAL> --celsius 25`.
  • Expect setTargetTemperature and deactivate both succeeded.

set 25C succeeded; deactivate succeeded