Skip to content

Release v1.42.0

Latest

Choose a tag to compare

@github-actions github-actions released this 22 Aug 16:10
· 18 commits to main since this release
v1.42.0
af30c17

Version 1.42

Band context everywhere, a robust ON4KST link and signed macOS packages

v1.42 brings several previously separate calculations together: band information, Worked status, NOT-QRV marks, callsign suffixes and frequencies are now used consistently by the user list, the station map, the priority calculation and the external interfaces.

New Features

  • Visible ON4KST connection state — a compact LINK indicator shows the real state of the chat link: green = authenticated and synchronised, yellow = connecting or synchronising, red = lost connection, error or reconnect backoff.
  • Shared band-opportunity calculation — a central BandOpportunityResolver evaluates recent QRGs, band designators in station names, active callsign variants, Worked information and NOT-QRV marks. User list, New bands, band-upgrade hint, Priority Score, station map and automatic band selection now share one basis.
  • Extended band status display — the band columns now distinguish X (worked on this band), a (offered, unworked band of a completely new callsign), B+ (offered, unworked band of a callsign already worked elsewhere) and o (locator square already worked on this band). Codes combine, e.g. ao or B+o; the additional a/o indicators can be hidden separately.
  • 50 and 70 MHz support — in station settings, Worked/NOT-QRV handling, user list, filters, internal database, UCXLog processing and the Win-Test listener. Existing databases are migrated automatically.
  • Global message tabs — public messages, ON4KST DX cluster messages and directed messages between other stations can be shown directly in the main window; the separate monitor window remains available and uses the same message stores.
  • Manual QTF input — the antenna direction can be changed inside KST4Contest when PSTRotator is not in use.
  • Filter reset — a dedicated button that reliably clears all active user-list filter predicates.
  • Map clustering — nearby stations are grouped at lower zoom levels; the selected station and relevant direction opportunities stay individually visible.
  • Hideable path analysis — the terrain profile section of the station map can be hidden completely; the state survives a restart.
  • DXLog full-log import — the UCXLog-compatible UDP listener now also processes contactreplace, so a complete log broadcast from DXLog.net can be imported.

Improvements

  • Session-based ON4KST connection lifecycle — socket, reader, writer, message bus and queues belong to one identified session, so threads of an obsolete connection can no longer touch its replacement. ONLINE is reported only after an accepted login and complete user lists. Connect, login and synchronisation use bounded timeouts; heartbeat, missing traffic, EOF and I/O failures trigger controlled reconnects with backoff.
  • Validated ON4KST protocol commands — outgoing frames are built centrally and checked for valid categories, locators and forbidden delimiters. Since ON4KST keeps one locator per TCP session, the main locator is used for both chat categories and a conflicting secondary configuration is logged instead of sent.
  • More precise QRG recognition — bare three-digit numbers count as QRGs only with a frequency context, so signal reports, band designators and unrelated numbers produce far fewer false frequencies. Relative QRGs first use a station-specific band context no older than 30 minutes; the global fallback band is now a dropdown of supported bands and applies to the whole QRG parser, not just DX cluster spots. Frequencies are displayed with at least three decimals, including above 10 GHz.
  • Band-aware AirScout and path calculations — a realistic frequency is derived per station and mapped to canonical AirScout bands; AirScout, Calc selected and the map path analysis share one PropagationFrequencyResolver, and an explicitly selected reachability band is honoured. The obsolete 430 MHz fallback is now 432 MHz.
  • Separate callsign variants with shared base-callsign data — active members are distinguished by full callsign incl. suffix and chat category, while Worked flags, NOT-QRV information and Priority Scores are still evaluated across variants of the same base callsign.
  • Corrected Priority Score eligibility — stations without a common available band, or with an overriding NOT-QRV mark, no longer appear as priority candidates; an open band at a station already worked elsewhere can earn a separate Priority Boost. The penalty on a failed sked was fixed.
  • Sked workflow — the band is chosen from the locally enabled bands, SSB/CW is selected explicitly instead of being guessed from the band, the QRG must match the selected band, KST suffixes are stripped for the logging target while portable components are preserved, ADDSKED timestamps are correct, a failed handover keeps the internal sked, and timeline plus reminders address the exact visible KST callsign.
  • Reworked beacon and automatic replies — one shared timer for both chat categories with separate switches and texts, minimum interval of two minutes, 120-character limit, plausibility checks and beacon state restored from the configuration at startup.
  • Central variable resolution — beacons, shortcuts, snippets and other generated texts go through one shared resolver.
  • UI polish — truncated messages show a tooltip, recognised URLs open in the system browser, the filter bar stays compact and only wraps when space is genuinely insufficient (centre divider can move further right), the map view moved topics into the head bar, and PSTRotator port ranges are plausibility-checked without blocking the UI.
  • Callsign sniffer — sniffing now works on the raw callsign and avoids duplicate entries.
  • Improved version comparison — versions are compared semantically, so patch and Nightly versions are no longer misclassified.

