chain-studio/pubspec.yaml
flemming-it ba1a1a4f06
Some checks are pending
Security / Security check (push) Waiting to run
feat(studio): live step-progress in flow-run dialog
The flow-run dialog showed a single spinner + "running…" label
for the whole run. For multi-step flows the operator had no
way to see *which* step was busy or how close the run was to
finishing.

Replace the spinner with a live step list driven by a
StreamEvents subscription:

  ✔ extract       0.41s
   summarize
  ◻ notify
  ━━━━━━━━━━────  35%

Mirrors the `fai run` CLI rendering — one shared visual
language across both surfaces. Steps appear in execution
order as the hub emits step.started events; check + duration
on completion; cross + first-line error on failure; pause
icon on approval gates.

Implementation:

 - HubService.streamEvents(backfill, types) — new public
   stream-facade method that wraps HubClient.streamEvents and
   maps proto LoggedEvent → AuditEvent for the rest of Studio.
   Subscribed with backfill=0 so the dialog only sees events
   from this very run.

 - _FlowRunDialogState.initState subscribes BEFORE submitting
   the run, so the first step.started never gets lost in the
   gRPC handshake gap.

 - Two-layer filter on incoming events: same flow name AND
   timestamp >= dialog open time. The timestamp gate is what
   stops a previous run's tail-end from painting stale rows
   if the user re-runs the same saved flow.

 - _LiveStep + _LiveStepList — insertion-ordered map renders
   rows in runtime execution order (not alphabetical), so
   what the operator sees matches what the hub did.

Version 0.51.5 → 0.51.6.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
2026-05-31 22:57:21 +02:00

59 lines
1.8 KiB
YAML

name: fai_studio
description: "F∆I Studio — desktop GUI for the F∆I hub"
publish_to: 'none'
version: 0.51.6
environment:
sdk: ^3.11.0-200.1.beta
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
cupertino_icons: ^1.0.8
intl: any
# Sibling package; will move to Forgejo path once published.
fai_client_sdk:
path: ../fai_client_sdk_dart
google_fonts: ^8.1.0
shared_preferences: ^2.5.5
# Inline README rendering inside the Store detail sheet.
# `flutter_markdown` is discontinued; `flutter_markdown_plus`
# is the actively-maintained drop-in fork (same
# `MarkdownStyleSheet` / `Markdown` / `MarkdownBody` API).
flutter_markdown_plus: ^1.0.3
# Today-Hero pipeline reads accepted stories from
# ~/.fai/today/active.yaml — see docs/today-pipeline.md.
yaml: ^3.1.2
path: ^1.9.0
# System-native file picker — used by the Flows run-flow
# form for `bytes`-shaped inputs (extract takes a PDF, the
# operator clicks "Choose file" and macOS / Linux / Windows
# routes through the OS dialog so sandboxed Studio still
# gets read access to the chosen file).
file_picker: ^11.0.0
# Swappable flow editor — lives in its own repo so it can
# be replaced without touching the rest of Studio. Pin to a
# commit (or branch) here; rebuild Studio to pick up
# editor-side changes.
fai_studio_flow_editor:
git:
url: https://git.flemming.ai/fai/studio-flow-editor
ref: main
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^6.0.0
flutter:
uses-material-design: true
generate: true
# Bundled operator-facing documentation rendered inline by
# the Welcome page. Each doc has a `_de.md` sibling for the
# German locale; the loader picks the right pair at runtime.
# Air-gap-friendly — no network calls to read these.
assets:
- assets/docs/