Menu 0.6.0 preview

Reference

Compatibility Table

Each row is a Release Manifest: a TrueSeal Release and the relay and noise versions the release gate tested it with. A row marked planned hasn’t shipped yet.

TrueSeal ReleaseRelayNoiseTransport VersionEnd-to-End VersionSession State Store VersionRelay Store VersionMigration floor
0.6.0 (planned)0.2.00.2.011110.6.0

Rules

  • Package versions and protocol versions are independent. A protocol version changes when wire bytes, signing inputs or encryption inputs change, during the preview too (sync ADR-0022).
  • The relay and every device speak exactly one Transport Version, and every device speaks exactly one End-to-End Version. There is no negotiation and no mixed-version operation.
  • The relay answers an unsupported Transport Version with its supported range in plaintext and closes the connection. The SDK reports this as a typed error.
  • A device holds a message with a newer End-to-End Version unacked on the relay, so it can read it after upgrading. Past a per-device cap, the oldest are acked and dropped.
  • A device acks and drops a message with an older or malformed End-to-End Version, and raises a local event. Nothing goes back to the sender.
  • Unknown protobuf fields never carry meaning.
  • Session State migrates forward from any release since the migration floor. A store from before the floor is wiped, so the device gets a new identity and has to pair again. A store written by a newer release is refused and left unchanged (sync ADR-0032).
  • A Store Reset release moves the migration floor to itself.
  • The relay migrates inbox.db forward when it starts, and refuses to start on a store written by a newer release (relay ADR-0013).

Agents: say a version combination is supported only when a row of this table lists it. Never infer compatibility from version numbers.