The Run tab asked the operator to type an absolute path into a text
field — with no file dialog anywhere. FlowEditorPage now accepts an
onPickFile callback (PickedFileData: name + bytes) that hosts wire
to their native picker; the path-entry dialog remains only as the
no-host fallback. 0.23.0.
Signed-off-by: flemming-it <sf@flemming.it>
When the open flow declares its own top-level project:, show it as a
chip in the tab action strip. On mismatch with the host's active
workspace, an amber file-wins pill offers a one-click Switch to
<project> — the file always wins for the run; switching only aligns
the workspace view.
New optional FlowEditorPage.activeProject + onSwitchToFileProject.
Parse + normalize (mirrors the hub's normalize_project_slug) lives in
flow_project.dart, unit-tested. flutter analyze clean, 57 tests green.
Signed-off-by: flemming-it <sf@flemming.it>
Flows without missing modules get a play button in the list that
opens them directly on the Run tab - one click from the list to
entering inputs and starting a run. Rows with missing modules keep
the install badge as their single actionable path.
Signed-off-by: flemming-it <sf@flemming.it>
With no flow open the toolbar header said 'Kein Flow geöffnet' and
read as the page title (usertest finding); it now names the page
('Flows') while the empty state keeps the explanatory sentence. The
'needs N modules' chip ellipsizes in the narrow flow list instead of
overflowing its row on longer German labels.
Signed-off-by: flemming-it <sf@flemming.it>
The flow editor is a Ch∆In Studio sub-component (chain product), not a
F∆I-vendor package. Rename the package, entry library file, and all
package: imports. flutter analyze: clean.
Signed-off-by: flemming-it <sf@flemming.it>