Bugfixes:
- Hamlib: Allow two timeouts during connection process to allow Icom marine radios to behave better. (PR #1369, #1388)
- Rename sanitizers.h->freedv_sanitizers.h due to name conflicts. (PR #1372)
- Fix intermittent non-response to short PTT clicks to stop TX. (PR #1375) - thanks @barjac!
- Revert to libsamplerate library to fix remaining audio quality issues. (PR #1379)
- Right-justify SNR column in FreeDV Reporter to improve appearance. (PR #1387) - thanks @barjac!
- Hamlib: Set frequency again on mode changes. (PR #1395)
- Consolidate EOO length calculation in freedv-backend to improve callsign decode reliability. (PR #1402)
- Hamlib: Switch off memory channel before setting frequency/mode. (PR #1403) - thanks @barjac!
- Hamlib/OmniRig: Round received frequency to nearest 100 Hz. (PR #1373)
- Tighten remaining audio settings to improve audio drops. (PR #1412)
- Fix corruption of string config arrays containing commas. (PR #1417) - thanks @barjac!
- Suppress button flicker in Linux light themes. (PR #1419, PR #1421) - thanks @barjac!
- Only preserve previously selected tab on TX if it's in the same group as 'From Mic'. (PR #1428)
- Scalar plot label alignment fix for Y axis of Frm Decoder/Mic/Radio, SNR and Spectrum plots. (PR #1429) - thanks @barjac!
- Fix window position restore under KWin and labwc (main window + FreeDV Reporter window). (PR #1431, #1433, #1449, #1450) - thanks @barjac!
- Harden experimental tab layout persistence. (PR #1434) - thanks @barjac!
- Fix right-click context menus dismissing before they can be read (GTK). (PR #1437) - thanks @barjac!
- Unconditionally add new station to Heard Station list if first heard. (PR #1444)
- Fix heard‑stations callsign combo stuck‑highlight, right‑click behaviour, and a stale‑index crash. (PR #1448) - thanks @barjac!
- Fix crash and long hang on main window close with an unresponsive rig. (PR #1452) - thanks @barjac!
- Fix Radio Frequency coloring on dark/light mode transition. (PR #1453)
- Fix FreeDV Reporter column‑order corruption and Last TX column width. (PR #1458) - thanks @barjac!
- Fix waterfall/spectrum filling solid colour during half‑duplex TX. (PR #1462) - thanks @barjac!
- Windows/macOS: Zero audio on startup. (PR #1463)
- Fix issue causing TX thread to use more CPU time than expected with no audio available. (PR #1465)
Enhancements:
- Add UDP broadcast of received callsigns. (PR #1367)
- Add Time‑Out Timer (TOT) capability to FreeDV. (PR #1366, #1398, #1405) - thanks @barjac!
- Load last‑used config file on restarts. (PR #1365, #1371)
- Add "Set tune output to minimum" to Tune button context menu for safety. (PR #1378) - thanks @barjac!
- Move Tune button into Control widget for improved usability. (PR #1377) - thanks @barjac!
- Restore heard station list on launch. (PR #1358) - thanks @barjac!
- Add momentary PTT option to FreeDV. (PR #1393)
- Allow 8 k sample rate for 'radio' devices. (PR #1416)
- FreeDV Reporter: Connect to server via TLS by default. (PR #1422, #1427)
- Block special characters in recording file name suffixes and default the voice keyer file selector to show .wav and .mp3. (PR #1424) - thanks @barjac!
- Fix Voice Keyer/PTT context menu positioning under native Wayland. (PR #1438) - thanks @barjac!
- Automatically start decoding on FreeDV startup. (PR #1436)
- Remove "Clip" indicator from main window to reduce confusion. (PR #1461)
Build system:
- Clear CMake deprecation warnings in FreeDV. (PR #1383, #1386)
- Upgrade Hamlib to 4.7.2. (PR #1413)
- Update wxWidgets to 3.3.3. (PR #1439)
- Require C++20 to build FreeDV. (PR #1440)
- Enable LTO/PGO for macOS .app build. (PR #1456)
- Enable PGO for Windows builds. (PR #1457)
- Add support for CCache. (PR #1328)
Other:
- FlexRadio/KA9Q integrations moved to freedv‑integrations repo. (PR #1368)
- Improve tab save/load behavior on systems with wxWidgets 3.3+. (PR #1435)
Note: For users with “Enable Experimental Features” turned on, the way that displayed tabs are saved and restored has changed; you may need to reconfigure your main window after upgrading.