_maybe_auto_check_updates() (bcc.py ~L1507) writes update/lastCheck = time.time()before starting the worker. If the machine is offline at launch (common: laptop wakes, app auto-starts), the failed check still counts, and no retry happens for 24 h. Repeated offline launches can starve the check indefinitely.
Proposed fix: move the setValue("update/lastCheck", …) into the completion handler, only when release is not None (or at least only when the request completed). Keep the pre-check read/throttle as is.
Acceptance: simulate fetch_latest_release → None at startup: update/lastCheck is not advanced; a subsequent launch checks again. Successful check advances it.
**Found in audit of `main` @ 06326e5.**
`_maybe_auto_check_updates()` (`bcc.py` ~L1507) writes `update/lastCheck = time.time()` **before** starting the worker. If the machine is offline at launch (common: laptop wakes, app auto-starts), the failed check still counts, and no retry happens for 24 h. Repeated offline launches can starve the check indefinitely.
**Proposed fix**: move the `setValue("update/lastCheck", …)` into the completion handler, only when `release is not None` (or at least only when the request completed). Keep the pre-check read/throttle as is.
**Acceptance**: simulate `fetch_latest_release → None` at startup: `update/lastCheck` is not advanced; a subsequent launch checks again. Successful check advances it.
the_og
added the P2 label 2026-07-12 12:44:54 -04:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Found in audit of
main@06326e5._maybe_auto_check_updates()(bcc.py~L1507) writesupdate/lastCheck = time.time()before starting the worker. If the machine is offline at launch (common: laptop wakes, app auto-starts), the failed check still counts, and no retry happens for 24 h. Repeated offline launches can starve the check indefinitely.Proposed fix: move the
setValue("update/lastCheck", …)into the completion handler, only whenrelease is not None(or at least only when the request completed). Keep the pre-check read/throttle as is.Acceptance: simulate
fetch_latest_release → Noneat startup:update/lastCheckis not advanced; a subsequent launch checks again. Successful check advances it.