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
LINKindicator 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
BandOpportunityResolverevaluates 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) ando(locator square already worked on this band). Codes combine, e.g.aoorB+o; the additionala/oindicators 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.
ONLINEis 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/CWis 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,ADDSKEDtimestamps 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
UA0records 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
UEend 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.KST4Contestand carries its real version instead of1.0. Existing settings are unaffected (data lives in~/.praktiKST/). - AUR provides
kst4contest-bin,kst4contestandkst4contest-git; the download page separates Stable, Beta and Nightly and only offers packages of the matching channel; Nightly builds come frommainautomatically. - The jpackage module list is derived from
module-info.javainstead of sixteen copies, andjdk.netis 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
- Add selected-band activity indicator for stations in map and details by @Rsclub22 with @Copilot in #53
- implement #49 by @Rsclub22 in #58
- Bugfix/51 selectionmodel fix by @praktimarc in #60
- on4kst: session-scoped connection supervisor by @praktimarc in #75
- on4kst: add jdk.net to every packaging module list by @Rsclub22 in #76
- Macos signing by @Rsclub22 in #80
New Contributors
Full Changelog: v1.41.1...v1.42.0
Contributors in this release
@praktimarc, @Rsclub22 and @Copilot