Skip to content

Device capability and E2EE protocol negotiation #557

Description

@codebestia

Write apps/backend/docs/concepts-protocol-negotiation.md covering lib/capabilities.ts and services/e2eeProtocol.ts: how a device advertises supported protocols at registration, how normalizeCapabilities defaults an older client to the sealed-box baseline, how a sender picks a mutually-supported protocol, and how checkEnvelopeProtocols rejects an envelope whose declared protocol the recipient device does not support.

Acceptance criteria:

  • Documents the capability payload shape and the BASELINE_PROTOCOL default for clients predating the field
  • Explains the per-envelope protocol column and why it is recorded per envelope rather than per device
  • Documents the protocol_mismatch rejection and what a client should do on receiving it
  • Explains how this enables a staged sealed-box → Signal rollout without breaking older clients

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programbackenddocumentationImprovements or additions to documentatione2ee

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions