F∆I Studio — desktop GUI for the F∆I hub
Find a file
flemming-it 634fd52635
Some checks failed
Security / Security check (push) Failing after 1s
feat(studio): Flows page IS the editor — three-tab graph+text+run
Studio's Flows destination is now the swappable
fai_studio_flow_editor's full surface: a drag-and-drop
graph view, the raw YAML text editor, and the run tab
with inputs form + live step progress + outputs.

What's gone:
 - The old saved-flows list + per-row run dialog.
 - The separate "flow-editor" navigation destination (one
   icon, not two — operators reach the editor by clicking
   Flows, period).
 - _FlowEditorAdapter (no longer needed; FlowsPage hands
   the runDriver to the editor directly).

What's new:
 - lib/data/flow_run_driver.dart — StudioFlowRunDriver:
   adapter implementing the editor's FlowRunDriver. Maps
   runFlow() to HubService.runSavedFlow and events() to
   HubService.streamEvents filtered to step.* event types.
   Converts proto-shaped FlowOutput variants to the editor's
   host-agnostic FlowOutputValue family.
 - lib/pages/flows.dart — replaced with a 50-line wrapper
   that loads capabilities into the editor's picker dropdown
   and forwards the active locale.

Editor pinned to fai_studio_flow_editor 0.2.0 (commit
870cbc2). All editor state — file list, dirty tracking, tab
selection, graph layout sidecar, properties panel — lives in
the editor package now; Studio just supplies the hub bridge.

Version 0.51.10 -> 0.52.0 (minor bump — Flows-page contract
changed, separate flow-editor destination removed).

flutter analyze: 0 issues. flutter test: 12/12 green.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
2026-06-01 00:52:23 +02:00
.forgejo/workflows ci(security): add self-test harness (mirror of fai/platform) 2026-05-10 21:41:23 +02:00
.githooks ci(hooks): pre-commit security check (mirror of fai/platform) 2026-05-09 13:32:26 +02:00
assets/docs feat(studio): Welcome page Phase B — embedded doc reader (v0.38.0) 2026-05-09 00:24:31 +02:00
docs chore(security): externalise confidentiality term list 2026-05-25 21:06:17 +02:00
lib feat(studio): Flows page IS the editor — three-tab graph+text+run 2026-06-01 00:52:23 +02:00
linux fix(studio): larger default window — 1440x900 across all platforms 2026-06-01 00:06:04 +02:00
macos fix(studio): larger default window — 1440x900 across all platforms 2026-06-01 00:06:04 +02:00
test feat(studio): swap built-in flow editor for fai_studio_flow_editor package (v0.51.0) 2026-05-30 14:36:54 +02:00
tools chore(security): externalise confidentiality term list 2026-05-25 21:06:17 +02:00
windows fix(studio): larger default window — 1440x900 across all platforms 2026-06-01 00:06:04 +02:00
.gitignore feat: F∆I Studio MVP scaffold (Tier-2 desktop GUI) 2026-05-05 14:19:39 +02:00
.metadata feat: F∆I Studio MVP scaffold (Tier-2 desktop GUI) 2026-05-05 14:19:39 +02:00
.security-allow ci(hooks): pre-commit security check (mirror of fai/platform) 2026-05-09 13:32:26 +02:00
analysis_options.yaml feat: F∆I Studio MVP scaffold (Tier-2 desktop GUI) 2026-05-05 14:19:39 +02:00
l10n.yaml feat(studio): app-wide i18n via flutter_localizations (v0.24.0) 2026-05-08 01:19:32 +02:00
pubspec.lock feat(studio): Flows page IS the editor — three-tab graph+text+run 2026-06-01 00:52:23 +02:00
pubspec.yaml feat(studio): Flows page IS the editor — three-tab graph+text+run 2026-06-01 00:52:23 +02:00
README.md chore(studio): switch to fai_client_sdk (renamed from fai_dart_sdk) 2026-05-26 13:46:32 +02:00

F∆I Studio

Desktop GUI client for the F∆I Platform hub. Tier-2 generic platform client per docs/architecture/client.md. Connects to a local or remote fai serve over gRPC.

Status (2026-05-05): MVP scaffold. Three pages with mock data, no live gRPC connection yet. Validates the visual direction before the Dart SDK is wired in.

Pages (MVP scope)

  1. Modules — installed modules, capabilities, declared permissions. Click → manifest detail.
  2. Audit — live stream of hub events (when wired). Filter by event type and flow.
  3. Approvals — pending system.approval@^0 reviews with approve / reject buttons.

These three cover the platform's central properties: composition (modules), audit (events), human-in-the-loop (approvals).

Stack

  • Flutter 3.40+ (Desktop: macOS, Linux, Windows)
  • gRPC client via fai_client_sdk (sibling repo; pinned by relative path during development)
  • No external runtime dependencies; bundles its own Dart VM

Run locally

flutter run -d macos

Repo placement

Will be published as fai/studio on Forgejo (git.flemming.ws). The local directory fai_studio/ follows the established fai_platform/ layout convention.

Why "Studio" and not "Stage"

"Stage" collided too easily with "staging environment" in developer English. "Studio" is the established industry pattern for creator-tools (Visual Studio, Android Studio, RStudio) and matches the GUI's audience of module developers, operators, and power users. The rename was applied across all docs/ in the platform repo on 2026-05-05.