Repository navigation
Reports stop resending refused events; desktop update restart and failure states - #1930
Merged
Merged
Conversation
Since the heartbeat checks in whatever is owed, an install, update, active, activated or rated the API answered with a 4xx went out again about every ten minutes, for good. A 4xx other than 408 and 429 is now final for that event. No answer, a 5xx, a 408 or a 429 is still tried again on the heartbeat, first on the next beat and then less often the longer it fails, up to the six-hour check-in, and never sooner than a Retry-After asks. A deletion stays owed until it lands.
Restart to update sent any Linux run with APPIMAGE in its environment to the AppImage restart, so a .deb, .rpm or pacman install started from a shell or launcher that had it set swapped and relaunched a file that was not this app. It now asks the same question the unattended rule does: whether this really is the AppImage, by the package-type file.
Every update failure went to the trace log alone, and the tray row read "Check for updates" as if nothing had been looked for. The row now reads "Update failed — try again", and for an app that cannot replace itself where it is, what to do: "Move ccdeck to Applications to update" on macOS, "Move the AppImage to a writable folder to update" on Linux. The updater's error state carries which failure it was; clicked, the row checks again as before.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes
APPIMAGEalone, so a package install started from an environment that had it set took the AppImage restart. It now asks the same question the unattended-install rule does (thepackage-typefile).Verification
npm run typecheckclean.reports-refused-event.test.ts: a 400/413/422 install was sent 7 times over six beats; an update, active, activated and rated likewise; a failed send was retried on all ~34 beats of six hours with no backoff; a 429 withRetry-After: 3600was retried at the next beat. All go once now, failures back off, and Retry-After is waited for.desktop-update-package-restart.test.ts: a deb/rpm/pacman install withAPPIMAGEset never reachedquitAndInstall; the AppImage path ran instead. The real AppImage still restarts the AppImage way.desktop-update-failed-tray.test.ts: the row read "Check for updates" after a dropped download, an unwritable macOS bundle and an unwritable AppImage folder.reports-checkin-retry.test.ts: its clock now runs with the fake timers, as a real one does, and the "keeps trying" case waits out the backoff instead of expecting a retry on every beat.desktop-tray-menu.test.ts: the error row's expected label changed from "Check for updates" to the new one.trayMenuItemswith the updater's real state. Electron and the updater were never started, and no report was sent (fetch is stubbed).