• Major — breaking/incompatible changes
• Minor — new features, backwards compatible
• Patch — bug fixes, backwards compatible
# JS8Reporter Changelog
## v1.4.1 (2026-03-24)
– **Fix:** Date filter now has a “Date Source” option: filter by Record Date/Time Stamp (when received) or Date/Time Code (from the form) — accommodates operators who resend forms without updating the datecode
– **Fix:** Loaded Assessments list now sorts by received date so recently received records appear at the top regardless of form datecode
– **Fix:** Datecodes decoded without a year context (file-loaded records) no longer produce future dates — a December datecode loaded in March now correctly resolves to the prior December
– **Fix:** Database query now orders by received time descending so that when duplicate records share the same UID, the most recently received record is kept
– **Fix:** Grid-square duplicate resolution now keeps the record with the latest received date rather than the latest form datecode
## v1.4.0 (2026-03-21)
– **Feature:** Date Filter now supports three modes: No Filter, Previous N-Days (rolling), and Specified Dates
– **Feature:** Previous N-Days mode automatically tracks the system date — no manual adjustment needed when running continuously
– **Feature:** Time Lapse keeps up with the shifting Previous N-Days window; date list is recomputed each step
– **Feature:** Filter mode and N-Days count are saved and restored on restart; new installs default to Previous 14 Days
– **Fix:** Assessment Detail / Summary Table no longer shows “No assessments loaded” when records exist but are excluded by the active date filter; now shows a clear “No assessments match the current filters” message
– Date Filter box enlarged to accommodate the new controls; Loaded Assessments list adjusts accordingly
– **Fix:** Program now polls the open database every 60 seconds and automatically adds any new records — previously the display went stale after the initial load
– **Fix:** Map zoom/pan set via the toolbar is now preserved across Time Lapse steps and all other map refreshes — previously the view reset to full map on each redraw
## v1.3.2 (2026-03-17)
– Replaced `setup.sh` with cross-platform `setup.py` (works on Raspberry Pi OS Bullseye and Bookworm, Linux, macOS, Windows)
– `setup.py` automatically creates a Python virtual environment, resolving pip conflicts on newer Debian-based systems (PEP 668)
– Added `run.sh` (Linux/macOS/Pi) and `run.bat` (Windows) launcher scripts
– Update notifications now point to sitrepnet.com instead of GitHub
– Summary table redesigned: compact Min/Max/Avg overview at top, followed by per-report blocks of up to 10
## v1.3.1 (2026-03-15)
– Fixed duplicate assessments appearing when a database is opened more than once
– Off-map grid squares (valid Maidenhead grids outside the North America map area) are now flagged with `[off-map]` in the list and noted in the status bar
## v1.3.0 (2026-03-13)
– Date filter (filter assessments by date range)
– Time Lapse mode (rolling, cumulative, snapshot) with manual and timed step
– Alerts for newly received assessments
– Invalid record detection and marking
– Color-coded score bars in the detail pane
– Additional UI and display improvements
## v1.2.0 (2026-03-11)
– Broadened database query to improve compatibility with JS8Spotter database formats
– Added DB Diagnostic tool (Help menu) for troubleshooting database issues
## v1.1.0 (2026-03-11)
– Initial release