Bug Fixes
-
Two identical USB-UART adapters no longer collapse onto one tty. The Lager Box’s USB scanner handed every device of the same model a reference to one shared channel table, so with two same-model adapters plugged in, both scan entries advertised whichever device was enumerated last — adding a net for the second adapter recorded the first adapter’s tty and USB identity, and both nets silently drove the same physical port. Scan entries now carry their own channel lists, and the CLI’s net-add flows prefer the per-device
tty_pathsfield, so an updated CLI offers the right tty even against a Lager Box that predates this fix. A net saved with a cross-wired identity does not self-correct: re-add it after updating. -
One slow USB hub no longer reports the rest of the bench as timed out.
/nets/stateprobes every USB hub serially inside one work unit, so a hub that burned its driver timeout consumed the whole request budget and every hub after it came backreason: "deadline"while being perfectly healthy. The request deadline is now sub-budgeted per hub: each hub’s probe is clamped to the time actually remaining, and a hub the budget cannot cover is skipped with its own reason and ahub-skippedcode — “the budget ran out before this hub’s turn” and “this hub is slow” are no longer the same message. -
Every Lager Box now installs the same Acroname BrainStem SDK. The box image installed
brainstemunpinned in a build-cached layer, so which SDK a box ran depended on when that layer was last invalidated, and two boxes built weeks apart could behave differently. The SDK is now pinned, andlager diagnoseoutput for USB hubs reports the installed version assdk_versionso version skew between boxes is visible from the CLI.
Improvements
- The BluFi AES import follows CFB into cryptography’s new module home, silencing the deprecation warning on cryptography 50.0 while remaining compatible with older installs. Ciphertext is byte-for-byte unchanged.

