Shared command-dispatch layer used by every EVOLV node:
- Always-convert: numeric strings ("60") and {value:"60"} now normalise +
convert like numbers; closes the gap where strings reached handlers raw.
- unit: 'm3/h' shorthand on descriptors; measure is derived from the unit
(legacy units:{measure,default} still accepted, measure re-derived).
Unrecognised declared unit throws at construction.
- msg.origin stamped on every dispatch (parent|GUI|fysical, default parent).
- Opt-in gated:true arbitration: accept only if origin in
source.config.mode.allowedSources[currentMode]; advisory allow-all when a
node has no mode model. Handles Set- or array-valued allowedSources.
+18 registry tests (45 total, green). All consumer nodes verified green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
22 KiB
22 KiB