F∆I Studio — desktop GUI for the F∆I hub
Find a file
flemming-it b35bbc1b12 fix(studio): readable logs + in-app config.yaml viewer
- Strip ANSI / control characters when reading log files so daemon
  logs that carry colour escape codes render clean instead of as
  garbled special characters (the source side is fixed in the hub
  too; this is the defensive belt for existing files).
- Generalise the file viewer (read top-down + plain mode) and add an
  in-Studio "View" affordance for config.yaml / .yml / .toml on the
  Doctor paths panel, so config is readable without leaving Studio.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
2026-06-11 23:52:40 +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 feat(studio): first-run UX, recovery affordances, l10n, bundled fonts 2026-06-11 23:52:18 +02:00
docs chore(security): externalise confidentiality term list 2026-05-25 21:06:17 +02:00
lib fix(studio): readable logs + in-app config.yaml viewer 2026-06-11 23:52:40 +02:00
linux feat(studio): first-run UX, recovery affordances, l10n, bundled fonts 2026-06-11 23:52:18 +02:00
macos fix(studio): narrow default window to 1280x900 2026-06-01 16:06:50 +02:00
test feat(studio): friendlyError catches hub-specific patterns 2026-06-09 02:01:36 +02:00
tools chore(security): externalise confidentiality term list 2026-05-25 21:06:17 +02:00
windows feat(studio): first-run UX, recovery affordances, l10n, bundled fonts 2026-06-11 23:52:18 +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
CHANGELOG.md docs: studio CHANGELOG.md, covering 0.62.x → 0.68.0 2026-06-09 09:25:49 +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): first-run UX, recovery affordances, l10n, bundled fonts 2026-06-11 23:52:18 +02:00
pubspec.yaml feat(studio): first-run UX, recovery affordances, l10n, bundled fonts 2026-06-11 23:52:18 +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.