Skip to content

DSPX-01 descriptor and registry contract

DSPX-01 is the admission contract for graph custom-node and bounded sample-region descriptors. It is a design-time SDK surface. A descriptor is accepted only when its identity, version, port shape, callbacks, state lifecycle, and optional projection claims are internally coherent.

CustomNodeType::is_valid_registration() is the single shape gate used by direct graph registration, prepared topology edits, and baked registration. The graph owns one descriptor per (type_id, version) key and exposes a value-owned, deterministically sorted metadata snapshot. Registering an exact key replaces its metadata; an invalid registration leaves the prior registry unchanged. A resolved descriptor can then be reached by SignalGraph::add_custom_node.

Sample-region descriptors use the sibling SampleKernelDescriptor contract in pulp/host/custom_node_type.hpp. SampleRegionProof reports typed refusal reasons and bounded resource values. Parser shape admission runs before any record allocation and refuses malformed, truncated, overflowing, or over-limit counts through SampleRegionParserProof.

The executable contract proof is test/test_dspx01_descriptor_registry.cpp. It covers successful registration and graph reachability, deterministic metadata ordering, invalid identity and bake combinations that preserve registry state, valid scalar descriptor identity, invalid ABI/range metadata, and hostile parser input. The independent resource receipt identity control is test/sample_region_i2/i2_negative_controls.cpp (NEG-07); the broader sample-region matrix remains in test/test_sample_region_proof.cpp. DSPX-01 does not add another runtime or reopen the sample-region kernels.

This packet has no timeline CLI/MCP operation and no live-product control route. Those surfaces remain typed unsupported until a later packet owns an operation and a host executor.