chain-studio/pubspec.yaml
flemming-it cf4024a4e2 test: deterministic operator-guide screenshot harness
integration_test/guide_shots_test.dart boots a hermetic hub
(HubFixture), seeds demo projects (open Bürgeramt; sealed
Ratsinformation and a setup.applied audit event only when the
runner confirms an isolated $HOME), launches the app in German +
dark mode, walks every sidebar page in Cmd order with
content-aware waits, opens the workspace switcher and the setup
wizard, and writes the guide PNGs via a driverless RepaintBoundary
capture. Driven by the platform repo's scripts/regen-studio-guide.sh.

Also fixes the hub fixture's binary resolution, dead since the
rename (it looked for 'fai' and ../chain_platform/): now $CHAIN_BIN,
'chain' on PATH, then ../fai_chain/target/{release,debug}/chain —
the integration tests actually run again instead of silently
skipping.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
2026-07-13 00:47:41 +02:00

95 lines
3.3 KiB
YAML

name: chain_studio
description: "Ch∆In Studio — desktop GUI for the Ch∆In hub"
publish_to: 'none'
version: 0.70.0
environment:
sdk: ^3.11.0-200.1.beta
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
cupertino_icons: ^1.0.8
intl: any
# `@visibleForTesting` annotation on FaiLog's test seam.
meta: any
# Sibling package; will move to Forgejo path once published.
chain_client_sdk:
path: ../fai_chain_client_sdk_dart
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.
chain_studio_flow_editor:
git:
url: https://git.flemming.ai/fai/chain-studio-flow-editor
# Tag-pinned so a CI (override-free) build is reproducible and an
# editor push can't retroactively change what a Studio release
# builds against. Bump this in lockstep with the editor tag.
ref: v0.22.0
dev_dependencies:
flutter_test:
sdk: flutter
integration_test:
sdk: flutter
flutter_lints: ^6.0.0
# Local-development override: while editing the swappable flow
# editor alongside Studio, point at the sibling working tree so
# changes are picked up on the next Studio reload without push
# + `pub upgrade`. Comment the block out before tagging a Studio
# release so the committed Git ref is what builds on Forgejo CI.
dependency_overrides:
chain_studio_flow_editor:
path: ../fai_chain_studio_flow_editor
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/
# Bundled fonts — Inter (UI) + JetBrains Mono (technical
# strings). Shipped as assets rather than fetched at runtime
# via google_fonts so the app works fully offline / air-gapped
# (KRITIS) and never shows a font-swap flash on first paint.
fonts:
- family: Inter
fonts:
- asset: assets/fonts/Inter-Regular.ttf
weight: 400
- asset: assets/fonts/Inter-Medium.ttf
weight: 500
- asset: assets/fonts/Inter-SemiBold.ttf
weight: 600
- asset: assets/fonts/Inter-Bold.ttf
weight: 700
- family: JetBrains Mono
fonts:
- asset: assets/fonts/JetBrainsMono-Regular.ttf
weight: 400
- asset: assets/fonts/JetBrainsMono-Medium.ttf
weight: 500