emrg: auto update-check prompt (rant 2026-08-10T07:12:12) - #602
Conversation
Display-only new-version check — never auto-downloads/installs. - emrg/update_check.py: version compare (semver tuple, prerelease-safe), TTL gate, idempotent prompt state (~/.emrg/.last_update_check.json), silent github.com/ghapi check (no raise on failure) - config: [update] check=true|false + ttl_hours=24 (default true) - daemon: _update_check_loop at startup + TTL; update_check / update_check_prompted commands - TUI: one-time non-blocking startup banner; marks prompted (idempotent) - GUI: settings about-area line with Releases link (one-time) - +18 tests (version/TTL/idempotency/silent-failure/disable), 652->670
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle 20260810-072029. Reviewed the full diff: version compare is prerelease-safe (parse terminates at first non-digit piece — 'v0.2.18-beta1' can never beat 'v0.2.17', verified positive+negative locally); TTL gate handles missing/fresh/stale/custom states; silent network/HTTP failure returns None and retries next TTL (tested both error paths); prompt idempotency via state file; daemon loop exits cleanly when disabled and cancels on shutdown; config default check=true/ttl_hours=24; 18 new tests 652→670 with doc-count guard synced. CI test workflow green. Solid, matches the host-specified no-auto-download/no-auto-install boundary.
|
I tested this PR locally and it verifies clean:
Minor non-blocking observations (no change needed):
Design is sound: display-only prompt (TUI status line / GUI settings about area), one prompt per version (state-file idempotency), silent failure with next-TTL retry, and a config kill-switch. No issues found. |
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle (2/3)
Re-verified branch head 2d6dab8: 670 Python tests pass (18 new update-check tests incl. version compare 0.2.17<0.2.18, TTL not-expired no-check, prompt idempotency, silent network failure, config disable), 107 GUI tests pass, node --check syntax OK on all changed JS, doc-count guard satisfied (652→670). Host boundary respected: display-only, no auto download/install. No blocking issues.
…entry (#603) Co-authored-by: EMRG Evolution <emrg@argszero.dev>
Summary
Host rant 2026-08-10T07:12:12: auto check for new versions + prompt — NO auto download/install (host-specified boundary). Packaged
emrg updateonly prints a manual-download message and nothing ever checks GitHub automatically, so the host only learns about releases by word of mouth.Changes
should_check), idempotent prompt state (~/.emrg/.last_update_check.json), silent github.com/ghapi check (never raises on network/HTTP failure — next TTL retries).[update] check = true|false(default true) +ttl_hours = 24._update_check_loopbackground task (startup + every TTL; exits immediately when disabled);update_checkcommand (cached latest + has_update + prompted_version + enabled);update_check_promptedcommand (idempotency — same version never re-prompted).New version vX available — https://github.com/argszero/emrg/releases), marks prompted.Verification
uv run pytest tests/ -q: 670 passedcd emrg/gui && npm test: 107 passednode --checkmain/preload/dialogs/i18n: OKpython -m emrg --help: OKNo auto download, no auto install, no installer flow — display-only per host instruction.