Three connected improvements to the analyzer-driven diagnostics:
- **Pulsing halo on broken graph nodes**. Every step / pseudo-
node (inputs / outputs) carrying an analyzer issue now
breathes a red (error) or amber (warning) halo on the graph
tab — operator sees the problem on the canvas without
flipping to text. Honours prefers-reduced-motion: reduce-
motion users get a static halo at the same intensity. The
canvas reads severity via a new `stepIssueSeverity` map on
FlowEditorController; pseudo-nodes use `__inputs__` /
`__outputs__` sentinel ids.
- **Store-aware install button**. The analyzer now takes a
second closure, `storeCapabilities`, listing what the public
store can install. Unknown-capability issues only carry the
"Install …" quick-fix when the bare cap is in that list;
otherwise the issue carries an "Add source for …" fix
instead. Resolves the asymmetry the operator reported: the
Store didn't show `htw.digiscout/onet.lookup` but the editor
happily offered to install it (and would have failed). The
install path no longer lies about itself.
- **Did-you-mean suggestion**. When the unknown cap is within
edit-distance two of an installed or store cap (different
spelling — distance-0 stays hidden because that's an install
case, not a typo), the analyzer emits a `ReplaceLineValueFix`
suggesting the closest match. Preserves the version
constraint by reusing the installed spec when present
(e.g. `text.echi@^0.1` → `text.echo@^0.1`).
New public surface:
- `AddModuleSourceFix` + `AddModuleSourceCallback`
- `FlowEditorPage.storeCapabilities` + `onAddModuleSource`
- `FlowAnalyzer.stepSeverity` + the `kInputsNodeId` /
`kOutputsNodeId` sentinels
- `FlowIssueSeverity` enum + `FlowNode.issueSeverity`
Tests:
- Install fix only when in store
- AddModuleSourceFix as fallback when not in store
- Did-you-mean replaces install when a near miss exists
- stepSeverity populated for both step ids and pseudo-nodes
All 36 editor tests green. Bumped to 0.18.0.
Signed-off-by: flemming-it <sf@flemming.it>
27 lines
739 B
YAML
27 lines
739 B
YAML
name: fai_studio_flow_editor
|
|
description: Swappable inline YAML editor for F∆I Studio flows.
|
|
version: 0.18.0
|
|
publish_to: 'none'
|
|
repository: https://git.flemming.ai/fai/studio-flow-editor
|
|
|
|
environment:
|
|
sdk: ^3.11.0-200.1.beta
|
|
flutter: '>=3.30.0'
|
|
|
|
dependencies:
|
|
flutter:
|
|
sdk: flutter
|
|
# CodeMirror-style code editor + the highlight package's
|
|
# YAML grammar. Both are pure Dart so the editor stays
|
|
# WebView-free and ships in the same binary.
|
|
flutter_code_editor: ^0.3.5
|
|
highlight: ^0.7.0
|
|
# YAML parsing for the graph view's model layer. We
|
|
# round-trip text <-> graph via this; the graph never
|
|
# mutates the YAML directly.
|
|
yaml: ^3.1.2
|
|
|
|
dev_dependencies:
|
|
flutter_test:
|
|
sdk: flutter
|
|
flutter_lints: ^6.0.0
|