• src/syncterm/Wren.adoc term.c

    From Deuc¨@VERT to Git commit to main/sbbs/master on Tue Apr 28 06:00:41 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/bfeca552699312ed6a0e11e5
    Modified Files:
    src/syncterm/Wren.adoc term.c
    Log Message:
    SyncTERM: fire Hook.onInput on the raw wire stream, pre-parse_rip

    Previously the input hook fired well downstream Ä after parse_rip,
    ZMODEM detection, and OOII processing Ä which meant scripts never
    saw the bytes those layers had already consumed. In RIP mode, the
    hook saw essentially nothing.

    Move the dispatch into recv_bytes(), right after conn_recv_upto and
    before parse_rip, and compact dropped bytes out of the buffer in
    place. Scripts now see every byte off the wire and can intercept
    them before any framing layer. Gated on wren_host_active() so the
    no-scripts path stays a single global bool check, no per-byte
    function-call overhead.

    Speed emulation does not apply: parse_rip already bypasses speed
    gating in bulk, so gating only the Wren hook would be inconsistent.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net