mercury (1.9.13-1) unstable; urgency=medium

  * Release 1.9.13.
  * release: bank the signed zip before attempting the installer.
  * gui: tell two identical-looking sound cards apart (#189).
  * gui: keep the device id whole when the label will not fit (#189 follow-up).
  * audioio: support the 44.1 kHz family, and report the failures that remain (#193).
  * build+tests: -latomic on armhf, and a stale-test-binary hazard (#200).
  * Fix VARA/Pat connect-disconnect hangs and uncommanded exit (#200).
  * UI: highlight TX/RX direction and align spectrum/waterfall to 0-3000 Hz.
  * ui: compile the web pages into the binary so they are actually reachable (#204).
  * freedv: honor configured archiver.
  * arq/tnc: acknowledge every callsign MYCALL accepts, not just the primary.
  * ci: let the Windows job check out on pull requests from forks.
  * Avoid libatomic on macOS arm64 build.
  * ci: build macOS arm64, the target that had no coverage at all.
  * fix(arq): strictly validate session IDs.
  * fix(tests): avoid integration test port collisions.
  * Add Logs menu, Submit issue item, and logs directory handling.
  * Support VarAC Beacon.

 -- Rafael Diniz <rafael@riseup.net>  Mon, 24 Aug 2026 19:58:26 +0000

mercury (1.9.12-1) unstable; urgency=medium

  * Release 1.9.12.
  * installer: shortcut name cannot contain "/" — it aborts Setup on Windows.
  * Fix coreaudio device id mismatch on macOS.
  * channel: enable the busy detector by default, deliver BUSY like other state.
  * arq/fsm: defer LISTEN OFF during grace period after PENDING.
  * audioio: add mutex for PulseAudio to avoid race conditions.
  * audioio: fix segfault on UI connect when a PulseAudio device has no description (#150).
  * gui: drive the embedded UI through CGo, behind a transport-agnostic Link.
  * arq/tnc: send REGISTERED <callsign> when both callsign set and listening.
  * build: drop the redundant SAN_LDFLAGS from freedv and utils link lines.
  * channel: busy detector back to opt-in, and never during a session.
  * Add configurable tx_delay_ms.
  * 1.9.12: callsign truncation, CALL retry anchor, Watterson double, acquire/decode instrument.
  * audioio: enable the OSS backend on Linux (OSSv4), and fix device selection around it.
  * audioio: pre-fault the OSS capture buffer (fixes sporadic EFAULT from osscore).
  * Revert #166: the OSS EFAULT pre-fault was based on a wrong diagnosis.
  * audioio: ask OSS for the buffer geometry before setting the format.
  * audioio: read OSS capture a fragment at a time.
  * ofdm: FFT-based burst acquisition — 2.2x less idle RX CPU, identical sensitivity (#162).
  * modem: run the two OFDM decoders in parallel, one thread each.
  * audioio: do not leak the OSS buffer when open() is retried.
  * fyne-ui-v2: Mercury Client chat window, waterfall palette & toggle, UI polish.
  * Follow-up fixes for fyne-ui-v2 (PR #174 review comments).
  * modem: show the waterfall while transmitting.
  * audioio: report a failed sound card instead of dying quietly.
  * macos: version-stamp the .dmg, ship the CLI in it, and sign with rcodesign.
  * Add SignPath trial workflow and update artifact configurations.
  * radio_io: say when radio_device is the wrong kind of port for the rig (#179).
  * Fyne UI refinements: window geometry persistence, Telemetry SNR, menu & chat window polish.
  * Mercury client: bandwidth toggle and Send CQ Frame.
  * docs: lead with what Mercury is, add a docs index, and correct the control mode.
  * audioio: stop cutting long audio device names at 63 characters (#185).
  * audioio/ui: move the device-enumeration arrays off the stack.
  * modem: size the RX buffers from the ladder, not a fixed 2 s.
  * release: make the Windows installer step actually work.
  * release: one SimplySign session per job, and build the installer by default.
  * release: sign before wine is installed, and retry a flaky login.

 -- Rafael Diniz <rafael@riseup.net>  Sun, 16 Aug 2026 19:25:14 +0000

mercury (1.9.12-1) unstable; urgency=medium

  * Release 1.9.12.
  * installer: shortcut name cannot contain "/" — it aborts Setup on Windows.
  * Fix coreaudio device id mismatch on macOS.
  * channel: enable the busy detector by default, deliver BUSY like other state.
  * arq/fsm: defer LISTEN OFF during grace period after PENDING.
  * audioio: add mutex for PulseAudio to avoid race conditions.
  * audioio: fix segfault on UI connect when a PulseAudio device has no description (#150).
  * gui: drive the embedded UI through CGo, behind a transport-agnostic Link.
  * arq/tnc: send REGISTERED <callsign> when both callsign set and listening.
  * build: drop the redundant SAN_LDFLAGS from freedv and utils link lines.
  * channel: busy detector back to opt-in, and never during a session.
  * Add configurable tx_delay_ms.
  * 1.9.12: callsign truncation, CALL retry anchor, Watterson double, acquire/decode instrument.
  * audioio: enable the OSS backend on Linux (OSSv4), and fix device selection around it.
  * audioio: pre-fault the OSS capture buffer (fixes sporadic EFAULT from osscore).
  * Revert #166: the OSS EFAULT pre-fault was based on a wrong diagnosis.
  * audioio: ask OSS for the buffer geometry before setting the format.
  * audioio: read OSS capture a fragment at a time.
  * ofdm: FFT-based burst acquisition — 2.2x less idle RX CPU, identical sensitivity (#162).
  * modem: run the two OFDM decoders in parallel, one thread each.
  * audioio: do not leak the OSS buffer when open() is retried.
  * fyne-ui-v2: Mercury Client chat window, waterfall palette & toggle, UI polish.
  * Follow-up fixes for fyne-ui-v2 (PR #174 review comments).
  * modem: show the waterfall while transmitting.
  * audioio: report a failed sound card instead of dying quietly.
  * macos: version-stamp the .dmg, ship the CLI in it, and sign with rcodesign.
  * Add SignPath trial workflow and update artifact configurations.
  * radio_io: say when radio_device is the wrong kind of port for the rig (#179).
  * Fyne UI refinements: window geometry persistence, Telemetry SNR, menu & chat window polish.
  * Mercury client: bandwidth toggle and Send CQ Frame.
  * docs: lead with what Mercury is, add a docs index, and correct the control mode.
  * audioio: stop cutting long audio device names at 63 characters (#185).
  * audioio/ui: move the device-enumeration arrays off the stack.
  * modem: size the RX buffers from the ladder, not a fixed 2 s.
  * release: make the Windows installer step actually work.
  * release: one SimplySign session per job, and build the installer by default.

 -- Rafael Diniz <rafael@riseup.net>  Sun, 16 Aug 2026 18:59:27 +0000

mercury (1.9.12-1) unstable; urgency=medium

  * Release 1.9.12.
  * installer: shortcut name cannot contain "/" — it aborts Setup on Windows.
  * Fix coreaudio device id mismatch on macOS.
  * channel: enable the busy detector by default, deliver BUSY like other state.
  * arq/fsm: defer LISTEN OFF during grace period after PENDING.
  * audioio: add mutex for PulseAudio to avoid race conditions.
  * audioio: fix segfault on UI connect when a PulseAudio device has no description (#150).
  * gui: drive the embedded UI through CGo, behind a transport-agnostic Link.
  * arq/tnc: send REGISTERED <callsign> when both callsign set and listening.
  * build: drop the redundant SAN_LDFLAGS from freedv and utils link lines.
  * channel: busy detector back to opt-in, and never during a session.
  * Add configurable tx_delay_ms.
  * 1.9.12: callsign truncation, CALL retry anchor, Watterson double, acquire/decode instrument.
  * audioio: enable the OSS backend on Linux (OSSv4), and fix device selection around it.
  * audioio: pre-fault the OSS capture buffer (fixes sporadic EFAULT from osscore).
  * Revert #166: the OSS EFAULT pre-fault was based on a wrong diagnosis.
  * audioio: ask OSS for the buffer geometry before setting the format.
  * audioio: read OSS capture a fragment at a time.
  * ofdm: FFT-based burst acquisition — 2.2x less idle RX CPU, identical sensitivity (#162).
  * modem: run the two OFDM decoders in parallel, one thread each.
  * audioio: do not leak the OSS buffer when open() is retried.
  * fyne-ui-v2: Mercury Client chat window, waterfall palette & toggle, UI polish.
  * Follow-up fixes for fyne-ui-v2 (PR #174 review comments).
  * modem: show the waterfall while transmitting.
  * audioio: report a failed sound card instead of dying quietly.
  * macos: version-stamp the .dmg, ship the CLI in it, and sign with rcodesign.
  * Add SignPath trial workflow and update artifact configurations.
  * radio_io: say when radio_device is the wrong kind of port for the rig (#179).
  * Fyne UI refinements: window geometry persistence, Telemetry SNR, menu & chat window polish.
  * Mercury client: bandwidth toggle and Send CQ Frame.
  * docs: lead with what Mercury is, add a docs index, and correct the control mode.
  * audioio: stop cutting long audio device names at 63 characters (#185).
  * audioio/ui: move the device-enumeration arrays off the stack.
  * modem: size the RX buffers from the ladder, not a fixed 2 s.
  * release: make the Windows installer step actually work.

 -- Rafael Diniz <rafael@riseup.net>  Sun, 16 Aug 2026 18:15:22 +0000

mercury (1.9.12-1) unstable; urgency=medium

  * Release 1.9.12.
  * installer: shortcut name cannot contain "/" — it aborts Setup on Windows.
  * Fix coreaudio device id mismatch on macOS.
  * channel: enable the busy detector by default, deliver BUSY like other state.
  * arq/fsm: defer LISTEN OFF during grace period after PENDING.
  * audioio: add mutex for PulseAudio to avoid race conditions.
  * audioio: fix segfault on UI connect when a PulseAudio device has no description (#150).
  * gui: drive the embedded UI through CGo, behind a transport-agnostic Link.
  * arq/tnc: send REGISTERED <callsign> when both callsign set and listening.
  * build: drop the redundant SAN_LDFLAGS from freedv and utils link lines.
  * channel: busy detector back to opt-in, and never during a session.
  * Add configurable tx_delay_ms.
  * 1.9.12: callsign truncation, CALL retry anchor, Watterson double, acquire/decode instrument.
  * audioio: enable the OSS backend on Linux (OSSv4), and fix device selection around it.
  * audioio: pre-fault the OSS capture buffer (fixes sporadic EFAULT from osscore).
  * Revert #166: the OSS EFAULT pre-fault was based on a wrong diagnosis.
  * audioio: ask OSS for the buffer geometry before setting the format.
  * audioio: read OSS capture a fragment at a time.
  * ofdm: FFT-based burst acquisition — 2.2x less idle RX CPU, identical sensitivity (#162).
  * modem: run the two OFDM decoders in parallel, one thread each.
  * audioio: do not leak the OSS buffer when open() is retried.
  * fyne-ui-v2: Mercury Client chat window, waterfall palette & toggle, UI polish.
  * Follow-up fixes for fyne-ui-v2 (PR #174 review comments).
  * modem: show the waterfall while transmitting.
  * audioio: report a failed sound card instead of dying quietly.
  * macos: version-stamp the .dmg, ship the CLI in it, and sign with rcodesign.
  * Add SignPath trial workflow and update artifact configurations.
  * radio_io: say when radio_device is the wrong kind of port for the rig (#179).
  * Fyne UI refinements: window geometry persistence, Telemetry SNR, menu & chat window polish.
  * Mercury client: bandwidth toggle and Send CQ Frame.
  * docs: lead with what Mercury is, add a docs index, and correct the control mode.
  * audioio: stop cutting long audio device names at 63 characters (#185).
  * audioio/ui: move the device-enumeration arrays off the stack.
  * modem: size the RX buffers from the ladder, not a fixed 2 s.

 -- Rafael Diniz <rafael@riseup.net>  Sun, 16 Aug 2026 17:54:55 +0000

mercury (1.9.11-1) unstable; urgency=medium

  * Release 1.9.11.
  * freedv/HARQ: average combined LLRs by copy count (not raw-sum).
  * freedv/HARQ: gate combined-decode acceptance on parity count, not CRC16 alone.
  * modem: 8 MB stacks for TX/RX threads — fixes macOS crash on wide OFDM modes.
  * audio: -x sock — a virtual-clock lockstep backend for device-free testing.
  * Store config, logs in install dir on Windows and fix audio device persistence on restart.
  * build(windows): Authenticode signing via Certum SimplySign (jsign) — validated, +CI.
  * docs(windows-signing): finish de-personalising the reference tables.
  * fix: race condition in WebSocket connect callback on aarch64.
  * modem: TUNE command — a 1 kHz ATU tuning carrier with a hard unkey timer.
  * docs(TNC): document the TUNE command in the host command reference.
  * audioio: fix int32 stereo mix overflow, resample by the device's real rate.
  * audioio: support 24-bit packed (S24_3LE) cards on Linux.
  * windows: sign the installer and its payloads; ship the console binary.
  * arq+tnc: honour LISTEN OFF in every state; make host state notifications reliable.
  * ci(release): build and sign the Windows installer from a prepared Inno tree.
  * ci: install the tools the signer image lacks; honour Integration's branch input.

 -- Rafael Diniz <rafael@riseup.net>  Thu, 30 Jul 2026 19:05:53 +0000

mercury (1.9.10-1) unstable; urgency=medium

  * Release 1.9.10.
  * docs: fix minor README typos / grammar.
  * arq: fix WAIT_ACK pending-disconnect dropping last frame (Fix-14 regr….
  * Added new more robust mores DATAC15 DATAC16.
  * audioio: fix per-period click in TX upsampler (issue #81).
  * audioio: right-size resampler scratch buffers (fixes #79).
  * build: fix macOS (Apple clang) compilation.
  * Fix incompatibility with Hamlib 5.X.
  * Prevent integer overflow in playback duration calculation.
  * arq: fix permanent deadlock when app TX ring fills during transfer.
  * audioio: break on write error instead of corrupting the playback offset.
  * audioio: fix channel-count overflow, pulse clamp, deinit routing, and SHM guard.
  * common: async-signal-safe SIGINT handler, shm_map NULL, ring guard, diagnostics.
  * fix: cfg_write [tnc] section, mg_ws_send length, device-list OOB, port strtol.
  * docs: complete -h sound-system list, fix mercury.ini.example, remove dead #if 0.
  * ci: add SANITIZE_TSAN and SANITIZE_ASAN_UBSAN build toggles and informational CI jobs.
  * tests/fuzz: add libFuzzer targets for ARQ header, framer, KISS, and arith parsers.
  * tests/sim: add two-FSM in-process ARQ simulation harness.
  * arq: fix S4 CQ race — move pending_burst_frames to arq_session_t.
  * radio_io: log PTT failures; net: remove dead tcp_open.
  * arq: protect arq_conn with g_conn_lock (rebased #111 + complete FSM-thread reads).
  * arq: fix S1 fade-cliff stall.
  * arq: make ARQ timing constants INI-tunable (rebased #109).
  * arq: replace extern-in-.c TNC coupling with arq_tnc_callbacks_t (rebased #110).
  * ui: derive WebSocket URL port from the served page, not a hardcoded 10000.
  * modem: add channel-busy detector with VARA-compatible BUSY ON/OFF.
  * arq: don't let data_retry_slots inflate CALL/ACCEPT retries (fix ACCEPTING linger).
  * Fyne UI with CGo + Windows Installer.
  * Updates for new release.
  * fyne-ui: guard shared appState with a mutex (fix data races).
  * fyne-ui: keep engine alive on audio failure + share the CLI parser (full CLI via os.Args).

 -- Rafael Diniz <rafael@riseup.net>  Fri, 17 Jul 2026 16:54:24 +0000

mercury (1.9.9-2) unstable; urgency=medium

  * Add mercury-ui binary package: standalone Fyne desktop GUI that embeds
    the modem engine in-process (no separate daemon required).
  * Ship a desktop entry and application icon for mercury-ui.
  * Build-Depends: add golang-go, libgl1-mesa-dev and xorg-dev for the GUI.

 -- Rafael Diniz <rafael@riseup.net>  Wed, 15 Jul 2026 00:15:43 +0100

mercury (1.9.9-1) unstable; urgency=medium

  * Release 1.9.9.
  * Improve hamlib list models output.
  * Improve PWA responsive layout for mobile view.
  * Update installation guide on README.
  * Add implementation plan for ARQ robustness and TX gain control.
  * Harden keepalive handling and add mode-revert notification.

 -- Rafael Diniz <rafael@riseup.net>  Thu, 28 May 2026 20:18:47 +0000

mercury (1.9.8-1) unstable; urgency=medium

  * Release 1.9.8.
  * Added CALLINT command.
  * Update broadcast for VARA clients support.
  * Fixes for PulseAudio.

 -- Rafael Diniz <rafael@riseup.net>  Tue, 25 Apr 2026 10:19:00 +0000

mercury (1.9.7-1) unstable; urgency=medium

  * Release 1.9.7.
  * Fix Windows ARQ socket reads (replace WSAPoll with select).
  * Add radio_serial_speed config for hamlib baud rate override.
  * Add MYCALL secondary callsigns support (up to 4).
  * Add VARA commands: ABORT, VERSION, IGNOREKISSDCD, LISTEN CQ.

 -- Rafael Diniz <rafael@riseup.net>  Tue, 15 Apr 2026 12:00:00 +0100

mercury (1.9.6-1) unstable; urgency=medium

  * Release 1.9.6.

 -- Rafael Diniz <rafael@riseup.net>  Fri, 10 Apr 2026 16:01:00 +0100

mercury (1.9.5-1) unstable; urgency=medium

  * Release 1.9.5.

 -- Rafael Diniz <rafael@riseup.net>  Mon, 23 Mar 2026 00:30:00 +0000

mercury (1.9.4-1) unstable; urgency=medium

  * Release 1.9.4.

 -- Rafael Diniz <rafael@riseup.net>  Thu, 12 Mar 2026 01:29:00 +0000

mercury (1.9.3-1) unstable; urgency=medium

  * Release 1.9.3.

 -- Rafael Diniz <rafael@riseup.net>  Thu, 06 Mar 2026 20:58:00 +0000
