Skip to content

perf: capability-gated suppression of the plain-content fallback for parts-capable clients #108

Description

@saucam

From the protocol audit (P1). Every rich message carries BOTH the plain content fallback and parts[] (protocol principle 4 — Telegram-class frontends read content). For parts-capable clients this is duplicated payload on every rich frame.

Since #102 the auth handshake carries client capabilities (parts" is already declared by the web client and stored per-connection in SocketData). **Plan:** when every attached client on a connection declared parts", omit/empty the content field on rich frames for that connection (per-connection shaping happens at the AttachedClient.send boundary; scrollback stores stay complete). Needs care: scrollback replay frames are shared chunk arrays — shaping must be per-connection serialization, not mutation of the stored message. Measure before building: % of frame bytes that are fallback content in a typical tool-heavy session.

Metadata

Metadata

Assignees

No one assigned

    Labels

    auditSurfaced in a code auditperfPerformance and scalability

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions