Repository navigation
release: prep v26.10.3 — SmartSDR 4.3 support and DeepCW AI CW decoder - #6567
Conversation
Lead with twelve multi-slice Auto SQL corrections, local voice recordings and neural CW reception. Map all 80 merged PRs, preserve contributor attribution, refresh README/ROADMAP and disclose cutoff CI failures. Co-Authored-By: Codex <noreply@openai.com>
Keep validation-failure evidence in the prep PR per the operator release decision; retain feature limits and the multi-slice Auto SQL highlights in the public notes.
NF0T
left a comment
There was a problem hiding this comment.
Review: v26.10.3 release prep
I checked the factual claims in the release record against the API and the tree, not against the body. Everything I checked holds. Head reviewed: 2f8f116ff (including the three note-refinement commits after the snapshot).
What I checked, and how
| Claim | How I checked it | Result |
|---|---|---|
| 80 merged PRs since v26.10.2 | git log --first-parent v26.10.2..9eace2448, each commit resolved through commits/{sha}/pulls (18 subjects have no (#N), so the subjects can't be trusted) |
80 commits, 80 distinct PRs |
| Every PR cited, no foreign citations | API PR set compared with every #NNNN in the new section |
exact match both ways |
| 14 human contributors + 2 Dependabot; per-author counts and attributions | grouped API results by PR author | all 14 counts and area summaries match (e.g. NF0T = #6400/#6399/#6540, Ozy311 = #6432/#6452/#6475/#6554, WA8PAM = #5991) |
| @custosonlinux is the only first-timer | merged-PR search for every author in range | holds (@sq9fk looked new but had #5931 in September) |
| Changelog history byte-identical | deleted lines in CHANGELOG.md |
0 |
| Stable snapshot is generated, not hand-edited | blob hashes of docs/user/docs @ 9eace2448 vs versioned_docs/version-stable @ head |
identical; no /next/ Log Analyzer links or i18n trees needed rewriting |
| Version spots agree | CMakeLists, AGENTS.md, README, ROADMAP heading, metainfo, stable-version.json; git grep 26.10.2 on the remainder |
agree. Remaining 26.10.2 hits are history, a usage example and a test fixture (release_tag_text_test.cpp passes the version in as data and doesn't compare it to the build) |
| ROADMAP RFC inventory | every open rfc issue without RFC Approved vs the inventory list |
exactly 41 = 41 both ways. Removals justified: #5682, #3184, #4031 closed; #6209 now RFC Approved |
| Commits signed | API verification | all four verified: valid |
Scope: the release files plus the generated snapshot, as the table in the body says. No source, test, workflow or dependency changes. Not a preference change; this is the release-prep process.
Constitution: VIII fits the prep commit. XIII (public communication) fits the two note-refinement commits.
On the cutoff CI failures (input, not a blocker)
The operator's decision to ship and keep these out of the public notes is recorded in the auto-merge commit body, and I'm not reopening it. In case it helps whoever picks up the fixes: the Full Suite history on main gives a clean attribution. Each failure first appears at one merge and fails in every run after it, so these are deterministic regressions, not flakes:
| Test | First red on main | Assertion |
|---|---|---|
control_receive_test, rtl_capture_worker_test, rtl_capture_worker_slow_device_test |
bccd4b719 (#6432, RTL SSB/CW) |
RTL adjustable filters are FM and FMN, plus WFM only when qualified; parked legacy receiver emits no PCM; legacy park and resume preserve slice RF, hardware and USB acquisition |
radio_setup_operations_test |
1f8a3fc11 (#6524, TUNE RCA) |
bandDialogUsesTypedRequestsAndNormalizesNumbers: toggles.size() 9 vs 8. Looks like the new RCA toggle meeting #6426's existing test (merge skew) |
auto_agc_threshold_gui_test |
ecc1297d0 (#6508, Auto AGC-T) |
bridgeClickWaitsForConfirmedStatus: rx.width() 251 vs 248, a layout pixel assertion |
Last green Full Suite: 480a9aa8a (#5933). Each of these PRs went green on the frozen per-PR allow-list, which doesn't run these targets. The two Flex ones look like stale assertions. The RTL "emits no PCM" / "park and resume" cases are behavioral and probably worth a look from @Ozy311. Right now they're tracked only by the bot fingerprint issues (#6563, #6564).
Small precision note, now moot since the section is gone: the sanitizer run cited was at 7864ef544, 39 commits before the cutoff, so it wasn't strictly "at the cutoff."
Merge path
Root *.md and CMakeLists.txt are @aethersdr/infrastructure; docs/ is @aethersdr/reviewers. This approval covers the reviewers gate only. Auto-squash is armed with an explicit headline, so the merge fires once an infrastructure owner other than the author approves (@ten9876 or @rfoust).
For future reference only: README's "Active test target is FLEX-8600 firmware 4.2.18" predates this PR and now sits beside 4.3-only feature descriptions. Worth refreshing in a later prep.
A carefully disclosed prep. The 80/80 mapping and the KPA500 dual credit were both exactly right.
73, Ryan NF0T
👨🏼💻 Co-authored by Claude Opus 5.5
Remove controller-firmware promotion from the public release material; retain controller fixes and preserve internal mapping and contributor credit.
rfoust
left a comment
There was a problem hiding this comment.
Prepares v26.10.3 as described. No linked issue; the release-prep requirements are met: consistent version/date metadata, release notes mapped to the cutoff, refreshed roadmap, and a reproducible Stable guide snapshot. Reviewed head 56219c1 against current main 9eace24, using GitHub merge result 14d9f9a.
Scope
| File/group | Claimed in body? | Verdict |
|---|---|---|
| CMakeLists.txt, AGENTS.md, Linux metainfo | Yes | Consistent version/date updates |
| CHANGELOG.md | Yes | Release-prep entry; historical content byte-identical |
| README.md and ROADMAP.md | Yes | Release summaries and RFC inventory; experimental labels preserved |
| Stable guide, sidebar and label | Yes | Generated snapshot; all 99 pages match current guide sources |
Everything in the diff is explained by the stated release-prep scope. No application source, test, dependency, or workflow changes.
Blockers
None.
Nits
Resolved the non-blocking PR-body wording: “Both commits” now accurately identifies all seven commits, whose signatures GitHub reports valid. No code change or additional commit was needed.
Verification and adversarial checks
- In an isolated temporary clone of the merge result, npm ci and npm run build passed, including link/anchor validation. Generated reference checks passed for 8 pages; the Log Analyzer passed 707 checks across 45 rules.
- Regenerated Stable with tools/docs/snapshot_stable.py 26.10.3; the tracked tree remained unchanged. Compared all 99 pages byte-for-byte against current guide sources.
- Independently mapped all 80 first-parent release commits to 80 distinct merged PRs. Contributor counts, 14 human contributors, two Dependabot updates and first-time attribution match. The only public citation omissions are the two firmware-management PRs disclosed in the body; no foreign citations.
- Checked version/date consistency, XML parsing, unique/date-descending AppStream entries, whitespace, unchanged historical changelog bytes, and all 41 pending RFC entries against the live issue inventory.
- Current PR checks are green and no review threads remain. No application build, GUI/demo session, hardware or TX test was run for this metadata/docs-only prep. Feature-runtime evidence remains attributed to the underlying merged PRs. A separate automated review skill was unavailable; a second manual consistency pass was performed.
The cutoff main Full Suite run independently confirms five failures out of 865 tests. These predate the prep and remain an explicit release risk; this approval does not establish that they are harmless. The PR also discloses weekly sanitizer failures. The operator has now explicitly directed approval and squash merge.
Recommendation: approve and squash merge through normal branch protections.
Prepares v26.10.3, dated 2026-10-18, from upstream
maincutoff9eace2448f1f2e6c2cb9d1af1cc468c04193f5bf(merged #6554).The release leads with SmartSDR 4.3 firmware support and the DeepCW AI CW decoder, followed by #6464's twelve Auto SQL corrections, local voice recordings, Elecraft panels and controller fixes. The API-derived release mapping contains 80 merged PRs, with 14 human contributors, two Dependabot updates and first-time contributor @custosonlinux. No AetherClaude-authored PR is in this range. KPA500 credit explicitly preserves both @WA8PAM's original contribution and @Ozy311's continuation.
The operator also requested removal of AetherCTR2/Lynovation firmware promotion from the release headline, summary, Controllers section, README/ROADMAP release summaries and social draft. Controller fixes remain. This is an editorial scope change: implementation and the generated user-guide snapshot are unchanged.
Scope
No source, test, dependency or workflow change. No family maturity label is promoted and no umbrella feature is declared complete. Historical changelog bytes remain unchanged.
Validation
npm ciandnpm run build; link and anchor validation passed.Known red CI at the cutoff — operator approved shipping
Required CI passed at
9eace2448, but Full Suite reports 5 failures out of 865 tests:The 2026-10-17 weekly sanitizer run reports
ctr2_hid_thread_port_testunder TSan andfirmware_install_model_testunder ASan/UBSan. Their harmlessness has not been established. On 2026-10-18, @jensenpat explicitly approved shipping with these failures and requested that validation-failure reporting stay out of CHANGELOG.md and the public release notes. The evidence remains here for review; no clean-suite claim is made. No tag or GitHub release has been published yet.The tag should point to this prep's merged commit on upstream main. The operator has approved proceeding with the release and requested removal of the voice-keyer licence statement from the release text and roadmap summary. Mark this prep ready for normal review and merge; do not bypass branch protection.
👨🏼💻 Generated with OpenAI Codex (GPT-5.6 Sol) and tested by @jensenpat