F∆I Studio — desktop GUI for the F∆I hub
Find a file
flemming-it 065939be74
Some checks are pending
Security / Security check (push) Waiting to run
feat(setup): first-run gate, hub-first preview, honest wording — setup before the app
Stefan's live findings, all four addressed at the root:

- 'In 3 Fragen loslegen' read like ad copy → the entry is now plainly
  'Einrichtung starten' / 'Start setup'.
- The setup button sat permanently on the Welcome page of a running
  app ('setup after the app runs is backwards' — reported twice). A
  fresh install now starts INSIDE the setup: SetupGateScreen hosts
  the wizard embedded as the page (new embedded/onFinished modes on
  GuidedSetupDialog), with an explicit 'Später einrichten' skip.
  Welcome loses the setup button entirely and stays a calm intro.
- Re-running the setup later lives in Settings → General ('Run setup
  again…'), the single post-first-run home.
- 'You must grant access first and only then see what will be done':
  the preview used to spawn the chain CLI, whose first run could pop
  the macOS permission prompt BEFORE the plan was ever shown. The
  preview now calls the new PlanSetup RPC over the live hub
  connection (no subprocess, nothing granted); the CLI remains only
  a fallback when no hub is reachable — and applying stays the
  explicit, separate step.

Widget tests: gate hosts the wizard + skip/cancel leave it; CLI-path
tests drive the fallback through the new hub-preview test seam.
Suite 76 green, analyze clean.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
2026-07-17 00:59:22 +02:00
.forgejo/workflows ci(security): add self-test harness (mirror of fai/platform) 2026-05-10 21:41:23 +02:00
.githooks docs: old product name F∆I Platform -> Ch∆In + contact chain@flemming.ai 2026-06-16 10:14:30 +02:00
assets feat: detached-runs monitor page (T3 parity) 2026-07-12 14:43:37 +02:00
docs fix(shell): daemon-start and health-poll auth handling; policy panel freshness 2026-07-15 05:50:24 +02:00
integration_test feat(settings): hub auth-policy panel — T4/T5 security parity in the GUI 2026-07-15 03:19:33 +02:00
lib feat(setup): first-run gate, hub-first preview, honest wording — setup before the app 2026-07-17 00:59:22 +02:00
linux fix(ui): window title Ch∆In Studio (was F∆I); de-dup federation add-satellite 2026-06-18 12:53:35 +02:00
macos fix: survive corrupt preferences at startup; drop CocoaPods leftovers 2026-07-15 10:46:22 +02:00
test feat(setup): first-run gate, hub-first preview, honest wording — setup before the app 2026-07-17 00:59:22 +02:00
tools feat(settings): hub auth-policy panel — T4/T5 security parity in the GUI 2026-07-15 03:19:33 +02:00
windows refactor: rename app fai_studio -> chain_studio 2026-06-16 17:48:11 +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 fix: survive corrupt preferences at startup; drop CocoaPods leftovers 2026-07-15 10:46:22 +02:00
CLAUDE.md docs: add CLAUDE.md with UI verification gate (screenshot light+dark, click-flow) 2026-07-13 14:10:14 +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 test: deterministic operator-guide screenshot harness 2026-07-13 00:47:41 +02:00
pubspec.yaml test: deterministic operator-guide screenshot harness 2026-07-13 00:47:41 +02:00
README.md docs: replace stale MVP-scaffold README with the current v0.70 reality 2026-07-07 13:44:40 +02:00

Ch∆In Studio

Desktop GUI client for the Ch∆In Platform hub. Tier-2 generic platform client per docs/architecture/client.md in the platform repo. Connects to a local or remote chain serve over gRPC / gRPC-Web.

Status: live product (v0.70+). Every page talks to the hub through chain_client_sdk; there is no mock data. End users launch Studio via chain studio, which downloads and verifies a prebuilt bundle from the release mirror (sha256 + signature) or rebuilds from source when a dev workspace is configured.

Pages

  1. Welcome — onboarding checklist, guided setup wizard, bundled documentation reader.
  2. Store — browse/search/install modules across multiple stores (pinned publisher keys, private sources, AI AskBar); installed modules live here as a filter.
  3. Flows — graph + text flow editor with a live Run tab (streamed step events, inline approvals). Editor ships as the chain_studio_flow_editor package.
  4. Audit — live event stream (StreamEvents) with filters, hash-chain verification, gated log reset.
  5. Approvals — pending system.approval@^0 reviews with approve / reject and payload disclosure.
  6. Doctor — diagnostics, daemon lifecycle, binary recovery.
  7. Föderation — satellite list, bootstrap-token enrolment, revocation.

Plus: settings dialog (System-AI, integrations/MCP/n8n, security, maintenance), Cmd+K palette, release-channel switcher.

Stack

  • Flutter 3.40+ (Desktop: macOS, Linux, Windows)
  • gRPC client via chain_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      # or -d linux / -d windows
flutter test

chain studio prefers a configured dev workspace and will flutter run from source when one resolves — see crates/chain_runtime_mgmt in the platform repo.

Repo placement

Published as fai/chain-studio on Forgejo (git.flemming.ai). The local directory follows the established fai_chain_* 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.