• src/ssh/design-channel-io-api.md

    From Deucе@1:103/705 to Git commit to main/sbbs/master on Sat Mar 28 16:46:56 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d5a9dd33ac68c0f3fd88906d
    Modified Files:
    src/ssh/design-channel-io-api.md
    Log Message:
    Revise channel I/O design: two models, deferred window, linear accumulation

    Replace unified read/write proposal with two distinct I/O models:
    - Stream API (dssh_channel_read/write) for session channels (shell/exec)
    - Zero-copy callback for subsystem channels (sftp, etc.)

    Key design decisions:
    - Max packet size per-session (set once, used in all channel opens)
    - Max window size per-channel (deferred to channel request/accept)
    - Channel accept as finalization point (server callback, client function)
    - Linear accumulation buffer for subsystem callbacks (no ring, no wrap)
    - Flow control via natural window exhaustion during accumulation

    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)