The bench relay runs socat with -x, which hex-dumps every forwarded byte in both
directions. That makes its log a complete second copy of every capture taken
through it, independent of whether seismo_lab was recording.
On 2026-09-25 a capture's .bin files never left the Windows machine and the
session was rebuilt from the relay log instead. When the real bins turned up
afterwards, the reconstruction was byte-for-byte IDENTICAL in both directions
(3,595 and 4,004 bytes) -- verified again through the committed script, not just
the ad-hoc version used at the time. So this is a validated fallback, not a lossy
approximation.
Adds scratch/socat_log_split.py, with --from-line/--to-line for picking one
session out of a log that spans several (split on the "accepting connection"
markers, or the frame walk runs sessions together).
Also documents the -x flag and the fallback in the session-provenance section, so
the next person runs the relay in a way that keeps the safety net.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ru8Lg9HkkYvX9VWWo65SmL