Bug Fixes

  • Reliable initial user list — invalid or incomplete UA0 records are rejected individually instead of blocking following members; valid entries are staged per category and published as one complete snapshot.
  • User list disappearing after login — repeated UE end markers are detected and ignored, so a populated user list cannot be replaced by an empty snapshot.
  • Failed initial connection and lost sockets — an unavailable server no longer causes an endless or busy-wait loop; the UI stays responsive, and closed or silent sockets are detected reliably.
  • Message-bus diagnostics — correctly processed frames are no longer reported as Critical, detected unhandled Chatmessage.
  • Long-running station-selection failure — chat members are decoupled from the JavaFX view, so selection models no longer break after hours of runtime (#51).
  • No phantom chat members from UM3 — historical server messages no longer create entries for stations that are not logged in.
  • Messages to callsigns with suffixes — several active variants of one base callsign no longer overwrite each other (#73).
  • DX cluster locators — reporting and reported station no longer share the same locator (#48); spots are also sent when no AP lies between the station and the operator.
  • Worked state in "QSO of the other" — the Worked columns use the correct transmitting and receiving station again.
  • Missing SECONDAP data — an absent second aircraft-scatter opportunity no longer triggers an invalid text selection and JavaFX exception.
  • Historical callsigns — selecting or highlighting a callsign that left the user list no longer throws.
  • Filter reset — all predicates are actually removed and the button state matches the effective filter state (#50).

Documentation and Packaging

  • German and English manuals were systematically checked against the source, extended and re-screenshotted — they now describe how information is derived and where the limits of a result lie.
  • Signed and notarized macOS packages — the Apple Silicon and Intel DMGs are signed with an Apple Developer ID and notarized, with the ticket stapled. First launch works by double-click, offline included, for Nightly, Beta and Stable alike. Windows packages remain unsigned.
  • Correct bundle identifier and version on macOS — the app identifies as de.x08.KST4Contest and carries its real version instead of 1.0. Existing settings are unaffected (data lives in ~/.praktiKST/).
  • AUR provides kst4contest-bin, kst4contest and kst4contest-git; the download page separates Stable, Beta and Nightly and only offers packages of the matching channel; Nightly builds come from main automatically.
  • The jpackage module list is derived from module-info.java instead of sixteen copies, and jdk.net is part of every packaging module list.
  • New KST4Contest logo in higher resolution, plus an SVG source.

Known limitations

  • Terrain data comes from Open-Meteo (Copernicus GLO-90) with at most 100 elevation samples per path.
  • The atmospheric K factor is fixed at 4/3, and 10 m antenna height above ground is assumed for the remote station.
  • AirScout aircraft-scatter information and the map terrain analysis remain separate assessments.
  • More detailed configuration of station height, frequency and K factor is tracked in #74.

Merged Pull Requests

New Contributors

  • @Rsclub22 with @Copilot made their first contribution in #53

Full Changelog: v1.41.1...v1.42.0

Contributors in this release

@praktimarc, @Rsclub22 and @Copilot