chain-studio-flow-editor/CHANGELOG.md
flemming-it 9e73036d0e feat: project chip + file-wins guard (multi-project stage 2)
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>
2026-07-12 14:20:15 +02:00

143 lines
5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Changelog
All notable changes to `chain_studio_flow_editor` recorded here.
Studio bumps its `pubspec.yaml` git ref to a specific release
of this package on every editor change.
## 0.22.0 — 2026-07-12
### Added
- **Project chip (multi-project stage ②).** When the open flow file
declares its own top-level `project:`, the editor shows it as a chip
in the tab action strip. If the file's project differs from the host's
active workspace, the chip becomes an amber "file wins" pill with a
one-click *Switch to <project>* action — the file always wins for the
run; switching only aligns the workspace view. New optional
`FlowEditorPage.activeProject` + `onSwitchToFileProject`; the parse +
normalize logic (mirrors the hub's `normalize_project_slug`) lives in
`flow_project.dart` and is unit-tested.
## 0.21.2 — 2026-07-11
### Added
- **Per-row start button.** Runnable flows (no missing modules) get a
play button in the flow list that opens them directly on the Run
tab — one click from the list to entering inputs and starting
(usertest quick win).
## 0.21.1 — 2026-07-11
### Fixed
- **Toolbar names the page, not the missing state.** With no flow
open the header said "No flow open" / "Kein Flow geöffnet" — the
usertest read it as a confusing page title. It now says "Flows";
the state sentence stays in the centered empty state.
- **"Needs N modules" chip no longer overflows the flow list.** The
label ellipsizes inside the narrow sidebar (the tooltip keeps the
full text); previously it tripped a RenderFlex overflow by a few
pixels on longer German labels.
## 0.21.0 — 2026-06-09
### Added
- **Diagnostic-strip "Beheben" button** opens a focused modal
enumerating every issue with its quick-fix actions plus an
"apply every quick fix" master button. Replaces the
cramped expand-strip workflow for operators who want a
deliberate dialog instead of scrolling in a 200-px footer.
- **Inline Approve / Reject in the Run tab**. When the hub
pauses a flow on `system.approval@^0`, the Run tab now
renders a complete approve / reject form directly under the
awaiting step. The operator no longer needs to switch to the
Approvals page mid-run.
- **`FlowRunDriver` extended** with three new methods (default
implementations throw with a clear message so legacy hosts
keep compiling): `pendingApprovalIdForStep`,
`approveApproval`, `rejectApproval`.
## 0.20.1 — 2026-06-09
### Changed
- **Flow list rows** in the sidebar get a leading 28×28 icon
tile (`account_tree_outlined`), active-row accent + weight,
and compact byte formatting (B / KB / MB). Long names no
longer overflow into a multi-line ellipsis; size strings
read as `4.3 KB` instead of `4321 B`.
## 0.20.0 — 2026-06-09
### Added
- **Localised analyzer + strip + run messages**. Every analyzer
message and every quick-fix label flows through the new
`AnalyzerStrings` adapter, populated from the editor's locale.
Strip + hover card + run-block tooltip + inline message
+ step row + CopyableErrorBox tooltips all moved to the
string table.
### Fixed
- **Real monospace font everywhere**. The editor previously
used `fontFamily: 'JetBrains Mono'` as a bare string with no
fallback. The package never bundled the font; only Studio
pre-loaded it via `google_fonts`. Hosts without Studio's
setup saw the YAML editor render in the system proportional
default. New `_monoTextStyle()` helper pins
`fontFamilyFallback` to a cross-platform monospace chain.
## 0.19.0 — 2026-06-08
### Added
- **Persistent diagnostic strip** below the TabBarView. Same
issue list visible on Graph + Text + Run tabs.
- **Run button blocked** when the analyzer reports errors.
Both the action-strip Run and the RunTab Start button gate
on `analyzerErrorCount`.
- **Run failures copyable** via a new `_CopyableErrorBox`.
## 0.18.0 — 2026-06-08
### Added
- **Graph nodes pulse on error**. Steps + pseudo-nodes
(inputs / outputs) carrying analyzer issues render a
breathing halo in the matching severity colour.
- **Store-aware install / add-source**. Analyzer takes a
`storeCapabilities` closure; unknown-capability fixes
switch between "Install" (in store) and "Add source for…"
(not in store).
- **Did-you-mean suggestion** within Levenshtein distance 2.
## 0.17.0 — 2026-06-08
### Added
- **Copyable diagnostics + hover tooltip + quick fixes**. Strip
rows use SelectableText with per-row Copy. Wavy underlines
publish hover-tooltip requests via a ValueNotifier; an
OverlayEntry card renders the message + fix buttons near
the cursor.
- **`InstallCapabilityFix`** delegates to a host callback
(`onInstallCapability`).
## 0.16.0 — 2026-06-08
### Fixed
- **Editor gutter glitches**. The `flutter_code_editor` gutter
hard-positioned an `Icons.cancel` pin in a 16-px slot with a
popup that painted over the code area. Hidden via
`showErrors: false`; replaced with a bottom diagnostic strip
the editor owns.
## 0.15.x — 0.14.x
Earlier development. See git log.