Compare commits

...

2 Commits

Author SHA1 Message Date
znetsixe
ef265dd811 fix(examples): numeric ui-chart width/height in 02-Dashboard (flow-lint)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 19:18:46 +02:00
znetsixe
19720bd67f feat(commands): adopt unified command envelope — msg.origin provenance
Resolve command origin via msg.origin (registry-stamped, default parent) with a
legacy fallback to the previous payload.source/msg.source field. Feeds the
existing mode/allowedSources arbitration unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 18:41:17 +02:00
2 changed files with 12 additions and 4 deletions

View File

@@ -1656,8 +1656,8 @@
"pointRadius": 5,
"showLegend": true,
"bins": 10,
"width": "12",
"height": "6",
"width": 12,
"height": 6,
"removeOlder": "0",
"removeOlderUnit": "1",
"removeOlderPoints": "",

View File

@@ -23,12 +23,20 @@ function _gate(source, action, msg) {
if (!source.isValidActionForMode(action, source.mode)) return false;
}
if (typeof source?.isValidSourceForMode === 'function') {
const src = (typeof msg?.source === 'string' && msg.source) ? msg.source : 'parent';
if (!source.isValidSourceForMode(src, source.mode)) return false;
if (!source.isValidSourceForMode(_origin(msg), source.mode)) return false;
}
return true;
}
// Resolve the command origin (control authority: parent | GUI | fysical).
// The shared commandRegistry stamps msg.origin (default 'parent'); legacy flows
// carried it as msg.source. Prefer the legacy field when present so existing
// flows keep working, otherwise use the registry-stamped msg.origin.
function _origin(msg) {
if (typeof msg?.source === 'string' && msg.source) return msg.source;
return (typeof msg?.origin === 'string' && msg.origin) ? msg.origin : 'parent';
}
exports.setMode = (source, msg) => {
// set.mode is a status-level operation — allowed in every mode by the
// default schema (incl. maintenance). The gate still fires so an