fix(updater): keep auto-updater alive across watcher restarts (v0.4.1)

Saving the Settings dialog calls _restart_watcher, which set+replaced the
shared stop_event the updater loop also keyed off — so a settings save
silently killed the auto-updater thread (race: survived one save, died on
the next). Heartbeats kept flowing but the agent stopped checking for /
applying updates until relaunch.

Give the updater its own app-lifetime event (_app_stop), set only on
Exit / when applying an update and untouched by watcher restarts. Adds
test_thor_tray.py (4 lifecycle tests). Bump to v0.4.1.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-25 18:01:58 +00:00
parent 302934ced6
commit a92afd64cd
7 changed files with 101 additions and 11 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
"""
Thor Watcher — Settings Dialog v0.4.0
Thor Watcher — Settings Dialog v0.4.1
Provides a Tkinter settings dialog that doubles as a first-run wizard.