• Major — breaking/incompatible changes
• Minor — new features, backwards compatible
• Patch — bug fixes, backwards compatible
# F104Mapper Changelog
## v1.1.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 Reports 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.1.0 (2026-03-23)
– Alert (CSA char 3) and Sitrep (CSA char 2) indicators displayed in Report
Detail with JS8Spotter Expect request instructions (E? F!304 / E? F!305)
– Auto-update check on startup with configurable URL (silently skipped offline)
## v1.0.0 (2026-03-22)
– Initial release
– Parses F!104 Situation Report forms from JS8Spotter SQLite database,
JS8Spotter CSV/text export, or plain text file
– Color-coded map pins: Green (1 – Normal), Yellow (2 – Degraded),
Red (3 – Significant Problems)
– Formatted detail view when clicking a map pin, showing all parsed fields
plus the original raw line
– Correctly handles FM[] field misuse (narrative text placed in FM[]) —
stores verbatim and displays as “Form Ref”
– Comment field (free text outside brackets) extracted and displayed
– Sitrep and Alert indicators (E flag) shown with JS8Spotter “Expect”
request instructions: E? F!304 and E? F!305
– Date filter: No Filter, Previous N-Days (rolling), or Specified Dates
– Previous N-Days mode tracks system date automatically
– Duplicate handling: same callsign on same date → latest kept;
same grid square → latest kept
– Off-map grid squares flagged in the list
– Mark/restore invalid records (Delete key)
– Database auto-reload on startup; 60-second live poll for new records
– Map zoom/pan preserved across all refreshes
– Pop-out map in a separate resizable window
– Export map as PNG, JPG, or SVG
– DB Diagnostic tool (Help menu)
– Auto-update check on startup (configurable URL, silently skipped offline)
– Window size and position remembered across sessions
– Fully offline at runtime — requires only one-time setup.py run for map data