fix(studio): chain config dir + spawn path + doc URLs
Some checks failed
Security / Security check (push) Failing after 2s

Track the platform rename: the hub spawn path is now ~/.chain/bin/chain
(was ~/.fai/bin/fai.exe on Windows — both dir and binary were stale, so
Studio could not launch the hub after the config-dir rename), the
~/.fai/* help strings become ~/.chain/*, FAI_REGISTRY_TOKEN ->
CHAIN_REGISTRY_TOKEN, and the two in-app doc URLs point at the public
fai/chain repo (fai/platform was renamed to the private fai/chain-private).
The .fai module bundle extension is left unchanged (format phase).
flutter analyze: no issues.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
flemming-it 2026-06-16 09:38:30 +02:00
parent 7ff4fda2a3
commit 0f93d90963
18 changed files with 121 additions and 121 deletions

View file

@ -481,7 +481,7 @@ class _PathRow extends StatelessWidget {
/// Daemon control affordances: Restart, Apply update, Stop.
/// Each shells out to the `fai` binary (resolved via PATH or
/// `~/.fai/bin/chain`). Studio is the GUI shell; the binary owns
/// `~/.chain/bin/chain`). Studio is the GUI shell; the binary owns
/// the supervisor logic so the daemon and CLI stay in lockstep.
class _DaemonActionsCard extends StatefulWidget {
@override
@ -817,7 +817,7 @@ class _ServicesPanel extends StatelessWidget {
final l = AppLocalizations.of(context)!;
if (snapshot.services.isEmpty) {
// Wrap on narrow windows so the mono-spaced hint
// (`add to ~/.fai/config.yaml under services:`) does not
// (`add to ~/.chain/config.yaml under services:`) does not
// overflow horizontally past the card's right edge.
return FaiCard(
child: Wrap(

View file

@ -57,7 +57,7 @@ class _StorePageState extends State<StorePage> {
bool _todayDismissed = false;
/// The carousel of stories rendered in the hero. When an
/// operator-accepted story exists at `~/.fai/today/active.yaml`,
/// operator-accepted story exists at `~/.chain/today/active.yaml`,
/// it is the only entry (carousel collapses to a single
/// slide). Otherwise the curated fallback list rotates.
late final List<TodayStoryData> _todayStories = (() {
@ -2991,7 +2991,7 @@ class _ScreenshotPlaceholder extends StatelessWidget {
}
/// Compiled-in fallback stories shown when
/// `~/.fai/today/active.yaml` is absent or fails schema
/// `~/.chain/today/active.yaml` is absent or fails schema
/// validation. Operator can override at any time without
/// recompiling Studio see docs/today-pipeline.md. When the
/// operator accepts a story, that single story becomes the
@ -3082,9 +3082,9 @@ const List<TodayStoryData> _kFallbackTodayStories = <TodayStoryData>[
titleEn: 'Tamper-evident hash chain — built in',
titleDe: 'Manipulationssicher per Hash-Kette — eingebaut',
bodyEn:
'Every flow run, every install, every approval lands in ~/.fai/audit/ as a hash-chained event log. Any later edit invalidates the chain. CRA-ready out of the box — no compliance product to buy on top.',
'Every flow run, every install, every approval lands in ~/.chain/audit/ as a hash-chained event log. Any later edit invalidates the chain. CRA-ready out of the box — no compliance product to buy on top.',
bodyDe:
'Jeder Flow-Lauf, jede Installation, jede Freigabe landet in ~/.fai/audit/ als hash-verkettetes Event-Log. Jede spätere Änderung bricht die Kette. CRA-tauglich von Haus aus — kein Compliance-Produkt zum Aufkaufen nötig.',
'Jeder Flow-Lauf, jede Installation, jede Freigabe landet in ~/.chain/audit/ als hash-verkettetes Event-Log. Jede spätere Änderung bricht die Kette. CRA-tauglich von Haus aus — kein Compliance-Produkt zum Aufkaufen nötig.',
ctaLabelEn: '',
ctaLabelDe: '',
icon: Icons.timeline_outlined,
@ -3110,9 +3110,9 @@ const List<TodayStoryData> _kFallbackTodayStories = <TodayStoryData>[
titleEn: 'Build a module in a single Rust file',
titleDe: 'Ein Modul in einer einzigen Rust-Datei bauen',
bodyEn:
'fai-module-sdk gives you a #[fai::module] macro and a Cargo target. Declare inputs / outputs in module.yaml, write the function, cargo build, drop the wasm in ~/.fai/modules. The hub picks it up at next list. Polyglot SDKs follow in Phase 1.',
'fai-module-sdk gives you a #[fai::module] macro and a Cargo target. Declare inputs / outputs in module.yaml, write the function, cargo build, drop the wasm in ~/.chain/modules. The hub picks it up at next list. Polyglot SDKs follow in Phase 1.',
bodyDe:
'fai-module-sdk liefert ein #[fai::module]-Makro und ein Cargo-Target. Inputs / Outputs in module.yaml deklarieren, Funktion schreiben, cargo build, das wasm in ~/.fai/modules legen. Der Hub erkennt es beim nächsten Listing. Polyglott-SDKs folgen in Phase 1.',
'fai-module-sdk liefert ein #[fai::module]-Makro und ein Cargo-Target. Inputs / Outputs in module.yaml deklarieren, Funktion schreiben, cargo build, das wasm in ~/.chain/modules legen. Der Hub erkennt es beim nächsten Listing. Polyglott-SDKs folgen in Phase 1.',
ctaLabelEn: '',
ctaLabelDe: '',
icon: Icons.code_outlined,

View file

@ -1123,7 +1123,7 @@ class _DocReaderError {
});
String get forgejoUrl =>
'https://git.flemming.ai/fai/platform/src/branch/main/docs/architecture/$slug.md';
'https://git.flemming.ai/fai/chain/src/branch/main/docs/architecture/$slug.md';
/// Localized, operator-facing failure body. Use this for any
/// on-screen rendering; [toString] stays English for logs.