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

@ -37,7 +37,7 @@
"errOutputTooLarge": "Step-Output hat die Größenbegrenzung überschritten.",
"errOutputTooLargeHint": "Entweder Output kürzen (Text truncaten, Bytes komprimieren) oder `max_output_size_mb` in der Operator-Config erhöhen.",
"errServiceUnavailableForStep": "Host-Service nicht konfiguriert.",
"errServiceUnavailableForStepHint": "Das Modul braucht einen Service (z.B. ollama, playwright), den der Operator nicht deklariert hat. Trage ihn unter `services:` in ~/.fai/config.yaml ein.",
"errServiceUnavailableForStepHint": "Das Modul braucht einen Service (z.B. ollama, playwright), den der Operator nicht deklariert hat. Trage ihn unter `services:` in ~/.chain/config.yaml ein.",
"errMissingValue": "Pflichtwert fehlt.",
"errMissingValueHint": "Der Step erwartet eine Eingabe, die nicht verdrahtet ist — entweder zur Laufzeit liefern oder den vorgelagerten `$ref` korrigieren.",
"errMcpUnreachable": "MCP-Endpunkt nicht erreichbar.",
@ -148,7 +148,7 @@
"settingsHubEndpointHint": "Wohin soll Studio sich verbinden? Standard ist der lokale Hub auf 127.0.0.1:50051.",
"settingsTlsSubtitle": "https/grpc-secure",
"settingsPortError": "Port muss 165535 sein",
"channelsBlurb": "Hub-Kanal wechseln (schreibt ~/.fai/current-channel und startet den Daemon neu). Verbinden ändert nur die Wire von Studio.",
"channelsBlurb": "Hub-Kanal wechseln (schreibt ~/.chain/current-channel und startet den Daemon neu). Verbinden ändert nur die Wire von Studio.",
"channelsActionsTooltip": "Kanal-Aktionen",
"systemAiHeader": "SYSTEM-AI",
"systemAiEnabled": "aktiv",
@ -433,7 +433,7 @@
"storeOpenRepoButton": "Repository im Browser öffnen",
"storeDocsErrorNotFound": "Dieses Modul ist nicht im Store-Index des Hubs enthalten.",
"storeDocsErrorNoDocs": "Für dieses Modul ist keine Repository-URL hinterlegt.",
"storeDocsErrorAuth": "Die Registry erfordert Authentifizierung, um dieses README zu laden. Setze FAI_REGISTRY_TOKEN in der Umgebung des Daemons und starte den Hub neu.",
"storeDocsErrorAuth": "Die Registry erfordert Authentifizierung, um dieses README zu laden. Setze CHAIN_REGISTRY_TOKEN in der Umgebung des Daemons und starte den Hub neu.",
"storeDocsErrorNetwork": "Netzwerkfehler beim Laden des README. {detail}",
"@storeDocsErrorNetwork": {
"placeholders": {
@ -607,7 +607,7 @@
"auditClearLogButton": "Log löschen",
"modulesTitle": "Module",
"modulesNoneTitle": "Noch keine Module",
"modulesNoneHint": "`chain install <capability-name>` ausführen oder ~/.fai/modules/ prüfen.",
"modulesNoneHint": "`chain install <capability-name>` ausführen oder ~/.chain/modules/ prüfen.",
"modulesReloadTooltip": "Aktualisieren",
"modulesRecentActivity": "LETZTE AKTIVITÄT",
"modulesRecentActivityHint": "letzte {n} install/uninstall-Ereignisse aus dem Audit-Log",
@ -758,7 +758,7 @@
}
},
"registryCredentialsHeader": "REGISTRY-ZUGANGSDATEN",
"registryCredentialsBlurb": "Token zum Herunterladen von .fai-Modulen aus einer Registry mit Anmeldepflicht (Forgejo, private GitHub-Repos). Gespeichert in ~/.fai/registry-token, Modus 0600. Die Umgebungsvariable FAI_REGISTRY_TOKEN hat weiterhin Vorrang, wenn gesetzt.",
"registryCredentialsBlurb": "Token zum Herunterladen von .fai-Modulen aus einer Registry mit Anmeldepflicht (Forgejo, private GitHub-Repos). Gespeichert in ~/.chain/registry-token, Modus 0600. Die Umgebungsvariable CHAIN_REGISTRY_TOKEN hat weiterhin Vorrang, wenn gesetzt.",
"registryTokenStatusConfigured": "Konfiguriert ({chars} Zeichen)",
"@registryTokenStatusConfigured": {
"placeholders": {
@ -772,7 +772,7 @@
"registryTokenFieldHint": "Forgejo- oder GitHub-PAT einfügen",
"registryTokenSaveButton": "Speichern",
"registryTokenClearButton": "Entfernen",
"registryTokenStorageHint": "Lokal gespeichert in ~/.fai/registry-token. Wird nie an einen Remote-Dienst übertragen.",
"registryTokenStorageHint": "Lokal gespeichert in ~/.chain/registry-token. Wird nie an einen Remote-Dienst übertragen.",
"registryTokenSavedToast": "Registry-Token gespeichert.",
"registryTokenClearedToast": "Registry-Token entfernt.",
"registryTokenSaveFailedToast": "Speichern fehlgeschlagen: {error}",
@ -784,7 +784,7 @@
}
},
"hubAuthTokenHeader": "HUB-AUTHENTIFIZIERUNG",
"hubAuthTokenBlurb": "Bearer-Token für die Studio-Anbindung an einen Hub mit aktivierter auth.tokens-Konfiguration (RBAC Level 2). Gespeichert in ~/.fai/hub-auth-token, Modus 0600. Studio sendet ihn als Authorization: Bearer bei jedem gRPC-Aufruf.",
"hubAuthTokenBlurb": "Bearer-Token für die Studio-Anbindung an einen Hub mit aktivierter auth.tokens-Konfiguration (RBAC Level 2). Gespeichert in ~/.chain/hub-auth-token, Modus 0600. Studio sendet ihn als Authorization: Bearer bei jedem gRPC-Aufruf.",
"hubAuthTokenStatusConfigured": "Eingerichtet ({chars} Zeichen)",
"@hubAuthTokenStatusConfigured": {
"placeholders": {
@ -798,7 +798,7 @@
"hubAuthTokenFieldHint": "Token aus dem auth.tokens-Eintrag des Hub-Operators einfügen",
"hubAuthTokenSaveButton": "Speichern",
"hubAuthTokenClearButton": "Entfernen",
"hubAuthTokenStorageHint": "Lokal gespeichert in ~/.fai/hub-auth-token. Studio verbindet nach dem Speichern automatisch neu, der Token wirkt sofort.",
"hubAuthTokenStorageHint": "Lokal gespeichert in ~/.chain/hub-auth-token. Studio verbindet nach dem Speichern automatisch neu, der Token wirkt sofort.",
"hubAuthTokenSavedToast": "Hub-Token gespeichert.",
"hubAuthTokenClearedToast": "Hub-Token entfernt.",
"hubAuthTokenSaveFailedToast": "Speichern fehlgeschlagen: {error}",
@ -830,15 +830,15 @@
"defaultScopeLoadFailed": "Standard-Scope konnte nicht geladen werden.",
"defaultScopeNonEmptyError": "Standard-Scope darf nicht leer sein — mindestens ein Segment muss erhalten bleiben.",
"maintenanceHeader": "HUB-WARTUNG",
"maintenanceResetBlurb": "Operator-Zustand zurücksetzen und mit einem sauberen Hub neu starten. Stoppt jeden laufenden Daemon, sichert ~/.fai/ atomar in ein Backup, legt es dann neu an — Binary, Channel-Pointer, MCP-/n8n-/System-AI-Konfiguration und Registry-Token bleiben erhalten. Wiederherstellen durch Zurückverschieben des Backup-Ordners.",
"maintenanceResetBlurb": "Operator-Zustand zurücksetzen und mit einem sauberen Hub neu starten. Stoppt jeden laufenden Daemon, sichert ~/.chain/ atomar in ein Backup, legt es dann neu an — Binary, Channel-Pointer, MCP-/n8n-/System-AI-Konfiguration und Registry-Token bleiben erhalten. Wiederherstellen durch Zurückverschieben des Backup-Ordners.",
"maintenanceKeepModulesTitle": "Installierte Module behalten",
"maintenanceKeepModulesSubtitle": "Standardverhalten löscht ~/.fai/modules/, damit eine frische Installation den Modul-Bezugspfad end-to-end verifizieren kann.",
"maintenanceKeepModulesSubtitle": "Standardverhalten löscht ~/.chain/modules/, damit eine frische Installation den Modul-Bezugspfad end-to-end verifizieren kann.",
"maintenanceKeepDataTitle": "Protokoll + gespeicherte Flows behalten",
"maintenanceKeepDataSubtitle": "Standardverhalten löscht ~/.fai/data/, damit die Audit-Kette mit einer neuen Genesis startet und die mitgelieferten Sample-Flows beim ersten Daemon-Start neu importiert werden.",
"maintenanceKeepDataSubtitle": "Standardverhalten löscht ~/.chain/data/, damit die Audit-Kette mit einer neuen Genesis startet und die mitgelieferten Sample-Flows beim ersten Daemon-Start neu importiert werden.",
"maintenanceResetButton": "Hub zurücksetzen",
"maintenanceResetInProgress": "Zurücksetzen…",
"maintenanceResetConfirmTitle": "Hub zurücksetzen?",
"maintenanceResetConfirmBody": "Stoppt jeden Daemon, verschiebt ~/.fai/ in ein Backup mit Zeitstempel und startet sauber neu. Das Backup ist vollständig wiederherstellbar. Fortfahren?",
"maintenanceResetConfirmBody": "Stoppt jeden Daemon, verschiebt ~/.chain/ in ein Backup mit Zeitstempel und startet sauber neu. Das Backup ist vollständig wiederherstellbar. Fortfahren?",
"maintenanceResetConfirmButton": "Zurücksetzen",
"welcomeChecklistAllSetTitle": "Du bist eingerichtet.",
"welcomeChecklistAllSetBody": "Drei Stränge, an denen du als nächstes ziehen kannst:",
@ -948,15 +948,15 @@
"errNotFoundHint": "Das Angefragte ist nicht hier — entweder entfernt oder nie existiert.",
"errAlreadyExists": "Existiert bereits.",
"errPermissionDenied": "Berechtigung verweigert.",
"errPermissionDeniedHint": "Die Operator-Policy des Hubs blockiert diese Aktion. `~/.fai/config.yaml` prüfen.",
"errPermissionDeniedHint": "Die Operator-Policy des Hubs blockiert diese Aktion. `~/.chain/config.yaml` prüfen.",
"errFailedPrecondition": "Setup-Problem hat das blockiert.",
"errFailedPreconditionHint": "Der Hub konnte nicht weiter, weil etwas Vorausgesetztes fehlt. Details unten erklären was.",
"errInternal": "Unerwarteter interner Fehler.",
"errInternalHint": "Hub-Logs unter `~/.fai/logs/` prüfen. Wenn das öfter passiert, bitte melden.",
"errInternalHint": "Hub-Logs unter `~/.chain/logs/` prüfen. Wenn das öfter passiert, bitte melden.",
"errUnavailable": "Hub nicht erreichbar.",
"errUnavailableHint": "Sicherstellen, dass `chain serve` (oder `chain daemon start`) läuft und der Daemon-Endpunkt zu Studios Einstellungen passt.",
"errUnauthenticated": "Authentifizierung erforderlich.",
"errUnauthenticatedHint": "`FAI_REGISTRY_TOKEN` setzen oder in den Einstellungen anmelden, dann erneut versuchen.",
"errUnauthenticatedHint": "`CHAIN_REGISTRY_TOKEN` setzen oder in den Einstellungen anmelden, dann erneut versuchen.",
"errCopyDetail": "Detail kopieren",
"errDetailCopied": "Detail in die Zwischenablage kopiert.",
"flowsOutputUnknown": "Unbekannter Output-Payload-Typ.",
@ -1111,7 +1111,7 @@
},
"doctorApprovalsAttentionPill": "wichtig",
"doctorServicesEmpty": "Keine Host-Dienste deklariert",
"doctorServicesEmptyHint": "in ~/.fai/config.yaml unter services: hinzufügen",
"doctorServicesEmptyHint": "in ~/.chain/config.yaml unter services: hinzufügen",
"doctorPillLoaded": "geladen",
"doctorPillEmpty": "leer",
"doctorRecheckTooltip": "Erneut prüfen",
@ -1477,7 +1477,7 @@
"settingsIntegrationsPanelTitle": "Integrationen",
"settingsIntegrationsPanelBody": "Externe Tool-Server, deren Capabilities der Hub föderiert. MCP-Server bieten Tool-Endpunkte; n8n-Endpunkte stellen gehostete Workflows bereit.",
"settingsSecurityPanelTitle": "Sicherheit & Zugangsdaten",
"settingsSecurityPanelBody": "Tokens, die der Hub für dich verwahrt. Liegen in ~/.fai/ mit Modus 0600; werden nie als Telemetrie versendet.",
"settingsSecurityPanelBody": "Tokens, die der Hub für dich verwahrt. Liegen in ~/.chain/ mit Modus 0600; werden nie als Telemetrie versendet.",
"settingsMaintenancePanelTitle": "Wartung",
"settingsMaintenancePanelBody": "Destruktive Aktionen, abgesichert durch explizite Bestätigungs-Dialoge. Nutzen z.B. beim Re-Pilot-Testen oder Debuggen.",
"tooltipMoveUp": "Nach oben",