Skip to content

release: prep v26.10.3 — SmartSDR 4.3 support and DeepCW AI CW decoder - #6567

Merged
jensenpat merged 7 commits into
aethersdr:mainfrom
jensenpat:aether/release-v26.10.3
Oct 18, 2026
Merged

jensenpat merged 7 commits into
aethersdr:mainfrom
jensenpat:aether/release-v26.10.3

Conversation

@jensenpat

@jensenpat jensenpat commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

Prepares v26.10.3, dated 2026-10-18, from upstream main cutoff 9eace2448f1f2e6c2cb9d1af1cc468c04193f5bf (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

Paths Purpose
CMakeLists.txt, README.md, AGENTS.md, CHANGELOG.md, ROADMAP.md, Linux metainfo Synchronize version/date, insert the release record, refresh current feature descriptions and roadmap progress/RFC inventory
docs/user/stable-version.json, versioned_docs/, versioned_sidebars/ Generated Stable snapshot of the tag's current user guide, including the two new Elecraft pages; separate signed commit

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

  • Full documentation install and production build passed: npm ci and npm run build; link and anchor validation passed.
  • Generated reference pages are current (8 pages); Log Analyzer passed 707 checks for 45 rules.
  • All six version spots agree on 26.10.3; changelog/metainfo dates agree on 2026-10-18; XML parses; release entries are unique and date-descending.
  • The public changelog cites 78/80 merged PRs. At the operator's explicit request, firmware-management PRs feat(ctr2): install and update AetherCTR2 on a CTR2-Max from AetherSDR. Principle VIII. #6487 and feat(ctr2): install Lynovation's CTR2-Max firmware, restore backups and restart into either firmware from the CTR2 window. Principle VIII. #6527 are omitted from public promotion because AetherCTR2/Lynovation firmware is not ready for public consumption. Both remain in the internal 80-PR mapping and contributor totals. All other citations, contributor counts, Dependabot total and first-time attribution match; no foreign PR citations.
  • Existing changelog history remains byte-identical. README/ROADMAP local links and headings pass, version markers lead with 26.10.3, and whitespace checks pass.
  • The aggregate release-prep checker reports two known false positives, disclosed rather than changing facts to satisfy it: its fixed intro grammar requires the name AetherClaude even when absent from the contributor mapping; its historical-version guard flags the generated Stable label changing from 26.10.2 to 26.10.3. Snapshot paths are its expected extra-file warning. The citation-completeness check additionally reports those two intentional public omissions; all remaining checks pass.
  • All seven commits have verified signatures on GitHub.
  • No application build or live-radio/automation test was run for this metadata/docs-only prep. Feature evidence and limits are attributed to the merged PRs; the prep does not claim to repeat them. No new feature UI is introduced by this diff, so no new screenshot is required.

Known red CI at the cutoff — operator approved shipping

Required CI passed at 9eace2448, but Full Suite reports 5 failures out of 865 tests:

  • control_receive_test
  • rtl_capture_worker_test
  • rtl_capture_worker_slow_device_test
  • radio_setup_operations_test
  • auto_agc_threshold_gui_test

The 2026-10-17 weekly sanitizer run reports ctr2_hid_thread_port_test under TSan and firmware_install_model_test under 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

jensenpat and others added 3 commits October 18, 2026 08:06
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.
@jensenpat
jensenpat marked this pull request as ready for review October 18, 2026 15:14
@jensenpat
jensenpat requested review from a team as code owners October 18, 2026 15:14
@jensenpat
jensenpat enabled auto-merge (squash) October 18, 2026 15:15
NF0T
NF0T previously approved these changes Oct 18, 2026

@NF0T NF0T left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.
@jensenpat jensenpat changed the title release: prep v26.10.3 — multi-slice Auto SQL, voice keyer and neural CW release: prep v26.10.3 — SmartSDR 4.3 support and DeepCW AI CW decoder Oct 18, 2026
@jensenpat
jensenpat disabled auto-merge October 18, 2026 15:21
@jensenpat
jensenpat enabled auto-merge (squash) October 18, 2026 15:21
@rfoust rfoust self-assigned this Oct 18, 2026

@rfoust rfoust left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@jensenpat
jensenpat merged commit 86e90af into aethersdr:main Oct 18, 2026
7 checks passed
@rfoust rfoust removed their assignment Oct 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants