update to 0.2.0 #2

Merged
serversdown merged 2 commits from dev into main 2026-03-20 18:23:43 -04:00
Owner

[0.2.0] - 2026-03-20

Added

  • thor_tray.py — system tray launcher with status icon (green/amber/red/grey), Settings and Open Log Folder menu items
  • thor_settings_dialog.py — Tkinter settings dialog with first-run wizard; tabs for Connection, Paths, Scanning, Logging, Updates
  • Hardened auto-updater: three-layer download validation (100 KB floor, 50% relative size floor, MZ magic bytes), safer swap bat with 5-retry cap and :fail exit, .exe.old backup
  • Configurable update source: update_source (gitea / url / disabled), update_url for custom server
  • Remote push support: update_available flag in API heartbeat response triggers update regardless of update_source setting
  • build.bat — PyInstaller build script; outputs versioned exe for Gitea and plain copy for Inno Setup
  • installer.iss — Inno Setup installer script with startup shortcut
  • _update_log() helper writes timestamped [updater] lines to the watcher log
  • log_tail included in heartbeat payload (last 25 lines) for terra-view display
  • run_watcher(state, stop_event) pattern in series4_ingest.py for background thread use from tray

Changed

  • series4_ingest.py refactored into tray-friendly background thread module; main() retained for standalone use
  • Config key sfm_endpoint renamed to api_url for consistency with series3-watcher
  • Heartbeat payload now uses source_id, source_type, version fields matching terra-view WatcherAgent model
  • AppData folder: ThorWatcher (was not previously defined)
## [0.2.0] - 2026-03-20 ### Added - `thor_tray.py` — system tray launcher with status icon (green/amber/red/grey), Settings and Open Log Folder menu items - `thor_settings_dialog.py` — Tkinter settings dialog with first-run wizard; tabs for Connection, Paths, Scanning, Logging, Updates - Hardened auto-updater: three-layer download validation (100 KB floor, 50% relative size floor, MZ magic bytes), safer swap bat with 5-retry cap and `:fail` exit, `.exe.old` backup - Configurable update source: `update_source` (gitea / url / disabled), `update_url` for custom server - Remote push support: `update_available` flag in API heartbeat response triggers update regardless of `update_source` setting - `build.bat` — PyInstaller build script; outputs versioned exe for Gitea and plain copy for Inno Setup - `installer.iss` — Inno Setup installer script with startup shortcut - `_update_log()` helper writes timestamped `[updater]` lines to the watcher log - `log_tail` included in heartbeat payload (last 25 lines) for terra-view display - `run_watcher(state, stop_event)` pattern in `series4_ingest.py` for background thread use from tray ### Changed - `series4_ingest.py` refactored into tray-friendly background thread module; `main()` retained for standalone use - Config key `sfm_endpoint` renamed to `api_url` for consistency with series3-watcher - Heartbeat payload now uses `source_id`, `source_type`, `version` fields matching terra-view WatcherAgent model - AppData folder: `ThorWatcher` (was not previously defined)
serversdown added 2 commits 2026-03-20 18:23:31 -04:00
serversdown merged commit 0e2fe7c1e3 into main 2026-03-20 18:23:43 -04:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: serversdown/thor-watcher#2