Releases
v0.8.6
Compare
Sorry, something went wrong.
No results found
v0.8.6 — 2026-06-24
Multi-Operator & Club Station Support
Operator profiles in config (callsign + name), per-logbook active operator
Ctrl+O hot-swap through configured operators, space-toggleable in station form
Operator menu (create/edit/delete) with validation and all-logbook cascade
WSJT-X auto-log preserves WSJT-X operator; warns on mismatch with active operator
Wizard auto-creates operator entry from callsign during first-run setup
Hamlib Rigctld Backend & Rotor Control
Backend-agnostic rig architecture: flrig (HTTP) and hamlib rigctld (TCP) via shared RigClient interface
Hamlib rigctld support: frequency, mode, VFO, split, power with graceful VFO name query fallback for Xiegu radios
Hamlib rotctld rotor control backend with TUI integration (azimuth, elevation, stop)
Per-rig rotor config in rig presets (hamlib host/port)
VFO mode auto-detection for split-capable radios
Windows Installer (NSIS)
installer/cqops.nsi — Start Menu shortcuts, PATH integration, Control Panel uninstall entry, license page, solid LZMA compression
scripts/build-installer.ps1 — local build with auto .ico generation from cqops.png via ImageMagick
Shortcut targets .exe directly; Windows Terminal shows embedded icon in tab/taskbar
Linux Packages (nfpm)
nfpm.yaml — deb, rpm, and archlinux (pkg.tar.zst) for amd64 + arm64
installer/cqops.desktop — freedesktop entry with enriched keywords
scripts/build-packages.sh — local cross-platform package build
Embedded App Icon & Console Icon
winres/winres.json — go-winres config with icon, manifest (DPI-aware, long-path, Win7+), version metadata
cmd/cqops/rsrc_windows_*.syso — compiled Windows resources (icon + manifest)
Runtime setConsoleIcon() via Win32 API — Windows Terminal tab shows CQOps icon
Error Persistence
Top-level recover() in main.go pauses on panic/startup failure so the terminal stays open
WSJT-X Fixes
QsoLoggedMessage (field-based) now constructs ADIF and saves — no more silently dropped QSOs
WSJT-X auto-logged QSOs now inherit ContestID so they appear in RecentQSOs when a contest is active
Bug Fixes (Audit)
Fixed nil map panic when saving operator to uninitialized Operators map
Fixed config.Upgrade() not stamping State.Version (was empty stub)
Fixed invalid DROP INDEX IF EXISTS in SQLite migrations; added dedup DELETE before DXC UNIQUE index
Fixed WSJT-X unsafe.Pointer usage with recover() and Kind check
Fixed Wavelog AllDuplicates detection: iterates all Messages, defaults to false when empty
Fixed DXC goroutine leak: stopCh checks in time.Sleep goroutines, exponential reconnect backoff
Fixed ListAllQSOs OOM risk: internal pagination (500 per page)
Fixed toast unbounded growth: capped at 20 items
Fixed --version flag: prints version and exits without TUI
Fixed default Debug: true → false
Fixed logbook delete: synchronous os.Remove before toast
Fixed double Wavelog lookup; added retry for QRZ lookups
Fixed Maidenhead grid calculation (LatLonToLocator replaced with correct algorithm)
Fixed PSK Reporter: per-callsign fetch timestamps with 5-minute cooldown across logbook cycles
Fixed DXC: selected-row highlight spans full row; filter columns indicated via header
Fixed DXC: show "DX Cluster not configured" toast when DXC is disabled (F4)
Fixed bandplan export to match TUI data and formatting
Fixed photo cache invalidation to reduce CPU usage during rendering
Fixed photo loading state management in partner view
Wavelog
Chunked batch upload (50 QSOs per HTTP call) with individual fallback on duplicate errors
Operator/grid mismatch detection during upload with normalize-and-retry flow
Logging & Performance
Size-based log rotation (10 MB) to prevent disk exhaustion
CI & Build
.github/workflows/release.yml — 3-job pipeline: build-unix (Go + nfpm), build-installer (Windows NSIS), publish (GitHub Release)
Makefile — added installer, packages, installer-all targets
.gitignore — added dist/
Cleanup
Removed dead code: pendingSave, screenCON, handleCONUpdate, viewCON, tabbar F3 CON, lookupTimeoutMsg, openLogFile()
if/else if chains converted to tagged switch (wizard, rig_menu)
Split inefficient WriteString concatenation in bpl_views.go
Removed stale flrig_integration.go and flrig_interface.go (replaced by rig_poll.go + rig_client.go)
Updated README with downloads badge, screenshots, and Unicode normalization package reference
You can’t perform that action at this time.