Bug Fixes
- Keysight E36xxx supplies reporting
Enabled: OFFafterenable— runninglager supply <net> state(or any other read-only supply command) immediately after a successfullager supply <net> enablewould report the output asOFFon Keysight E36200/E36300 series supplies. TheKeysightE36000driver constructor was unconditionally callingdisable_output()as a “safe default” on every connect, so each fresh CLI invocation silently turned the output off before running its query. The disable is now gated behind the explicitreset=Trueflag, so constructing a driver for a read (or forenable) no longer mutates output state. - EA PSB supplies briefly dropping output on re-enable —
lager supply <net> enableon an EA PSB 10060-60 / 10080-60 caused a brief (~500ms) output drop when the output was already on.EA.enable()always ran_clear_latched_events()first, which writesOUTPut OFFand waits 200ms before turning the output back on.enable()is now idempotent: ifOUTPut?reports the output is already on, the call returns immediately without toggling. The off→on path that needs latched-protection clearing is unchanged. lager supply <net> tuiclosing silently on Rigol DP821 — the supply TUI was closing after ~5 seconds with no visible error whenever a direct supply command (e.g.state) had been run beforehand. The WebSocket supply monitor on the box was opening its own pyvisa session, conflicting with the cached VISA session held byhardware_service.pyon port 8080. Instruments that don’t tolerate concurrent USB sessions (Rigol DP821 reproduces this) hung silently and the TUI’s 15-second wait forsupply_driver_readyalways timed out. The monitor thread now releases the cached handle (vialocalhost:8080/cache/clear) before opening its own session. As a defensive bonus,get_channel_limits()and the session-store block now emit a visibleerrorevent on any failure during init, and the CLI captures the TUI’s exit reason and prints it red to stderr after Textual’s alt-screen tears down — so failures no longer disappear with the screen restore.

