Files
thor-watcher/CHANGELOG.md
2026-03-20 17:34:51 -04:00

2.8 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[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.1.1] - 2025-12-08

Changed

  • Moved configuration from hard-coded values to external config.json file
  • Configuration now loads from JSON file with graceful fallback to defaults
  • Config file is loaded relative to script location for portability

Added

  • config.json - External configuration file for all application settings
  • load_config() function with error handling and default value fallback
  • Warning messages when config file is missing or malformed

[0.1.0] - 2025-12-04

Added

  • Initial release of Series 4 Ingest Agent
  • Micromate (Series 4) heartbeat monitoring for Seismo Fleet Manager
  • THORDATA folder scanner for MLG files
  • Automatic detection of newest MLG file per unit by timestamp
  • Age calculation and status classification (OK / LATE / STALE)
  • Console heartbeat display with formatted output
  • Optional HTTP POST to SFM backend endpoint
  • Configurable age thresholds and scan intervals
  • Debug logging capability
  • Graceful error handling for filesystem and network operations