fix(studio): theme picker confirms applied + surfaces load failures
Some checks failed
Security / Security check (push) Failing after 2s
Some checks failed
Security / Security check (push) Failing after 2s
Two operator-visible fixes prompted by 'I picked a theme but
nothing changed':
- Theme picker tile taps now show a brief "Theme applied:
<name>" snackbar — the picker applies themes instantly, so
the operator needs a confirming cue. Slow `_pluginThemes`
loads no longer read as "click did nothing".
- `_pluginThemes` failures (plugin unreachable, manifest
drift, etc.) write to `FaiLog` so `fai admin doctor` and
Studio's inline log viewer can surface them. Previously
swallowed silently, which is what made debugging this so
miserable.
- Settings dialog's primary button relabelled to
"Connect to endpoint" (was "Save & connect") so operators
don't mistake it for "save my theme choice". The theme
selection persists at tile-tap time; the Settings dialog
has nothing left to "save".
- Theme section header gains an explicit "(applies instantly)"
cue for the same reason.
Also fixes a pre-existing curly-braces lint in the n8n add-
endpoint dialog. Studio bumped to 0.62.1, editor pinned via
path override at 0.15.1.
Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
parent
8f5cd2528b
commit
805f1b4c1f
9 changed files with 91 additions and 17 deletions
|
|
@ -104,7 +104,14 @@
|
|||
"mcpSuggestionMemoryDesc": "Anthropic — persistenter Knowledge-Graph als Agenten-Gedächtnis.",
|
||||
"mcpSuggestionTimeDesc": "Anthropic — aktuelle Uhrzeit + Zeitzonen-Konvertierung.",
|
||||
"mcpServerEnLanguageBadge": "Server-Text in Englisch — Studio zeigt ihn wie geliefert.",
|
||||
"themePluginHeader": "Theme-Plugin",
|
||||
"themePluginHeader": "Theme-Plugin (wirkt sofort)",
|
||||
"themeApplied": "Theme aktiv: {name}",
|
||||
"@themeApplied": {
|
||||
"placeholders": {
|
||||
"name": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"themePluginFailed": "Theme-Plugin konnte nicht geladen werden — vorheriges Theme bleibt.",
|
||||
"themePluginNone": "Standard (kein Plugin)",
|
||||
"themePluginHint": "Built-in- und Plugin-Kacheln bringen handkuratierte Paletten mit. Die Kachel „Eigene Farbe\" leitet aus einer gewählten Seedfarbe eine vollständige Material-3-Palette ab (primary, secondary, tertiary, surface, …) — das ist ein vollwertiges Theme, kein Einzelfarb-Tweak.",
|
||||
"themePluginEmpty": "Kein Theme-Plugin installiert. Im Store eines aus der Kategorie studio-plugin auswählen.",
|
||||
|
|
@ -118,7 +125,7 @@
|
|||
"settingsHost": "Host",
|
||||
"settingsPort": "Port",
|
||||
"settingsTls": "TLS",
|
||||
"settingsSaveAndConnect": "Speichern & verbinden",
|
||||
"settingsSaveAndConnect": "Mit Endpoint verbinden",
|
||||
"settingsLanguage": "Sprache",
|
||||
"settingsLanguageHint": "Sprache der App. Wirkt auf alle Seiten; mehrsprachige Store-Einträge folgen ebenfalls.",
|
||||
"settingsHubEndpointHint": "Wohin soll Studio sich verbinden? Standard ist der lokale Hub auf 127.0.0.1:50051.",
|
||||
|
|
|
|||
|
|
@ -107,7 +107,14 @@
|
|||
"mcpSuggestionMemoryDesc": "Anthropic — persistent knowledge graph for an agent's memory.",
|
||||
"mcpSuggestionTimeDesc": "Anthropic — current time + timezone conversion.",
|
||||
"mcpServerEnLanguageBadge": "Server text in English — Studio shows it as supplied.",
|
||||
"themePluginHeader": "Theme plugin",
|
||||
"themePluginHeader": "Theme plugin (applies instantly)",
|
||||
"themeApplied": "Theme applied: {name}",
|
||||
"@themeApplied": {
|
||||
"placeholders": {
|
||||
"name": {"type": "String"}
|
||||
}
|
||||
},
|
||||
"themePluginFailed": "Theme plugin could not load — keeping previous theme.",
|
||||
"themePluginNone": "Built-in (no plugin)",
|
||||
"themePluginHint": "Built-in and plugin tiles ship hand-curated palettes. The Custom tile derives a full Material 3 palette (primary, secondary, tertiary, surface, …) from one seed colour you pick — it's a complete theme, not a single-colour tweak.",
|
||||
"themePluginEmpty": "No theme plugins installed. Open the Store and pick one in the studio-plugin category.",
|
||||
|
|
@ -121,7 +128,7 @@
|
|||
"settingsHost": "Host",
|
||||
"settingsPort": "Port",
|
||||
"settingsTls": "TLS",
|
||||
"settingsSaveAndConnect": "Save & connect",
|
||||
"settingsSaveAndConnect": "Connect to endpoint",
|
||||
"settingsLanguage": "Language",
|
||||
"settingsLanguageHint": "App language. Affects every page; bilingual store entries also flip via this toggle.",
|
||||
"settingsHubEndpointHint": "Where should Studio connect? Default is the local hub at 127.0.0.1:50051.",
|
||||
|
|
|
|||
|
|
@ -641,9 +641,21 @@ abstract class AppLocalizations {
|
|||
/// No description provided for @themePluginHeader.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Theme plugin'**
|
||||
/// **'Theme plugin (applies instantly)'**
|
||||
String get themePluginHeader;
|
||||
|
||||
/// No description provided for @themeApplied.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Theme applied: {name}'**
|
||||
String themeApplied(String name);
|
||||
|
||||
/// No description provided for @themePluginFailed.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Theme plugin could not load — keeping previous theme.'**
|
||||
String get themePluginFailed;
|
||||
|
||||
/// No description provided for @themePluginNone.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
@ -725,7 +737,7 @@ abstract class AppLocalizations {
|
|||
/// No description provided for @settingsSaveAndConnect.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Save & connect'**
|
||||
/// **'Connect to endpoint'**
|
||||
String get settingsSaveAndConnect;
|
||||
|
||||
/// No description provided for @settingsLanguage.
|
||||
|
|
|
|||
|
|
@ -313,7 +313,16 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
'Server-Text in Englisch — Studio zeigt ihn wie geliefert.';
|
||||
|
||||
@override
|
||||
String get themePluginHeader => 'Theme-Plugin';
|
||||
String get themePluginHeader => 'Theme-Plugin (wirkt sofort)';
|
||||
|
||||
@override
|
||||
String themeApplied(String name) {
|
||||
return 'Theme aktiv: $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String get themePluginFailed =>
|
||||
'Theme-Plugin konnte nicht geladen werden — vorheriges Theme bleibt.';
|
||||
|
||||
@override
|
||||
String get themePluginNone => 'Standard (kein Plugin)';
|
||||
|
|
@ -357,7 +366,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get settingsTls => 'TLS';
|
||||
|
||||
@override
|
||||
String get settingsSaveAndConnect => 'Speichern & verbinden';
|
||||
String get settingsSaveAndConnect => 'Mit Endpoint verbinden';
|
||||
|
||||
@override
|
||||
String get settingsLanguage => 'Sprache';
|
||||
|
|
|
|||
|
|
@ -313,7 +313,16 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
'Server text in English — Studio shows it as supplied.';
|
||||
|
||||
@override
|
||||
String get themePluginHeader => 'Theme plugin';
|
||||
String get themePluginHeader => 'Theme plugin (applies instantly)';
|
||||
|
||||
@override
|
||||
String themeApplied(String name) {
|
||||
return 'Theme applied: $name';
|
||||
}
|
||||
|
||||
@override
|
||||
String get themePluginFailed =>
|
||||
'Theme plugin could not load — keeping previous theme.';
|
||||
|
||||
@override
|
||||
String get themePluginNone => 'Built-in (no plugin)';
|
||||
|
|
@ -358,7 +367,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get settingsTls => 'TLS';
|
||||
|
||||
@override
|
||||
String get settingsSaveAndConnect => 'Save & connect';
|
||||
String get settingsSaveAndConnect => 'Connect to endpoint';
|
||||
|
||||
@override
|
||||
String get settingsLanguage => 'Language';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue