- Add heartbeat configuration to config.yaml
- Implement HeartbeatMonitor class in watch.py
- Send heartbeat every 40 seconds to Uptime Kuma push endpoint
- Update config.yaml.example with heartbeat settings
- Add heartbeat logging at INFO level
Co-Authored-By: Claude <noreply@anthropic.com>
- Add logger.py with TimedRotatingFileHandler (daily rotation, 30-day retention)
- Replace all print() in migrate.py with logging calls
- Add logging to sync.py for sync status tracking
- Refactor watch.py to use logger.py, remove duplicate first_run branch
- All logs now go to logs/app.log consistently
- Add logging config section to config.yaml, add logs/ to .gitignore
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add sync.py for LAN file sync with atomic writes and mtime-based change detection
- Add watch.py daemon that periodically syncs files and migrates only changed tables
- Add TRUNCATE mode to migrate.py (--truncate flag) to preserve table structure
- Update config.yaml schema with check_interval_minutes and lan_sources
- Update README with new features documentation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Migrates pressure gauge (PG) and thermometer (TM) data from .xlsm files
into SQL Server executionCard schema, one table per year (PG_2022-2026,
TM_2022-2026). Supports single/multi-table migration, column remapping,
type inference, and dry-run mode via config.yaml.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>