{{ message }}
Tags: pcarff/AetherSDR
Tags
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>
AetherSDR v26.7.2 aetherd IRadioBackend seam, MCP server, BNR on RTX 50-series/Blackwell, per-receiver KiwiSDR passwords, searchable Radio Setup & Network Diagnostics, local D-STAR via ThumbDV, adaptive ESSB RX filter, WAVE showcase visualizations. 123 commits since v26.7.1. See CHANGELOG.md.
AetherSDR v26.7.1 3D stacked-trace spectrum + in-process NVIDIA BNR + TX meter readouts + 60 fps panadapters. Headlined by a new 3D stacked-trace spectrum panadapter render mode, the NVIDIA in-process AI noise-removal engine (BNR, no container), mouse-over numeric readouts on the TX meters, and a 60 fps per-pixel GPU panadapter path — plus platform-based model capability gating from FlexLib and a broad wave of audio, spectrum, and UI fixes. 29 commits since v26.6.5. See CHANGELOG.md for the full list.
fix(gui): DX spot tooltip blocked by passband hit-test (aethersdr#3887)… … (aethersdr#3903) ## Summary - Hovering over a DX spot inside the active slice passband showed no tooltip because `sliceCursorShapeAt` (passband body → `OpenHandCursor`) set `foundCursor = true` before the spot rect loop had a chance to run. - Fix: move `m_spotClickRects` check ahead of `sliceCursorShapeAt` in `mouseMoveEvent`. 7-line block reorder, zero logic changes. - Mirrors the existing press path (`spectrumDefaultsToCrosshairAt`, line 5578) which already returns `false` early for spot rects — click and hover now behave consistently. ## Test plan - [ ] Enable SpotHub; tune a spot fully inside the active slice passband — tooltip appears on hover - [ ] Same spot moved outside the passband — tooltip still works - [ ] Filter edge resize zones (`kFilterEdgeGrabPx` grab strips) still respond correctly - [ ] Spot cluster indicators inside passband show `PointingHandCursor` - [ ] Tested: macOS 15, FLEX-6600, v26.6.5 build Fixes aethersdr#3887 Closes aethersdr#3901
PreviousNext
