feat(printers): show AI failure detection state on printer cards (#1546)

The live Obico classification was only visible under Settings ->
Failure Detection, so tracking how detection matched an ongoing print
meant flipping between the Printers screen and Settings.

Each printer card's badge row now shows an AI badge whenever detection
is enabled for that printer, like the other health badges: gray Idle
while no print is being watched, then green Safe, amber Warning, or
red Failure while a print is actively monitored. The tooltip carries
the current smoothed score; clicking jumps to the full detection
status and history in Settings. Printers excluded from the monitored
subset show no badge.

Served by a new lightweight /obico/printer-status endpoint readable
with printer permissions alone - it exposes only the enabled flag, the
monitored-printer set, and per-printer classification, keeping ML URL
and other configuration behind the existing settings-gated endpoint.
This commit is contained in:
maziggy
2026-07-28 11:37:36 +02:00
parent 62ba751278
commit eae5359fbc
26 changed files with 833 additions and 163 deletions
+2
View File
@@ -174,6 +174,7 @@ const DE_COGNATES = [
'China', 'Proxy', 'Start',
'Diagnose', // DE: same spelling/meaning as EN — camera diagnostic button label
'{{filament}} @ {{temp}}°C', // drying badge: filament code + universal °C
'Score', // #1546 AI detection modal — established DE loanword (Duden)
];
// French cognates — many UI labels overlap with English exactly.
@@ -188,6 +189,7 @@ const FR_COGNATES = [
'Copies', '{{n}} copies', 'max {{n}}', // #1425 PR C — French uses these forms verbatim
'round robin', // borrowed English term used as-is in French tech contexts
'Action', 'Actions', 'Date', 'Type', 'Cache', 'Service', 'Configuration',
'Score', // #1546 AI detection modal — "le score" is standard French
'Archives', 'Maintenance', 'Notifications', 'Notification', 'Position',
'Pause', 'Solution', 'Source', 'Version', 'Format', 'Documentation',
'Mode', 'Format', 'Default', 'Auto', 'Image', 'Audio', 'Video', 'Hex',