Second hardware capture (saved as tests/da07/fixtures/capture-2026-06-12-
steady-state.txt, now with "> "-prefixed outbound lines) settles the remaining
protocol questions:
- ~P is a per-channel CT sensor serial (P + device + channel + 16-hex), matching
the E-frame tails byte-for-byte - decoded as ChannelSerial and applied to the
channel model. It is NOT a custom-name echo: a ~D field-11 name write is
Z1-ACKed but never reported back, so channel names are write-only by protocol
(a typed Tag reverts on Refresh, same as the legacy). BL-E5 part 2 closed.
- The ~H realtime layout is verified against 68 real frames: counters, LE
buffered count, LE time, then 16 per-device status nibbles that matched the
live Devices tab (devices 2,3 COM, rest OK). Indicator triples remain
unobserved (no active alarm groups on the test station).
- The write queue is hardware-confirmed: 26 writes drew 25 ACKs with one
observed idle-retransmit recovery; both device toggles survived a Refresh.
UI fix: the Channels tab now refits its columns after a device switch. TableTab
auto-fits only when the row count changes, but switching devices swaps the whole
content at the same row count, leaving Serial/Model sized for the previous pod
(fitted to empty serials, truncating 16-char ones).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>