Mac Winlink v1.0.0 Beta 26
Pre-releaseMac Winlink v1.0.0 Beta 26
Download: MacWinlink_2026-07-21_5be4672.dmg (17 MB) — see Assets below.
First-time install? Read the Gatekeeper bypass instructions — since macOS Sequoia, Control-click-to-open no longer works and you'll need to go through System Settings → Privacy & Security → Open Anyway. If ARDOP throws an "access denied" error on first session start, that's a separate quarantine flag on the bundled ardopcf binary — the fastest fix is to run xattr -dr com.apple.quarantine /Applications/MacWinlink.app in Terminal after installing.
What's in this build
Beta26 is the sixth patch cut in the current beta series. Four fixes surfaced by beta25 field reports, focused on Helper-side visibility and rig recognition:
-
Flex 8000-series (8400 / 8600 / 8800) is now properly recognized as a network radio. Two Flex operators on QRZ landed on the same wall in the same week: the "Direct CAT" flow offered a serial-port picker for their network-only radios, so they had to pick
/dev/cu.Bluetooth-Incoming-Portin desperation, and CAT timed out (correctly — the radio doesn't listen there). MacWinlink now recognizes 8000-series models the same way it recognizes 6000-series: TCP on port 4992, SmartSDR CAT bridge. Distinct "8000-series" entry now appears in the model picker. Tracked as ARSFI/MacWinlink#283. -
Helper Direwolf audio picker is now a proper CoreAudio device dropdown (releases#14 → ARSFI/MacWinlink#284). The old picker offered only "System Default" and "Custom + type a device name" — the free-text field led one beta tester to type a serial port path (Direwolf tried to open it as audio and died silently with no log). Fix mirrors the ARDOP-side pattern from beta24: enumerate CoreAudio input devices, tag by stable per-instance UID, disambiguate duplicate-named devices by manufacturer. One-shot migration handles pre-beta26 configs — if the stored name unambiguously matches an enumerated device, the UID is populated automatically.
-
Helper Direwolf detail view now shows the runtime process log (ARSFI/MacWinlink#285). Same beta tester (releases#14) surfaced the second gap: "I did look for your Helper files, but unlike the VARA ones, there is no log to copy." Accurate. The Helper captured Direwolf's stdout/stderr in memory (same buffer VARA HF, VARA FM, and rigctld already display) but the Direwolf detail view didn't surface it. When Direwolf refused to start (missing callsign, port conflict, unresolvable audio device, etc.), the specific error was invisible. Now displayed inline via the same
LogViewerpanel the other services use. -
New troubleshooting documentation for the VARA FM Flex-audio crash (ARSFI/MacWinlink#64). Flex 8400 users have hit a VARA FM crash on start dating back to April; four of the underlying mitigations shipped earlier this cycle (DirectSound registry defaults, VARA launch device healing, audio debug mode toggle, Wine prefix CoreAudio config). The remaining piece is a documented workaround for the fundamental Wine/DAX limitation: route SmartSDR's DAX Audio channels through BlackHole 2ch so Wine sees the audio as a native CoreAudio device instead of a Windows-only virtual driver. New TROUBLESHOOTING entry with the full recipe ships bundled in the app under Help → Documentation → Troubleshooting. Two regression tests locking in the anti-crash invariants of the device-healing pass.
Diagnostic outcome — no new decoder bug
Beta25 tester K8MRD had been reporting "Expected SOH, got D6" errors on VARA HF sessions with a specific inbound message (MID SPYDWJPCJD3X). We initially framed this as a possible poison-message decoder bug and opened ARSFI/MacWinlink#282 to investigate. K8MRD ran a diagnostic Telnet A/B test in beta25: Telnet succeeded cleanly, and the "cursed" message eventually downloaded fine on a later VARA HF session. The pattern turned out to be VARA HF handing us framing-corrupt bytes under marginal RF conditions on whatever message was in the receive slot at the time — not a decoder bug, and not a specific-message problem. Issue reframed and closed; the underlying "make our decoder more forgiving of single-byte framing errors" work is now V1.1 roadmap.
What's unchanged
Everything else in beta25 is unchanged. No functionality removed; no protocol changes; no UI restructuring. SwiftRigControl 1.1.2 remains pinned.
Test suite: 2,133 main-app + 253 Helper = 2,386 total, 0 failures.
System requirements
- macOS 15.0 (Sequoia) or later
- Apple Silicon Mac (M1 / M2 / M3 / M4 / M5)
- Intel Macs are not supported
Full changelog
The complete beta26 release notes are in ARSFI/MacWinlink CHANGELOG.md and CHANGELOG-Helper.md.
Reporting problems
File a bug report or feature request.
Verification
SHA-256 of the DMG: 033ae3fda9b6f93b718012046424cd526b220baba4782157f7bea9e33e79c8b2
You can verify with shasum -a 256 MacWinlink_2026-07-21_5be4672.dmg after downloading.