User ZaDarkSide reported that when updates fail, the UI shows a loading spinner indefinitely with no feedback about what went wrong. Users had to check backend logs to understand failures like "checksum verification failed". The infrastructure was already in place: - UpdateStatus struct had an Error field - Frontend already renders error details when present - But updateStatus() never populated the Error field Changes: - Modified updateStatus() to accept optional error parameter - Added sanitizeError() to cap error message length (500 chars max) - Updated all error cases in ApplyUpdate() to pass error details: - Temp directory creation failures - Download failures - Checksum verification failures (most common user complaint) - Extraction failures - Backup creation failures - Apply update failures - Also updated CheckForUpdates() error cases Now when updates fail, users immediately see the error message in the UI's red error panel instead of being stuck on a loading spinner. Security: Errors are only shown to authenticated admin users with update permissions. Error messages are capped at 500 chars to prevent extremely long output. Current error messages don't contain sensitive data (mainly HTTP status codes, file paths, checksum mismatches). |
||
|---|---|---|
| .. | ||
| adapter_installsh.go | ||
| history.go | ||
| manager.go | ||
| manager_test.go | ||
| updater.go | ||
| version.go | ||
| version_test.go | ||