Skip to content

nnrp-1-preview2 Capability Catalog ​

This page corresponds to `nnrp-conformance/protocol/nnrp-1-preview2/`. Its tokens come from four case manifests: `l0-wire-vectors.json`, `l1-control-plane.json`, `l1-data-plane.json`, and `l3-transport-smoke.json`.

Always-on cases ​

Preview2 currently has one mandatory protocol-floor feature with no capability token: header.fixed_shape. It comes from l0.header.fixed_shape.golden, and because required_capabilities is empty, every implementation is checked against the fixed 40-byte common-header round-trip contract.

Capability overview table ​

TokenLayersStatus reachCombination ruleDescription
body_region.preludeL0mandatorynoneStable encoding layout for the body-region prelude.
cache.lifecycleL1mandatorynoneCache-object allocation, acknowledgement, invalidation, and namespace handling.
control.client_helloL0mandatorynoneCLIENT_HELLO fixed metadata block.
control.session_patch_ackL0mandatorynoneSESSION_PATCH_ACK fixed metadata block.
flow_updateL0 / L1mandatorynoneFLOW_UPDATE at both wire and semantic layers.
frame_submit.mixedL0 / L1mandatorymust also claim payload.tensorThe mixed-submit FRAME_SUBMIT hot path.
object_reference.cacheL0 / L1mandatory + optionalthe L1 optional case also needs result_push.partialCache object-reference blocks and result-body reference resolution.
payload.tensorL0 / L1mandatory dependencyusually paired with frame_submit.mixed, result_push.partial, and result_push.stale_reuseDependency token for the tensor-profile main path.
payload.typedL0 / L1mandatory + optionalnoneNon-tensor typed payload descriptors and region packing.
result_hintL0 / L1mandatorynoneRESULT_HINT wire shape and metadata semantics.
result_push.degradedL1experimentalnoneDegraded / fallback result path, currently informational only.
result_push.partialL0 / L1mandatory + optionalthe mandatory result path also needs result_push.stale_reuse and payload.tensorPartial-delivery results.
result_push.stale_reuseL0 / L1mandatorymust also claim result_push.partial and payload.tensorStale-frame reuse semantics.
transport.probeL1 / L3optionalnoneProbe metadata and transport-selection logic.
transport.quicL3optionalnoneQUIC smoke interoperability.
transport.tcpL3optionalnoneTCP smoke interoperability.

Detailed explanations ​

body_region.prelude ​

Claiming this token means the implementation is ready to publicly guarantee the wire layout of the body-region prelude. Preview2 requires the inline, reference, and typed-payload region prefixes to preserve field order, length encoding, and flag layout without local variation.

cache.lifecycle ​

This token covers the cache-object lifecycle rather than a single cache message in isolation. Once claimed, the repository accepts the mandatory CACHE_PUT → CACHE_ACK → CACHE_INVALIDATE semantic path together with namespace and object-state handling.

control.client_hello ​

This token covers the fixed CLIENT_HELLO metadata block. The point is not business-level negotiation policy; the point is a frozen pack / parse contract for version range, bitmaps, cache parameters, target cadence, and related fixed-width fields.

control.session_patch_ack ​

This token covers the SESSION_PATCH_ACK fixed metadata block, including patch masks, reject reasons, retry timing, and effective configuration fields. The implementation must both parse and re-emit the canonical wire shape.

flow_update ​

flow_update spans both the L0 and L1 contract surface. L0 freezes the packet shape; L1 additionally validates scope, retry-after semantics, credit epoch handling, flags, and framed round-trip behavior.

frame_submit.mixed ​

This is one of the core Preview2 submit-path tokens, but it never stands alone. The mandatory FRAME_SUBMIT cases only enter selected once payload.tensor is also claimed, because the path implicitly depends on the tensor descriptor / schema / body layout.

object_reference.cache ​

This token has two layers. The first is the mandatory L0 object-reference block round-trip. The second is an optional L1 result-body resolution check. Claiming object_reference.cache alone selects the L0 mandatory case; claiming it together with result_push.partial also opts into the optional composite-body reference-resolution case.

payload.tensor ​

payload.tensor is a dependency capability for the Preview2 hot path rather than a standalone vector page. In the current baseline it mainly exists to complete the frame_submit.mixed and result_push.partial / result_push.stale_reuse combinations, meaning the implementation accepts responsibility for the frozen tensor descriptor, schema, and body layout.

payload.typed ​

This token covers non-tensor typed payload descriptor and region packing. Preview2 uses it for both mandatory L0 descriptor vectors and optional L1 region/frame preservation checks, which makes it suitable for implementations gradually adding token/audio/video/event style payload paths.

result_hint ​

This token covers the full RESULT_HINT surface. L0 checks the fixed wire vector; L1 requires reason codes, fixed-width fields, and framed round-trip behavior to remain valid instead of merely surviving a happy-path parser.

result_push.degraded ​

This is still experimental in Preview2. Claiming it does not create a mandatory gate, but it does move degraded / fallback result behavior into the informational report so SDKs can converge before the public surface is frozen.

result_push.partial ​

This token means the implementation supports partial-delivery results. In the current baseline, however, the mandatory result path still needs result_push.stale_reuse and payload.tensor together with it. It also combines with object_reference.cache to decide whether the optional composite-body reference-resolution case becomes active.

result_push.stale_reuse ​

This token isolates stale-frame reuse semantics. The current mandatory case binds it to result_push.partial and payload.tensor because Preview2's canonical result vector covers the combined partial + stale-reuse path rather than independent result sub-features.

transport.probe ​

This token shows up in both L1 control-metadata validation and L3 transport-selection smoke logic. Claiming it means the implementation accepts the probe-message wire shape and the selection contract that ranks paths by success, throughput, and RTT.

transport.quic ​

This token only affects an L3 optional smoke case. Once claimed, the repository is expected to bring up a minimal QUIC path and complete the shortest control plus submit/result interoperability loop.

transport.tcp ​

This token is parallel to transport.quic, but targets TCP. Once claimed, the repository accepts the minimum TCP session bring-up, frame-boundary handling, and smoke-path interoperability checks.

NNRP Documentation