ADR 0027: Gate action chunks at the controller boundary¶
Context¶
Inference produces flattened action chunks slower than many control loops consume them. Replacing a chunk abruptly can introduce discontinuities; accepting stale, mismatched, or unsafe output can move the robot from invalid context.
Decision¶
Interpret a complete
ActionMessageas a versioned, zero-copyActionChunkView.Bind delivery to model digest and session; require increasing generation and sequence.
Select steps by monotonic control time and linearly blend a bounded replacement prefix.
Apply per-axis absolute and delta limits with explicit reject or clamp policy.
Copy only configured limits and active chunk values into fixed-capacity storage.
Keep the existing action wire protocol unchanged.
Consequences¶
Policy and controller rates are decoupled without a growing queue. Replacement, publication, and safety checks allocate nothing. The gate detects bad software output but does not replace physical limits, watchdogs, or certified safety systems.