SDR9700 v26.07.30
SDR9700 v26.07.30 is a substantial stability, usability, and cross-platform release. It introduces native Apple Silicon macOS support, strengthens radio and audio behavior, repairs memory-management workflows, and significantly expands automated testing.
Highlights
- Added native Apple Silicon macOS support, including an automated GitHub release pipeline that builds, tests, audits, signs, notarizes, staples, and publishes a self-contained DMG.
- Fixed several shutdown and worker-thread lifecycle problems that could cause crashes while closing the application.
- Fixed PTT state tracking so the button and transmit timer accurately follow the radio's actual transmit state.
- Corrected AGC, preamp, notch, RF gain, and related radio-control state and feedback behavior.
- Fixed memory-channel recall of tone, CTCSS, DCS, and DTCS settings.
- Reduced S-meter response latency, particularly after releasing PTT.
- Restored connection retry behavior after failed radio connections.
Additional fixes in this rebuild
- Fixed the radio chooser on fresh installations so new profiles can be entered and saved, and standardized its frameless dialogs and button ordering.
- Restored fixed, frameless behavior across utility windows and added a consistent Close footer to the Meters window.
- Improved VFO frequency typography, centering, and memory-name placement while removing the inactive memory dash.
- Forced a deterministic MAIN VFO startup state so stale memory labels are not inferred from matching frequencies alone.
- Fixed split-memory PTT transitions that could clear the active memory name—especially on the second transmission—by avoiding unnecessary VFO band preparation and guarding radio frequency transitions from the moment PTT is requested.
- Fixed recurring macOS AppKit crashes caused by automatic native window-state persistence by disabling restoration for SDR9700's app-managed fixed windows.
- Fixed main-window shutdown leaving an invisible SDR9700 process running, which could intercept subsequent launches and delay the new window.
- Refined Meters footer spacing to remove duplicated bottom padding.
- Applied audio input, output, and codec changes immediately through a controlled radio-session restart, without requiring an application restart.
- Corrected reconnect status messages when the occupying station name is unavailable and standardized their punctuation.
Memory manager
- Repaired adding, editing, deleting, loading, and reordering memory channels.
- Reworked CSV import to synchronize with the radio first and clear only occupied memories.
- Improved CSV import cancellation, failure handling, rollback behavior, and progress reporting.
- Fixed stale and conflicting memory synchronization status messages.
- Added scheduled-memory-sync feedback to the main window.
- Split memory editing, CSV handling, synchronization, selection, display, and queued writes into focused controllers for safer maintenance.
Interface improvements
- Added a clearer tree-style Settings navigation panel with improved spacing, selection, hover behavior, connector lines, and meaningful tooltips.
- Restored the intended smaller status text on dual-line main-window controls.
- Standardized fixed-size window behavior and native dialog button ordering across macOS and Linux.
- Reviewed and shortened status notifications for clearer spelling, capitalization, and consistent punctuation.
- Improved spectrum and frequency-scale text rendering on macOS.
- Removed peak-hold markers from the S-meter and transmit-power meter.
Reliability and maintainability
- Decomposed the largest CI-V command parsers into focused protocol handlers.
- Split the former monolithic memory controller into smaller single-purpose components.
- Hardened UDP retransmission, lock ordering, malformed packet handling, audio shutdown, and thread synchronization.
- Fixed stereo Opus format negotiation and strengthened capability, cache, settings, and encrypted-profile handling.
- Expanded unit, integration, protocol, GUI smoke, and offline test coverage across both supported desktop platforms.
- Added optional AddressSanitizer and UndefinedBehaviorSanitizer builds and consolidated compiler-warning configuration.
Packaging
- Added packaging resources for macOS and Linux, including Linux udev rules for the Icom RC-28.
- The macOS bundle is audited to reject Homebrew and other build-machine library references before signing.
- Release DMGs are Developer ID signed, notarized by Apple, stapled, and validated by Gatekeeper before publication.
Full changelog: v26.07.01...v26.07.30