What & why
examples/fisheye-object-detection's processors still take their configuration as keyword parameters on __init__. Since v0.21.0 (#2226), @processor refuses that signature at decoration, so importing the processor module raises and the example no longer starts.
This is the consumer backlog the agent-readable-processor-catalog change owes at ship (docs/plan/changes/archive/2026-09-13-agent-readable-processor-catalog.md). Per docs/plan/ARCHITECTURE.md §Consumers, a converted consumer's breakage is filed at that consumer and never blocks the engine change.
Design
Each processor below takes one config parameter annotated with a config class, and reads its values off that object. The config class is a dataclass whose fields are today's keyword parameters with their defaults, or a TypedDict. rt.add(..., config={...}) in the app stays as it is: the helper builds the config class from the dict. examples/camera-virtual-camera/processors/shader_effect.py (ShaderEffectConfig) is the in-tree model.
examples/fisheye-object-detection/processors/synthetic_fisheye_lens.py — SyntheticFisheyeLens(radial_distortion_k1, radial_distortion_k2)
examples/fisheye-object-detection/processors/undistorting_object_detector.py — UndistortingObjectDetector(radial_distortion_k1, radial_distortion_k2, detection_confidence_threshold, detection_model_weights)
Done means
- Every processor above declares
def __init__(self, config: <ConfigClass>), and no @processor class in the example takes a keyword parameter.
- The example starts against the published wheel and reaches a running graph.
Validation shape
A fresh uv sync in the example, then run it as its README says. The processor modules import without a decoration refusal and the graph reaches Running.
Needs the physical rig?
GPU
Non-derivable notes
Examples pin the published wheel, so validation needs a release carrying #2226 and #2228 (v0.22.0 or later). A local maturin develop is undone by uv sync.
What & why
examples/fisheye-object-detection's processors still take their configuration as keyword parameters on__init__. Since v0.21.0 (#2226),@processorrefuses that signature at decoration, so importing the processor module raises and the example no longer starts.This is the consumer backlog the agent-readable-processor-catalog change owes at ship (
docs/plan/changes/archive/2026-09-13-agent-readable-processor-catalog.md). Perdocs/plan/ARCHITECTURE.md§Consumers, a converted consumer's breakage is filed at that consumer and never blocks the engine change.Design
Each processor below takes one
configparameter annotated with a config class, and reads its values off that object. The config class is a dataclass whose fields are today's keyword parameters with their defaults, or a TypedDict.rt.add(..., config={...})in the app stays as it is: the helper builds the config class from the dict.examples/camera-virtual-camera/processors/shader_effect.py(ShaderEffectConfig) is the in-tree model.examples/fisheye-object-detection/processors/synthetic_fisheye_lens.py—SyntheticFisheyeLens(radial_distortion_k1, radial_distortion_k2)examples/fisheye-object-detection/processors/undistorting_object_detector.py—UndistortingObjectDetector(radial_distortion_k1, radial_distortion_k2, detection_confidence_threshold, detection_model_weights)Done means
def __init__(self, config: <ConfigClass>), and no@processorclass in the example takes a keyword parameter.Validation shape
A fresh
uv syncin the example, then run it as its README says. The processor modules import without a decoration refusal and the graph reaches Running.Needs the physical rig?
GPU
Non-derivable notes
Examples pin the published wheel, so validation needs a release carrying #2226 and #2228 (v0.22.0 or later). A local
maturin developis undone byuv sync.