Decode a ReverseHello ("RHE") message from a raw TCP message chunk.
The chunk MUST be a single, final ("F") RHE frame:
[ 'R' 'H' 'E' ] [ 'F' ] [ UInt32 messageSize ] [ ServerUri ] [ EndpointUrl ]
This deliberately does NOT go through tools.ts#decodeMessage, whose
is_valid_msg_type allowlist / ERR special-casing does not apply to RHE, and
because the inbound readMessageHeader does not itself validate the 3-char
message type — so we assert it here.
Decode a ReverseHello ("RHE") message from a raw TCP message chunk.
The chunk MUST be a single, final ("F") RHE frame: [ 'R' 'H' 'E' ] [ 'F' ] [ UInt32 messageSize ] [ ServerUri ] [ EndpointUrl ]
This deliberately does NOT go through
tools.ts#decodeMessage, whoseis_valid_msg_typeallowlist / ERR special-casing does not apply to RHE, and because the inboundreadMessageHeaderdoes not itself validate the 3-char message type — so we assert it here.