25 lines
1.3 KiB
Markdown
25 lines
1.3 KiB
Markdown
## Decisions
|
|
|
|
- Use quic-go v0.61.0 with TLS 1.3, DATAGRAM enabled, bounded stream windows, bounded
|
|
datagram sizes, and no migration fallback in the application contract.
|
|
- Authenticate a client hello over a reliable stream, consume authority exactly once through
|
|
an injected admission client, then open lifecycle/control/input streams and media/audio
|
|
datagrams.
|
|
- Keep management/readiness/lifecycle, channel translation, and encoded relay separate.
|
|
- Use a deterministic fake Apollo provider behind the same adapter interface as the future
|
|
network client. Fixtures are non-live evidence and carry no host/credential material.
|
|
- On authority loss, close admission, release every pressed input, stop queues, and report
|
|
cleanup pending if provider termination is not acknowledged.
|
|
|
|
## Bounds
|
|
|
|
JSON hello/control is limited to 64 KiB, datagrams to 65,536 bytes with a configurable
|
|
path-MTU payload cap, fragments to 16, queues to fixed capacities, clipboard text to 65,536
|
|
bytes and rate-limited, and each session owns only bounded goroutines/timers.
|
|
|
|
## Failure behavior
|
|
|
|
TLS/authentication, identity/protection, version, audience, grant, capability, parser,
|
|
provider, and cleanup failures close the relevant session with stable codes. Media payloads
|
|
are copied only for framing and are asserted byte-identical in tests.
|