71b3b7f35f
The gateway copies MXSTATUS_PROXY.detail verbatim, so a failure row's detail is always an MxStatusDetail code. FromMxStatus routed any detail <= 0xFF through the OPC DA quality table: MX_E_PlatformCommunicationError (2) on a stopped platform's ScanState logged "Unrecognised MXAccess quality byte 0x02" and published generic Bad (VD03 live capture), MX_E_InvalidObjectId (8) became BadNotConnected, MX_E_Overflow (20) BadCommunicationError, and a detail in the Uncertain band published Uncertain for a failure. Every non-zero detail now maps per the gateway.md vocabulary (timeout, communication, configuration, type, range, access, initialising), then by category; the category-fallback warning logs once per (detail, category). Claude-Session: https://claude.ai/code/session_01GT67AD99zQQqpLCVm3p7xk