Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.fluxamerica.io/llms.txt

Use this file to discover all available pages before exploring further.

Capabilities

Capabilities are how a client opts into protocol behaviours the server might otherwise not enable. The capability set negotiated at the WebTransport handshake is the set a session may use; ops or fields gated by a capability that was not negotiated are rejected by the server.

How to negotiate

  1. Client → server: send ClientHello { capabilities: <bitset> } as the first frame of the control stream.
  2. Server → client: replies with ServerHello { capabilities: <bitset> }. The negotiated set is the intersection of the two — the server may downgrade (refuse a capability the client requested) but never upgrade.
  3. Every op envelope carries a capabilities_used bitset declaring which capabilities the request relies on. If capabilities_used is not a subset of the negotiated set, the server returns a precondition-failure response.

Compatibility commitments

  • Append-only within a major version. New capabilities land at the end of the list below; existing capabilities never change wire form or semantics.
  • Retirement follows a deprecation window. A client may continue negotiating a deprecated capability for the duration of the window; the server logs a warning and serves the behaviour.
  • Forward compatibility. A client that omits a capability the server supports gets the no-capability baseline. The server never spontaneously enables behaviours the client did not request.

The capabilities

The sections below are auto-generated from the Capability enum in src/protocol/capability.rs (per ADR-0023 + ADR-0044 M.4). Wire names are the variant identifiers; the prose under each heading is the verbatim doc-comment on that variant.

SubscriptionResume

Subscribe* ops accept a resume_from: Option<ResumeToken>. See docs/design/protocol.md § 6.2.

BulkRecordImport

ImportRecords op accepted.

BulkRecordExport

QueryRecords and ExportModel ops accepted.

AuditTailSubscription

SubscribeAuditTail op accepted. The op is additionally gated on the principal having the audit_tail.read permission claim.

FxPredicateFilter

SubscribeRecords accepts an Fx predicate filter (per ADR-0017).

IdempotencyKeyCache

Server commits to 24-hour idempotency-key replay protection on mutating ops. See docs/design/protocol.md § 3.2.

ZstdOcfCodec

Server may emit zstd-compressed Avro Object Container Files on data streams. Currently used by ExportModel (C.2.6) — the codec is self-described in the OCF header so readers without this capability cannot decode the bundle. Other bulk ops (QueryRecords, ListRecords overflow) keep the null codec unless they explicitly opt in. See docs/design/protocol.md § 7.1.