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

@ -137,7 +137,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get errServiceUnavailableForStepHint =>
'The module requires a service (e.g. ollama, playwright) the operator hasn\'t declared. Add it under `services:` in ~/.fai/config.yaml.';
'The module requires a service (e.g. ollama, playwright) the operator hasn\'t declared. Add it under `services:` in ~/.chain/config.yaml.';
@override
String get errMissingValue => 'Required value is missing.';
@ -448,7 +448,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get channelsBlurb =>
'Switch hub channel (writes ~/.fai/current-channel and restarts the daemon). Connect just changes Studio\'s wire.';
'Switch hub channel (writes ~/.chain/current-channel and restarts the daemon). Connect just changes Studio\'s wire.';
@override
String get channelsActionsTooltip => 'Channel actions';
@ -919,7 +919,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get storeDocsErrorAuth =>
'The registry requires authentication to fetch this README. Set FAI_REGISTRY_TOKEN in the daemon\'s environment and restart the hub.';
'The registry requires authentication to fetch this README. Set CHAIN_REGISTRY_TOKEN in the daemon\'s environment and restart the hub.';
@override
String storeDocsErrorNetwork(String detail) {
@ -1140,7 +1140,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get modulesNoneHint =>
'Run `chain install <capability-name>` or check ~/.fai/modules/.';
'Run `chain install <capability-name>` or check ~/.chain/modules/.';
@override
String get modulesReloadTooltip => 'Reload';
@ -1315,7 +1315,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get registryCredentialsBlurb =>
'Token used to download .fai modules from a registry behind a signin wall (Forgejo, GitHub-private). Stored at ~/.fai/registry-token, mode 0600. The FAI_REGISTRY_TOKEN env var still wins when set.';
'Token used to download .fai modules from a registry behind a signin wall (Forgejo, GitHub-private). Stored at ~/.chain/registry-token, mode 0600. The CHAIN_REGISTRY_TOKEN env var still wins when set.';
@override
String registryTokenStatusConfigured(int chars) {
@ -1340,7 +1340,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get registryTokenStorageHint =>
'Saved locally to ~/.fai/registry-token. Never sent to a remote service.';
'Saved locally to ~/.chain/registry-token. Never sent to a remote service.';
@override
String get registryTokenSavedToast => 'Registry token saved.';
@ -1358,7 +1358,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get hubAuthTokenBlurb =>
'Bearer token used to authenticate Studio against a hub that has auth.tokens: configured (RBAC Level 2). Stored at ~/.fai/hub-auth-token, mode 0600. Studio sends it as Authorization: Bearer on every gRPC call.';
'Bearer token used to authenticate Studio against a hub that has auth.tokens: configured (RBAC Level 2). Stored at ~/.chain/hub-auth-token, mode 0600. Studio sends it as Authorization: Bearer on every gRPC call.';
@override
String hubAuthTokenStatusConfigured(int chars) {
@ -1383,7 +1383,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get hubAuthTokenStorageHint =>
'Saved locally to ~/.fai/hub-auth-token. Studio reconnects after save so the new token takes effect immediately.';
'Saved locally to ~/.chain/hub-auth-token. Studio reconnects after save so the new token takes effect immediately.';
@override
String get hubAuthTokenSavedToast => 'Hub auth token saved.';
@ -1445,21 +1445,21 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get maintenanceResetBlurb =>
'Wipe operator state and start over with a clean hub. Stops every running daemon, atomically backs ~/.fai/ up, then recreates it with the binary, channel state, MCP / n8n / system-AI config, and registry token preserved. Restore by moving the backup directory back.';
'Wipe operator state and start over with a clean hub. Stops every running daemon, atomically backs ~/.chain/ up, then recreates it with the binary, channel state, MCP / n8n / system-AI config, and registry token preserved. Restore by moving the backup directory back.';
@override
String get maintenanceKeepModulesTitle => 'Keep installed modules';
@override
String get maintenanceKeepModulesSubtitle =>
'Default behaviour wipes ~/.fai/modules/ so a fresh install can verify the module-fetch path end-to-end.';
'Default behaviour wipes ~/.chain/modules/ so a fresh install can verify the module-fetch path end-to-end.';
@override
String get maintenanceKeepDataTitle => 'Keep audit log + saved flows';
@override
String get maintenanceKeepDataSubtitle =>
'Default behaviour wipes ~/.fai/data/ so the audit chain restarts from a fresh genesis and the bundled sample flows re-import on first daemon start.';
'Default behaviour wipes ~/.chain/data/ so the audit chain restarts from a fresh genesis and the bundled sample flows re-import on first daemon start.';
@override
String get maintenanceResetButton => 'Reset hub state';
@ -1472,7 +1472,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get maintenanceResetConfirmBody =>
'This stops every daemon, moves ~/.fai/ to a timestamped backup, and starts fresh. The backup is fully restorable. Continue?';
'This stops every daemon, moves ~/.chain/ to a timestamped backup, and starts fresh. The backup is fully restorable. Continue?';
@override
String get maintenanceResetConfirmButton => 'Reset';
@ -1624,7 +1624,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get errPermissionDeniedHint =>
'The hub\'s operator policy blocks this action. Check `~/.fai/config.yaml`.';
'The hub\'s operator policy blocks this action. Check `~/.chain/config.yaml`.';
@override
String get errFailedPrecondition => 'Setup issue blocked this.';
@ -1638,7 +1638,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get errInternalHint =>
'Check the hub logs at `~/.fai/logs/`. If this repeats, please report it.';
'Check the hub logs at `~/.chain/logs/`. If this repeats, please report it.';
@override
String get errUnavailable => 'Hub not reachable.';
@ -1652,7 +1652,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get errUnauthenticatedHint =>
'Set `FAI_REGISTRY_TOKEN` or sign in through Settings before retrying.';
'Set `CHAIN_REGISTRY_TOKEN` or sign in through Settings before retrying.';
@override
String get errCopyDetail => 'Copy detail';
@ -1843,7 +1843,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get doctorServicesEmptyHint =>
'add to ~/.fai/config.yaml under services:';
'add to ~/.chain/config.yaml under services:';
@override
String get doctorPillLoaded => 'loaded';
@ -2425,7 +2425,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get settingsSecurityPanelBody =>
'Tokens the hub holds on the operator\'s behalf. Stored in ~/.fai/ with mode 0600; never sent in telemetry.';
'Tokens the hub holds on the operator\'s behalf. Stored in ~/.chain/ with mode 0600; never sent in telemetry.';
@override
String get settingsMaintenancePanelTitle => 'Maintenance';