Compare commits

...

1 Commits

Author SHA1 Message Date
Claude
4ae7752f69 Replace CLI command in install error with link to supervisor logs
Show a confirmation dialog with an "OK" primary button and a "View
supervisor logs" secondary button that navigates to the logs page,
instead of displaying CLI commands in the error message. Also strip
CLI command references from supervisor API error messages.

https://claude.ai/code/session_01DxodYC7uLzxc6SDWyx17tk
2026-03-28 12:20:02 +00:00
3 changed files with 20 additions and 8 deletions

View File

@@ -21,12 +21,18 @@ export interface HassioStats {
export const hassioApiResultExtractor = <T>(response: HassioResponse<T>) =>
response.data;
export const extractApiErrorMessage = (error: any): string =>
typeof error === "object"
? typeof error.body === "object"
? error.body.message || "Unknown error, see supervisor logs"
: error.body || error.message || "Unknown error, see supervisor logs"
: error;
export const extractApiErrorMessage = (error: any): string => {
const msg =
typeof error === "object"
? typeof error.body === "object"
? error.body.message || "Unknown error"
: error.body || error.message || "Unknown error"
: error;
// Strip CLI command references from supervisor error messages
return typeof msg === "string"
? msg.replace(/\s*\(check with '[^']*'\)/g, "")
: msg;
};
const ignoredStatusCodes = new Set([502, 503, 504]);

View File

@@ -1059,11 +1059,16 @@ class SupervisorAppInfo extends LitElement {
};
fireEvent(this, "hass-api-called", eventdata);
} catch (err: any) {
showAlertDialog(this, {
showConfirmationDialog(this, {
title: this.hass.localize(
"ui.panel.config.apps.dashboard.action_error.install"
),
text: extractApiErrorMessage(err),
confirmText: this.hass.localize("ui.common.ok"),
dismissText: this.hass.localize(
"ui.panel.config.apps.dashboard.action_error.view_supervisor_logs"
),
cancel: () => navigate("/config/logs?provider=supervisor"),
});
}
button.progress = false;

View File

@@ -2866,7 +2866,8 @@
"get_changelog": "Failed to get changelog",
"start_invalid_config": "Invalid configuration",
"go_to_config": "Go to configuration",
"validate_config": "Failed to validate app configuration"
"validate_config": "Failed to validate app configuration",
"view_supervisor_logs": "View supervisor logs"
},
"uninstall_dialog": {
"title": "Uninstall {name}?",