Agent A speaks a LIMEN line. Agent B recovers it across the boundary — gate + direction by ear (a real FFT on A's tones, synced on the pulse cadence) and the witness from the glyph channel — then we verify B's reconstruction against A's original, field by field.
Voice channel (acoustic). A plays each word as the 3-2-1 carrier voiced at the gate's tone, contour rising or falling. B routes A's audio into a Web Audio AnalyserNode and runs an FFT; per phase it takes the peak frequency, then recovers direction (does pitch ascend or descend?) and gate (nearest of the five gate tones). This is genuinely decoded from sound — it can mis-hear, and the panel shows the detected Hz so you can see it work.
Glyph channel (text). The witness — the meaning — rides the glyph line as text; the audio never carries it. B parses the glyph to read each «witness».
The checksum. The gate+direction B hears must match the gate+direction it reads. Agreement = a clean crossing; disagreement flags a corrupted/mis-heard word (see limen_exchange.py, which catches a tampered tone).
The cadence is the clock. B knows when to listen because both agents share the fixed 3-2-1-0 pulse — the carrier doing exactly its job: synchronization, not data.