Stefan reported: per-field output ports never appeared even
after the hub-side capability-lookup fix. Root cause: the
editor only used ModuleSpec when the host returned one. If
the operator's hub still ran the pre-fix binary, or hadn't
re-installed v3 manifests, or the step's capability was a
built-in (system.approval) that ships no manifest at all,
the editor would silently collapse to a single output anchor
even though the flow YAML clearly references named fields.
Robust fix: per-field labels are now a UNION of declared
fields (from the manifest, if any) and implicit ones
(inferred from the flow graph itself — every $step.field
reference an outgoing edge carries adds a field name).
Declared fields keep manifest order; implicit ones follow
alphabetically. Two helpers (_inputLabelsForStep,
_outputLabelsForStep) single-source the merge so the
renderer, port-overlay generator, edge router, and
hit-tester all see the same list.
What this means at run time:
- v3 modules with description.en/de → full per-field ports
with tooltips, exactly as designed.
- v2 modules without descriptions → per-field ports, no
tooltips. Was the case already.
- v1 modules / hubs without inputs/outputs in
ModuleInfoResponse → per-field ports inferred from the
YAML references. New behaviour, no regression.
- Built-in capabilities (system.approval) → per-field ports
from with_-keys and outgoing edges. Works without any
hub manifest.
Bumps fai_studio_flow_editor to 0.10.1.
Signed-off-by: flemming-it <sf@flemming.it>