{{ message }}
Tags: on8st/AetherSDR
Tags
AetherSDR v26.8.3 — The Workspace Canvas, an Icom Command Plane & HL2… … Noise Blanking 53 commits since v26.8.2. The workspace canvas lands complete, all seven phases: pans and applets become freely placed, resizable, layered items on a canvas that can span several top-level windows, with named workspaces that recall which applets are open as well as where they sit, radio-profile bindings, and an Edit Layout posture so operating the station never brushes the arranging machinery. It is experimental and off by default — an install that never enables it never gains a settings key. Icom moved from a backend that works to a backend with a command plane. Every meter read, control write, reconciliation poll and PTT transition now goes through one CI-V scheduler with explicit priorities, coalescing and stale-reply rejection, written because a delayed PTT-OFF reply arriving after a newer PTT-ON was cutting transmit audio. The IC-7300MK2 control surface is complete against live hardware — 18 operator-visible defects — and the RS-BA1 lease renewal that froze the panadapter at the 255-to-256 sequence boundary is fixed. The connect path asks the radio for its own CI-V address instead of assuming the IC-705's, DATA mode reaches the radio for DIGU/DIGL and DFM, and WSPR transmits: 20 PSK Reporter reception reports across the continental US and Alaska. The Hermes-Lite 2 gains a working NB button — WDSP's impulse blanker on the raw IQ, which on a radio that ships raw IQ and runs no firmware DSP is the only place it can run at all — and a real BFO, so a CW passband straddles the marker instead of sitting where a USB filter would. Its gateware generates the shaped CW carrier at the TX NCO, so the receiver had been listening 600 Hz from where the radio transmits. AGC mode and threshold now survive a restart, and the host speech ALC no longer normalises away a TCI or DAX client's own level control. VK3AMP amplifiers join ACOM and SPE as a supported peripheral, over TCP control with UDP telemetry. The TX voice chain moves to a pinned 48 kHz float path with a single high-quality rate conversion. DAX RX grows to 8 channels on a FLEX-6700, driven from the radio's real slice capacity. CAT band changes finally bring the panadapter with them. And a multi-hour Windows transmit crash is closed: a TCI session left the local microphone undrained until the capture backlog crossed the signed 2 GiB boundary inside the channel normalizer.
AetherSDR v26.8.2 — Networked Icom, HL2 Notches & Frequency Calibration 57 commits since v26.8.1. A third radio family joins the aetherd seam: IcomCIV speaks CI-V inside the RS-BA1 UDP transport, brought up on a live IC-705 and an IC-9700 — receive, a 30 sweeps/s panadapter, transmit, and FT8 both decoding and spotting on PSK Reporter. Bringing a third vendor up flushed out defects invisible from a Flex that affected every non-Flex backend, including a null-pointer crash on connect that was live on main and took down HL2 and KiwiSDR too. FlexRadio remains the supported target. The Hermes-Lite 2 closes two more gaps against a Flex: manual notch filters placeable from the panadapter — 33.4 dB measured off-air on WWV, for a stated +64 ms of RX latency — and manual frequency calibration, one per-radio ppb correction covering every band and both oscillators. The first connect no longer freezes the application for 21–82 seconds, and the FFTW wisdom that cost buys now actually persists across runs. SPE Expert amplifiers (1.3K-FA / 1.5K-FA / 2K-FA) join ACOM over serial or ser2net. Three new spot and schedule overlays land in SpotHub: the N1MM+/DXLog contest bandmap, the EiBi shortwave broadcast schedule, and the KiwiSDR DX Community database. US 60m follows the FCC Report & Order effective 13 February 2026. The local iambic keyer keys to spec — 26.26 to 29.998 WPM at a 30 WPM setting, measured on hardware. MNR delivers the attenuation it advertised, 4.54 dB to 24.4 dB on stationary noise. Copy Assist survives a GPU it cannot use instead of taking the application down. On Windows, vcomp140.dll finally ships app-local, with a CI gate against the whole class.
AetherSDR v26.8.1 — Hermes-Lite 2, SQLite Settings & Capability-Gated UI 118 commits since v26.7.4.1. The Hermes-Lite 2 grows from an experimental backend into a radio you can operate: four independent receivers, the SSB voice chain, CW and RTTY decoding, AX.25 packet with a mailbox proven on the air, band switching with hardware filters and preamp, host-side memory channels, per-MAC operating state restore, and a Radio Health dialog. FlexRadio remains the supported target. Client settings move to SQLite (RFC aethersdr#4603) with transactional saves, integrity checks, verified backups, credentials in the OS keychain, a --config command line and a Settings Browser. RadioCapabilities now gates the UI, so every Flex-only surface hides itself on a backend that has no such thing. Qt 6.8.3 LTS is the floor and the pin everywhere — the CI image, both AppImage architectures, the Windows installer and both macOS legs. The Linux AppImage runs natively on Wayland; the aarch64 AppImage gets GPU spectrum rendering. The Intel Mac DMG trades speech-to-text for reach: it declares and honours a macOS 12.0 floor, because the speech runtime is published at a macOS 15.5 floor and one library's floor becomes the whole bundle's. Apple Silicon keeps speech-to-text. TCI PTT now keys the slice the client asked for.
AetherSDR v26.7.4.1 — TCI rig control hotfix One fix on top of v26.7.4: TCI vfo: SET now confirms the frequency the radio actually reached, restoring WSJT-X rig control and fixing relative tuning from control surfaces (aethersdr#4500, aethersdr#4493).
Pre-fill issue reports with a redacted log tail. Principle VII. Fixes aethersdr#3705 ## Summary - Pre-fill Help → Support → Submit Bug Report with system/radio context and a bounded recent-log tail. - Re-run centralized privacy redaction at the public issue-render boundary and fall back to the clipboard when the encoded GitHub URL would be too long. - Keep SmartLink account names and GPS/location coordinates out of logs at their source, including the WAN certificate-decision path. - Add centralized name/coordinate redaction as a fail-safe so those fields cannot survive into disk logs or the public issue body if a future logging path submits them. - Replace the absolute no-personal-data claim with a concrete privacy notice and a prompt to review before submission. ## Verification - Full macOS RelWithDebInfo build with 8 parallel jobs. - `async_log_writer_test` passes with planted SmartLink names and GPS/location coordinates absent from disk logs. - `issue_report_test` passes with the same planted fields absent from the generated public report. - `tools/check_engine_boundary.py --strict` passes with no new violations. Squashed-from: aethersdr#4314 Co-authored-by: aethersdr-agent[bot] <273844287+aethersdr-agent[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Pat Jensen <patjensen@gmail.com>
ci: auto-cancel superseded workflow runs via concurrency groups (aeth… …ersdr#4346) ## Problem The four PR check workflows — **CI**, **CodeQL**, **Accessibility Check**, **Engine Boundary Check** — had no `concurrency` group. Every push to a branch stacked a fresh full run on top of the still-queued older ones, so a rapid commit stream built up dozens of superseded runs and starved the runner pool. A ~35-run backlog (mostly `feat/asr-phase1-build`) just had to be cancelled by hand. ## Fix Add a concurrency group keyed on `workflow + ref` to each of the four workflows: ```yaml concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} ``` A newer commit on the same PR/branch now auto-cancels the in-progress older run. **The `main` guard is deliberate.** `cancel-in-progress` evaluates to `false` on `refs/heads/main`, so: - ci.yml / codeql.yml **post-merge `push: main` guard** always completes, - CodeQL's **weekly scheduled scan** (runs on the default branch) always completes. Only PR-branch runs (`refs/pull/N/merge`) get cancelled when superseded. ## Scope - Touches only the four PR-check workflows. - Release/artifact workflows (`appimage`, `macos-dmg`, `windows-installer`, `streamdeck-plugins`) are **left untouched** — they weren't part of the backlog and shouldn't cancel mid-build. - `docker-ci-image.yml` and `mirror-aether-gate.yml` already have their own `concurrency` blocks. ## Validation - All four files parse as valid YAML; concurrency schema asserted (`group` + `cancel-in-progress` present). - No job logic changed — pure top-level `concurrency:` addition (28 insertions, 0 deletions). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(waterfall): unify pane height split (aethersdr#4322) Principle VII. Derive the waterfall pane height as the remainder of the shared spectrum split, then use that value for image allocation, painting, and divider-drag reallocation. This prevents the source image and destination rectangle from differing by one row at odd content heights and fractional split ratios, avoiding Qt stretching or duplicating a waterfall row. Validation included a clean RelWithDebInfo build, targeted renderer and layout tests, the strict engine-boundary check, and all required GitHub checks. The separate faint Metal-path artifact documented in review remains outside the scope of this arithmetic fix. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PreviousNext
