BBS:      TELESC.NET.BR
Assunto:  src/ssh/design-channel-io-api.md
De:       Deuc¨
Data:     Sat, 28 Mar 2026 16:46:56 -0700
-----------------------------------------------------------
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) 
n
---
  mSynchronetn  hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net

-----------------------------------------------------------
[Voltar]