48 commits across 14 contributors since v26.8.3. Full detail in CHANGELOG.md.
Headlines
Icom support now grows by model and evidence, not assumption. The IC-705,
IC-7300MK2 and IC-9700 gain typed capability profiles that fail closed for
unknown radios. That foundation brings radio-authoritative FM repeater tone,
duplex and momentary XFC; real IF-width/PBT and TX-cut readback; the radio's
network name; the CI-V CW text keyer; WFM and correct VHF/UHF band limits; plus
bounded IC-9700 CI-V recovery when the RS-BA1 transport remains alive.
CW timing and Hermes-Lite 2 operation move onto the right clock. HL2 gains
client-timed CW transmit with restart persistence, while scheduled key edges now
drive the sidetone, trace and netcw paths consistently. Late edges, PortAudio's
default-device route and cramped CWX macro rows all receive focused fixes.
Maps, audio and station controls are smoother and more trustworthy. PSK
Reporter renders more stations and paths with less per-item overhead and gains
trackpad pinch-to-zoom; NR2 recovers cleanly across AGC-T changes; microphone
capture stays float through the 48 kHz voice strip; MIDI profiles round-trip
safely; TCI stops duplicating channel-0 VFO updates; and Workspace Canvas,
Ulanzi, FlexControl and fractional-scale slider behavior are tightened up.
Networked Icom
- Evidence-backed model capability profiles (#5151). IC-705, IC-7300MK2
and IC-9700 behavior is described by independently attested facets instead of
scattered address checks. Unknown and unprofiled radios hide unsupported
controls and telemetry instead of borrowing another model's commands or
calibration. - Real RX filters, twin PBT and TX cuts (#5076). The app reads the radio's
actual IF width, keeps filter slot/width/shift separate, writes only
model-supported TX edges and publishes the radio's readback. - FM repeater tone, duplex, offset and momentary XFC (#5140). State is
read-first and profile-gated, recalled in radio-safe order, and XFC always
releases on hide, deactivation, capability change or disconnect. - Network Radio Name in the status bar (#5148). A custom RS-BA1 radio name
is kept distinct from canonical model, hostname and callsign. - CI-V CW text keying as CWK (#5113) and a focus fix that prevents incoming
CWK updates from stealing the VFO editor (#5134). - The radio's own mode vocabulary reaches the UI (#5106), making WFM
selectable where the model advertises it. - Correct RF decks and tune guards: 2 m/70 cm are admitted on the IC-705
(#5108), and IC-9700 band power limits are modelled explicitly (#5117). - Hardened lifecycle and IC-9700 recovery (#5145). Cancelled scheduler work
receives terminal outcomes, stale-session frames cannot publish state, and a
confirmed IC-9700 CI-V stall gets bounded serial-stream recovery before a
full reconnect. - Icom logging now registers its categories and records every CI-V frame
(#4965); the scheduler-safe trace regression was fixed (#5046).
CW and Hermes-Lite 2
- Client-timed HL2 CW transmit and persistence (#5061). Host-scheduled key
edges drive Protocol 1 CW safely, and client-owned CW operating state returns
after restart. - First-connect setup is presented reliably and test FFTW planning is bounded
(#5062). - Scheduled key instants now flow to sidetone, trace and netcw (#4942), and late
edges shift the sidetone anchor forward rather than being clamped (#4934). - PortAudio's real default-device path is reachable for the default sidetone
selection (#5085), and CWX macro rows remain readable at minimum window
height (#5125).
Audio and noise reduction
- Microphone capture stays float32 through the 48 kHz voice strip (#5017).
- TX-accumulator clears are serialized on the AudioEngine thread (#5095).
- NR2 recovers from residual noise when AGC-T changes (#5045), and RN2 frame
accumulation is unified (#5039). - Automation proof modes now exercise RN2 more completely (#5043).
PSK Reporter and the panadapter
- PSK Reporter map coverage and responsiveness improve through batched marker
and path rendering, wrapped-map geometry and live-update work (#5110). - Smooth trackpad pinch-to-zoom reaches the map (#5103).
- DIGL is no longer misclassified as RTTY, restoring the normal carrier marker
and removing meaningless mark/space cues (#5167). - Duplicate pan wiring callbacks are removed (#5038).
Controllers, MIDI and TCI
- macOS Ulanzi input no longer seizes unrelated trackpads (#5147).
- AetherControl gains a direct Settings link for FlexControl configuration
(#5157). - MIDI profile Save reports its real outcome (#5127); dotted profile names and
paths round-trip safely (#5083); the app's own Pitch Bend export re-imports
(#5054); and SmartSDR.mapfiles translate direct band/mode selection
(#5053). - TCI starts only after readiness, echoes start/stop correctly (#5082), and no
longer double-broadcastsvfo:on channel 0 (#5088).
App workflow and automation
- Workspace Canvas pan layouts reflow correctly after surface changes (#5152).
- Slider hover events no longer leave stale pixels at fractional UI scale
(#4923). - MainWindow disconnects the global focus-change signal before member teardown
(#4927). - PHONE low/high TX cuts accept exact typed values while preserving radio
readback (#5064). - The automation bridge gains
doubleClickanddoubleClickAt(#5069). - Accessibility announcement tests skip only where the platform has no
accessibility backend (#4949).
Diagnostics, documentation and CI
- Startup logs and support bundles record CPU SIMD, RAM and GPU capability
inventory (#4988). - MCP token guidance keeps
AETHER_MCP_TOKENout of persistent configuration
(#5158). - HL2 documentation and tools move into their maintained repository homes
(#5035). - The Linux gate runs
midi_settings_test(#5025); digital-voice ASan opt-in no
longer breaks TSan (#4947); and release signing archives the tag build rather
thanmain(#5029).
Contributors
Big thanks to @jensenpat (10 commits), @skerker (9), @rfoust (8),
@fklassen (3), @nigelfenton (3), @Ozy311 (3), @M7HNF-Ian
(2), @ten9876 (maintainer, 2), @w5jwp (2), @aethersdr-agent
(the AetherClaude orchestrator, 2), @chibondking (1), @K5PTB (1),
@NF0T (1), and @tropo1234 (1).
We are excited to welcome our first-time contributors this cycle:
@fklassen and @tropo1234.
73, Pat KI6BCJ & Codex (AI dev partner)
Downloads
Linux AppImage (x86_64 / aarch64), macOS DMG (Apple Silicon + Intel, signed + notarized), Windows installer (setup.exe) + portable ZIP, and the Stream Deck plugin are attached below — built and signed by CI workflows on this tag.
Full diff: v26.8.3...v26.8.4
Verifying releases: see docs/VERIFYING-RELEASES.md. Signing key: docs/RELEASE-SIGNING-KEY.pub.asc.