53 lines
2.8 KiB
Markdown
53 lines
2.8 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [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
|