feat(errors): classify the install 'no store entry' failure
Some checks are pending
Security / Security check (push) Waiting to run

Even with the honest install badge the hub error stays reachable
(stale store snapshot, race with a store refresh, older hub). The
friendly-error mapper now gives it its own headline plus a hint
naming the three acquisition paths — local module install, adding
the providing store, configuring the MCP/n8n integration — in EN
and DE, with the verbatim hub message kept copyable. Matcher unit
tests EN+DE guard the classification.

Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
flemming-it 2026-07-22 13:48:31 +02:00
parent 08227410e6
commit e28fffee61
7 changed files with 87 additions and 2 deletions

View file

@ -69,6 +69,8 @@
"errMcpUnreachableHint": "Der MCP-Server hat nicht geantwortet. Endpunkt in Einstellungen → Integrationen prüfen und sicherstellen, dass er läuft.",
"errCapabilityNotInstalled": "Benötigte Capability nicht installiert.",
"errCapabilityNotInstalledHint": "Im Text-Tab des Flows klicken Sie auf den Fix-Button — der installiert die Capability, sofern sie im Store ist.",
"errNoStoreEntry": "Kein Store-Eintrag bietet diese Capability an.",
"errNoStoreEntryHint": "Drei Wege: lokales Modul installieren (chain install --link <pfad>), den passenden Store hinzufügen (Einstellungen → Stores) oder die Anbindung (MCP/n8n) einrichten, die sie bereitstellt. Falls gerade erst veröffentlicht: zuerst die Store-Seite aktualisieren.",
"welcomeDocClose": "Schließen",
"welcomeDocFailedToLoad": "Doku konnte nicht geladen werden: {error}",
"@welcomeDocFailedToLoad": {

View file

@ -77,6 +77,8 @@
"errMcpUnreachableHint": "The MCP server didn't respond. Check the endpoint in Settings → Integrations and confirm it's running.",
"errCapabilityNotInstalled": "Required capability is not installed.",
"errCapabilityNotInstalledHint": "Open the flow's Text tab — the analyzer's Fix button installs the capability if it's in the store.",
"errNoStoreEntry": "No store entry provides this capability.",
"errNoStoreEntryHint": "Three ways to get it: install a local module (chain install --link <path>), add the store that provides it (Settings → Stores), or configure the integration (MCP/n8n) that supplies it. If it was just published, refresh the Store page first.",
"welcomeDocClose": "Close",
"welcomeDocFailedToLoad": "Could not load documentation: {error}",
"@welcomeDocFailedToLoad": {

View file

@ -512,6 +512,18 @@ abstract class AppLocalizations {
/// **'Open the flow\'s Text tab — the analyzer\'s Fix button installs the capability if it\'s in the store.'**
String get errCapabilityNotInstalledHint;
/// No description provided for @errNoStoreEntry.
///
/// In en, this message translates to:
/// **'No store entry provides this capability.'**
String get errNoStoreEntry;
/// No description provided for @errNoStoreEntryHint.
///
/// In en, this message translates to:
/// **'Three ways to get it: install a local module (chain install --link <path>), add the store that provides it (Settings → Stores), or configure the integration (MCP/n8n) that supplies it. If it was just published, refresh the Store page first.'**
String get errNoStoreEntryHint;
/// No description provided for @welcomeDocClose.
///
/// In en, this message translates to:

View file

@ -248,6 +248,14 @@ class AppLocalizationsDe extends AppLocalizations {
String get errCapabilityNotInstalledHint =>
'Im Text-Tab des Flows klicken Sie auf den Fix-Button — der installiert die Capability, sofern sie im Store ist.';
@override
String get errNoStoreEntry =>
'Kein Store-Eintrag bietet diese Capability an.';
@override
String get errNoStoreEntryHint =>
'Drei Wege: lokales Modul installieren (chain install --link <pfad>), den passenden Store hinzufügen (Einstellungen → Stores) oder die Anbindung (MCP/n8n) einrichten, die sie bereitstellt. Falls gerade erst veröffentlicht: zuerst die Store-Seite aktualisieren.';
@override
String get welcomeDocClose => 'Schließen';

View file

@ -248,6 +248,13 @@ class AppLocalizationsEn extends AppLocalizations {
String get errCapabilityNotInstalledHint =>
'Open the flow\'s Text tab — the analyzer\'s Fix button installs the capability if it\'s in the store.';
@override
String get errNoStoreEntry => 'No store entry provides this capability.';
@override
String get errNoStoreEntryHint =>
'Three ways to get it: install a local module (chain install --link <path>), add the store that provides it (Settings → Stores), or configure the integration (MCP/n8n) that supplies it. If it was just published, refresh the Store page first.';
@override
String get welcomeDocClose => 'Close';