v1.4.0
- View -> Statistics modal dialog
- select contest allowed when DB not found; chat status bar no longer reflowing
- red WARC station cell + tooltip in Net Status band grid
- red WARC band text + tooltip in Net Status This Station header
- red WarcBandChip with tooltip on main screen status bar
- isWarcBand helper + freqToBand WARC entries (60/30/17/12m)

v1.4.0
- View -> Statistics: full contest summary report dialog (band/mode table, ARRL sections for FD or Counties/States/DXCC for 7QP, operating period with break deductions, avg Qs/Hr, by-station breakdown, unique call count, power multiplier + final score); Copy to Clipboard with confirmation flash; selectable text
- WARC band warning: status bar band chip turns red with tooltip on 60/30/17/12m; Net Status This Station header and grid cell also turn red — logging is never blocked
- Rig control: macOS serial port filter (cu.* only — tty.* require DCD assertion that CAT never provides); Yaesu new-CAT mode-set prefix fix (FT-710/991A/FTDX-10 etc.); USB-D/DATA-U (FT8/FT4 mode) now correctly classified as Digital
- Select Contest no longer blocked when target DB does not exist yet — switch contest, then configure path after restart
- Chat status bar no longer reflowing on long connection-refused messages

v1.3.0
- Multi-contest framework: File -> Select Contest dialog with per-contest MDB paths
- 7QP (In Region) support: contest-driven entry form, county autocomplete with keyboard nav, My County setup, 7QP-aware score panel
- Counties tab (adaptive layout) + States tab + state-grouped map for 7QP
- File -> Create Local Database (cross-platform standalone mode, ships empty N3FJP-compatible MDB templates)
- Native OS file pickers for Open/Save (fixes Windows JFileChooser SMB hang)
- Cache tblContacts column names in DBService (one FileChannel.open per log over SMB)
- Rig frequency now appears on initial connect (clears stale cache in RigService.start)
- API broadcastEnterevent restored on contest-write path
- ContestUtils consolidation + CountiesService thread safety (@Synchronized load)
- Score panel scrolls so 7QP's 11 lines no longer clip
- Tab cycle skips RSTr/RSTs; Section editable; Call narrower; Section wider
- Find button now actually filters contacts (partial-match, case-insensitive)
- Real N3FJP column names on DB writes (fldRstR / fldCountyR / fldSPC / fldCountryDXCC)
- Stop writing decorative fldPoints (follow N3FJP convention)

v1.2.7
- operator chips + find filter + rig-reply gate + appearance under View + v1 map tab
- wire Sync Clocks; tighten chat send-row alignment
- WSJTX/API Configure no-wrap + Operator panel auto-saves
- route entry validation through logContact so global Enter validates too
- make dialog Cancel/Test buttons visible in dark mode
- validate Call/Class/Section on Enter with soft warn + focus jump

v1.2.6
- open MDB FileChannel ourselves to force RW over SMB

v1.2.5
- disable ProGuard optimizer to fix Jackcess writes over SMB

v1.2.4
- surface real DB error to user, keep commons-lang3 from ProGuard
- write LogData.edf trigger file so edits propagate to peer N3FJP clients

v1.2.3

v1.2.2

v1.2.1
- keep Apache Commons Logging classes from ProGuard obfuscation (fixes "Failed to launch JVM" on Windows/Linux/macOS)
- add macOS icon.icns and force LF line endings for shell scripts

v1.1.16
- enable ProGuard obfuscation for release builds and add Linux tarball

v1.1.15
- Updated website with Linux release
- Fixed country files case-sensitivity bug on Linux

v1.1.14
- OS-aware update URLs — Windows /w/, Linux /l/