Add HMS error notifications with translations and plate detection fixes

New Features:
- HMS error notifications with human-readable messages (853 error codes)
- Plate not empty notification category (separate toggle in settings)
- Module-friendly names: Print/Task, AMS/Filament, Nozzle/Extruder, etc.
- Backup/restore now includes plate calibration reference images

Fixes:
- Plate calibration images now persist after restart in Docker
- Telegram notifications no longer fail on error codes with underscores
- Plate detection combo button: main toggles detection, chevron opens modal

Tests:
- Added HMS error code tests (10 tests)
- Implemented Dashboard, FileManagerModal, UploadModal tests (previously skipped)
- Added notification service tests for HMS errors and plate detection
- Fixed AuthContext unmount memory leak in tests
This commit is contained in:
maziggy
2026-01-27 08:48:57 +01:00
parent 9d6164ab1c
commit b9495877fc
26 changed files with 2488 additions and 167 deletions
@@ -124,6 +124,9 @@ export function NotificationProviderCard({ provider, onEdit }: NotificationProvi
{provider.on_print_start && (
<span className="px-2 py-0.5 bg-blue-500/20 text-blue-400 text-xs rounded">Start</span>
)}
{provider.on_plate_not_empty && (
<span className="px-2 py-0.5 bg-rose-600/20 text-rose-300 text-xs rounded">Plate Check</span>
)}
{provider.on_print_complete && (
<span className="px-2 py-0.5 bg-bambu-green/20 text-bambu-green text-xs rounded">Complete</span>
)}
@@ -254,6 +257,17 @@ export function NotificationProviderCard({ provider, onEdit }: NotificationProvi
/>
</div>
<div className="flex items-center justify-between">
<div>
<p className="text-sm text-white">Plate Not Empty</p>
<p className="text-xs text-bambu-gray">Objects detected before print</p>
</div>
<Toggle
checked={provider.on_plate_not_empty ?? true}
onChange={(checked) => updateMutation.mutate({ on_plate_not_empty: checked })}
/>
</div>
<div className="flex items-center justify-between">
<p className="text-sm text-white">Print Completed</p>
<Toggle