Download Latest Version hamclock-next-macos-arm64.zip (5.4 MB)
Email in envelope

Get an email when there's a new version of hamclock-next

Home / v1.0B04
Name Modified Size InfoDownloads / Week
Parent folder
hamclock-next-1.0.0-1.src.rpm 2026-03-10 76.1 MB
hamclock-next-1.0.0-1.x86_64.rpm 2026-03-10 4.4 MB
hamclock-next-debuginfo-1.0.0-1.x86_64.rpm 2026-03-10 33.4 MB
hamclock-next-debugsource-1.0.0-1.x86_64.rpm 2026-03-10 5.8 MB
hamclock-next-1.0.0-1.fc43.src.rpm 2026-03-10 76.2 MB
hamclock-next-1.0.0-1.fc43.x86_64.rpm 2026-03-10 4.4 MB
hamclock-next-debuginfo-1.0.0-1.fc43.x86_64.rpm 2026-03-10 28.6 MB
hamclock-next-debugsource-1.0.0-1.fc43.x86_64.rpm 2026-03-10 6.7 MB
HamClock-Next-Setup.exe 2026-03-10 6.8 MB
hamclock-next.exe 2026-03-10 19.0 MB
hamclock-next_1.0.0B04_fb0_arm64.deb 2026-03-10 5.5 MB
hamclock-next_1.0.0B04_unified_arm64.deb 2026-03-10 5.5 MB
hamclock-next_1.0.0B04_fb0_armhf.deb 2026-03-10 5.1 MB
hamclock-next_1.0.0B04_unified_armhf.deb 2026-03-10 5.0 MB
hamclock-next_1.0.0B04_fb0_amd64.deb 2026-03-10 5.8 MB
hamclock-next_1.0.0B04_unified_amd64.deb 2026-03-10 5.8 MB
hamclock-next-macos-arm64.dmg 2026-03-10 5.5 MB
hamclock-next-macos-arm64.zip 2026-03-10 5.0 MB
hamclock-wasm.html 2026-03-10 1.4 kB
hamclock-wasm.js 2026-03-10 255.8 kB
hamclock-wasm.wasm 2026-03-10 8.5 MB
HamClock-Next v1.0B04 Release source code.tar.gz 2026-03-10 76.2 MB
HamClock-Next v1.0B04 Release source code.zip 2026-03-10 76.5 MB
README.md 2026-03-10 4.7 kB
Totals: 24 Items   466.0 MB 0

Release Date: March 10, 2026 Build Version: v1.0B04 Codename: "Hardened"


Overview

Version v1.0B04 is a stability and polish release. It delivers security hardening across service providers, web configuration UI parity with the native app, and reliable display power control on KMSDRM platforms. No new features are introduced — this release focuses entirely on correctness, safety, and operational reliability.

17 commits since v1.0B03.


Major Features

Web Configuration UI Parity (updates 32–34)

The embedded web configuration UI now matches the native app's full configuration surface:

  • Side Panel mode selector — Pane 5/6 can now be set to DE Info+DX/Sat, DX Cluster, On The Air, or Live Spots — matching the native panel mode options exactly.
  • Display Power Method dropdown — Select the power-control method (DPMS, KMSDRM, sysfs, etc.) from the web UI; ON/OFF buttons send live commands immediately.
  • Satellite tracking selector — Choose the active satellite from a dropdown populated by the new /api/satellites endpoint.
  • /api/satellites endpoint — Returns a JSON array of all configured satellite names; consumed by the web UI satellite selector.
  • Pane 4 widget restriction — Pane 4 (NCDXF/BandCond) now shows only its permitted 4 widgets in the web UI, matching the native app restriction.
  • Widget list alphabetically sorted — All pane widget dropdowns now sort options alphabetically.
  • Active widgets correctly highlighted — Fixed root bug where j["panes"] was built but never assigned in /api/config, so the web UI always saw undefined panes on load.

Security & Thread Safety (updates 27–28)

  • 12 service providers refactored to std::shared_ptr + std::weak_ptr for async-safe callbacks — eliminates use-after-free crashes during config reloads.
  • DXClusterData SQL queries converted from string concatenation to prepared statements — prevents SQL injection.
  • HamClockState protected with servicesMutex and locationMutex — safe concurrent access from provider threads.
  • SECURITY.md added: vulnerability disclosure policy and supported version matrix.

Display Power Control (updates 29–31)

  • Init ordering fixDisplayPower construction moved after Log::setLevel(), ensuring all power-method detection messages appear in the log at startup.
  • KMSDRM fd reuseDisplayPower::setDrmFd() reuses SDL2's existing DRM master fd instead of opening a second fd on /dev/dri/card0, which was causing permission errors on headless Pi deployments.
  • DisplayPower::excludeMethod() — Runtime method removal allows KMSDRM to exclude fallback methods that would conflict with its master-fd ownership.
  • SDL_RenderPresent suppressed after display power-off, preventing DPMS wake on KMSDRM targets where rendering to a powered-off display causes an implicit DPMS ON.

UI / Layout

  • Pane 4 widened — Removed inconsistent inter-pane gaps (23 px total) and allocated the reclaimed space to Pane 4 (NCDXF/BandCond): width increased from 62 → 85 px (+37%). Panes 1–3 and the Info Panel are unchanged.
  • Antimeridian path rendering — Fixed streaks in the dual-azimuthal night overlay caused by path segments crossing the antimeridian without clipping.

Under the Hood

  • MCP developer onboarding.mcp.json now auto-loads in Claude Code; context refresh documentation added for multi-session development.
  • DX Cluster hub endpoint — Shared cluster connection across sessions via the hub master/slave architecture.
  • RPi OOM safety flush — Memory safety flush triggered on out-of-memory conditions on Raspberry Pi targets.
  • Adaptive render throttle — Idle CPU reduction via configurable render rate limiting.

Bug Fixes

  • Antimeridian div-by-zero guard in path segment clipping.
  • Hardcoded UI colors replaced with ThemeColors constants throughout affected panels.
  • Framebuffer blank two-step ioctl sequencing corrected; #ifdef audit for non-Linux builds.
  • SDL_MOUSEWHEEL routing restored; scroll bounded to prevent runaway delta accumulation.
  • Watchlist arrow rendering corrected; ADIF clip guard added.
  • Callsign background color on map panels now uses theme token.
  • Cursor state correctly restored after dialog close on all exit paths.
  • Display power method change via web UI now takes effect immediately (previously required full restart).
  • Pane 6 correctly hidden when switching to non-DE-Info side panel modes via web UI.
Source: README.md, updated 2026-03-10