You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
v2.0.5 New Features and Fixes
Added
"Regenerate Timers" button in the toolbar (also available as griffin-updater-cli install-timers, which now does the same thing).
Previously, if an app's .service/.timer files under ~/.config/systemd/user/ were deleted or corrupted by anything other
than Griffin Updater's own Remove button, there was no way to get them
back short of opening Edit and re-saving that one app manually. This
regenerates every configured app's units from scratch in one pass.
Orphaned unit cleanup, folded into the same action. If a .service/.timer pair exists on disk with no matching app in Griffin
Updater's config at all (e.g., removed some way other than the GUI, or
left over from an older version), Regenerate Timers now finds and
removes those too, instead of leaving them to linger forever. Reports
how many orphaned units were cleaned up alongside the regenerate result.
Fixed
Removing an app didn't clear its stored state. The systemd units
were already being cleaned up correctly on Remove, but the app's
installed-version/log history in state.json was left behind. Re-
adding the same app later could silently inherit that stale state and
report "already up to date" even though nothing had actually been
installed since the re-add. Removing an app now clears its state too,
so a full remove-and-re-add always starts genuinely fresh.
Clarified (no code change needed)
Double-checked whether Griffin Updater has an equivalent to the old
standalone appify-updater.sh's deb-vs-AppImage auto-detection bug
(where having both installed for testing caused it to always assume .deb, even when AppImage was the one that should've been checked).
It doesn't: appimage_installer.py and archive_installer.py never
call dpkg-query at all, under any circumstance - app category is
fixed by what you explicitly picked in Add/Edit, with no runtime
auto-detection heuristic to get confused by having both installed
side by side.
Fixed
A malformed regex in asset_pattern or version_regex could crash
the entire check, uncaught. Both fields are user-editable (per-app, or
via the shared catalog), and an easy typo like an unbalanced parenthesis
previously caused a raw re.error to propagate straight out of version
resolution instead of a clean, readable error - this surfaced while
debugging an unrelated standalone script, and turned out to apply here
too. Both resolve_static_url's version_regex and resolve_github_release's asset_pattern now compile/match inside a
try/except and raise a normal VersionResolutionError with the actual
regex problem spelled out, instead of an uncaught exception.
One app's check could silently abort the rest of a Check All/ check-all batch. Before this fix, any unexpected exception during
one app's check (the regex bug above, or anything else not already
anticipated) would kill the whole run: in the CLI/systemd-timer path,
every app after the failing one in that batch would simply never get
checked, with no log entry explaining why; in the GUI, the background
QThread would silently die mid-batch, leaving "Checking N apps..." and
disabled buttons stuck forever, since the completion signal would never
fire. Both the CLI's check-all and the GUI's Check All Now now isolate
each app's check individually - a crash on one app is logged clearly
and the rest of the batch still runs to completion.
Also
Confirmed (via a standalone script for a different, unrelated app that
hit a parallel bug) that Griffin Updater's own GitHub-release asset
matching already raised a clean error for "no asset matched," rather
than the bash-specific footgun that prompted this investigation
(a grep -o | sed pipeline returning nonzero under set -e when zero
lines match, killing the script one line before it would have logged
its own friendly error message - worth knowing about if you maintain
similar bash tooling elsewhere.