fix(editor): per-field ports render from YAML refs when ModuleSpec is missing

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>
This commit is contained in:
flemming-it 2026-06-01 23:11:39 +02:00
parent a71f654162
commit 7797654572
2 changed files with 70 additions and 38 deletions

View file

@ -1,6 +1,6 @@
name: fai_studio_flow_editor
description: Swappable inline YAML editor for F∆I Studio flows.
version: 0.10.0
version: 0.10.1
publish_to: 'none'
repository: https://git.flemming.ai/fai/studio-flow-editor