Repository navigation
docs(user): bring the guide up to date with v26.10.2, in US spelling, and re-take the Stable snapshot. Principle VIII. - #6396
Conversation
… Principle VIII. An audit of every page against the 106 PRs in v26.10.2, each fact checked against the source at the release commit: - Menu paths: AetherMap, AetherModem, Callsign Lookup and FreeDV Reporter are on View, and Waveforms is on Tools. - New coverage: Windows Firewall rules and the Network Diagnostics page (#6289), live CW contacts (#6268), NB2 on the HL2 and ANAN-G2 (#5966), ANAN-G2 AGC-T and per-radio memory (#6282, #6129), HL2 state restore and its level changes (#6259, #6254, #5975), DVK import (#6247, #6262, #6251), Copy Assist from unprocessed audio (#6216), keyboard-operable status-bar indicators (#6267), the KPA1500 (#5905), CTR2 extensions and the AetherKnob (#6338), live PPM (#6082), and Icom COMP and the squelch scale (#6174, #6184). - Known issues whose GitHub issues are closed are removed. - The style guide now asks for US spelling, and every page follows it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ide. Principle VIII. docs.aethersdr.com serves Stable by default, and main is still at the v26.10.2 release commit, so the snapshot carries nothing unreleased. The Log Analyzer's two BNR rule links follow the renamed "grayed out" anchors. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Issue fit
No linked issue, and none is needed: GOVERNANCE.md:115 lists "Documentation additions and corrections" under What does NOT require an RFC, and Documentation is a designated domain area (GOVERNANCE.md:56). Reviewed against the PR's own stated intent instead.
The intent is largely delivered, and the factual work is unusually careful — I spot-checked the riskiest new numbers and strings against source at the branch base and they hold (details under "What I tried to break"). But the headline item — "Wrong menu paths" — is inverted. The four relocated actions are on Tools, not View. The old docs were correct, and this PR changes 18 lines across 9 pages × 2 trees (plus the style guide's own worked example) to a menu where the item does not appear.
Scope
| File group | Count | What it changes | Claimed in body? | Verdict |
|---|---|---|---|---|
docs/user/docs/*.md |
74 | US spelling, v26.10.2 content, menu paths, known-issue removals | Yes | In scope |
docs/user/versioned_docs/version-stable/*.md |
74 | Re-taken Stable snapshot | Yes (separate commit 6ae6bcd) |
In scope; byte-identical to docs/ (verified with diff -rq) |
docs/user/src/components/LogAnalyzer/rules.json |
1 | Two docs: deep-link anchors tracking the greyed→grayed heading renames (:729, :746) |
Yes | In scope, and the right fix — this was the only consumer of those anchors anywhere in the repo |
git diff --name-only main...HEAD is 149 files, all under docs/user/. No source, test, CI or CHANGELOG.md changes. "Docs only" self-certifies accurately. The two commits are cleanly separated (content, then snapshot), which is what makes the snapshot reviewable at all.
Blockers
1. docs/user/docs/aethermodem-packet-radio.md:21 (and 17 sibling lines) — AetherModem, Callsign Lookup, AetherMap and FreeDV Reporter are on Tools, not View. The PR reverses a correct path.
The body cites MainWindow_Menus.cpp:1336-1396 — those are the creation sites, and each is followed ~170 lines later by a removeAction/addAction pair that moves the action to &Tools (toolsMenu is created at :1066):
viewMenu->removeAction(packetDecoderAction); // :1519
toolsMenu->addAction(packetDecoderAction); // :1520
...
viewMenu->removeAction(callsignLookupAct); // :1569
viewMenu->removeAction(pskMapAction); // :1570
toolsMenu->addAction(callsignLookupAct); // :1571
toolsMenu->addAction(pskMapAction); // :1572
#ifdef HAVE_WEBSOCKETS
viewMenu->removeAction(fdvReporterAct); // :1574
toolsMenu->addAction(fdvReporterAct); // :1575
#endifI grepped all four variables across the whole file: nothing re-adds them to viewMenu after :1575, and the three non-FreeDV relocations are unconditional. So all four appear under Tools only. The "Build docs site" check can't catch this — the anchors and links are all valid, the menu name is just wrong.
The lines to revert to **Tools → …** (keeping this PR's correct … → ... normalization), each duplicated identically in versioned_docs/version-stable/:
docs/user/docs/aethermodem-packet-radio.md:21—Open it from **View → AetherModem...**docs/user/docs/d-star-thumbdv.md:54—Open **View → AetherModem...** and select the **D-STAR** tab.docs/user/docs/callsign-lookup.md:40—Open it from **View → Callsign Lookup...** or press **Ctrl+Shift+L**.docs/user/docs/psk-reporter-map.md:11—Open the map from **View → AetherMap...**docs/user/docs/before-you-transmit.md:31—The WSPR beacon in **View → AetherMap...**docs/user/docs/rade-digital-voice.md:43and:74—**View → FreeDV Reporter...**docs/user/docs/spothub.md:121—the **Message** field in **View → FreeDV Reporter...**docs/user/docs/docs-style-guide.md:97— the canonical example itself, which is how this propagates to the next author:
- **Use exact UI names in bold**, with menu paths written as **Tools → AetherMap...** and settings as **Settings → Radio Setup... → Peripherals**. Check them against `src/gui/MainWindow_Menus.cpp`.Two things to keep as-is, which I checked specifically so you don't over-revert:
View → Show live CW contacts(callsign-lookup.md:52,cw-decoder.md:70) is correct.m_liveCwContactsActionis created onviewMenuat:1424and has noremoveAction— it is genuinely View-only.Tools → Waveforms...is correct.waveformsActis constructed standalone at:311and only ever added at:1581(toolsMenu).
Since the two doc trees are byte-identical, fix docs/ and re-run snapshot_stable.py 26.10.2 rather than hand-editing version-stable. The "Wrong menu paths" bullet in the PR body needs the same correction, so the next audit doesn't re-derive the error from it.
Nits
Non-blocking, all in the "every page is converted" claim's blast radius:
docs/user/docs/cat-control.md:84— "re-centring" and "re-centers" in the same sentence: "does not keep re-centring the pan. A tune outside the span … re-centers or re-bands". Change the first tore-centering.docs/user/docs/docs-style-guide.md:56— "behaviour" survives in the page that now mandates US spelling: "A change to user-visible behaviour updates the matching page…". Line 97's rule sayscolor, behavior, center, so the file contradicts itself two paragraphs apart.docs/user/docs/generated/index.md:17andgenerated/tci-commands.md:3,16still read "recognises" / "behaviour". These are generated pages and must not be hand-edited — the prose lives intools/docs/gen_reference.py:1236-1240,:1255,:1279. That's also whygen_reference.py --checkpasses: the generator was untouched, so the pages match it. Either convert those strings (a one-line scope note in the body, since it's atools/change in a docs-only PR) or scope the claim to the hand-written pages.- The British→US flip in
docs-style-guide.md:97rewrites a project-wide convention. Canon doesn't require an RFC for it and you hold the Documentation domain, so this isn't a governance finding — but the body doesn't say who ruled on it, and the 149-file churn will conflict with every open docs PR. Worth one line naming the decision and whose it was. - Observation, not a finding: removing the
#5107(Apple Silicon ASR freeze),#4824and#5665entries is exactly whatdocs-style-guide.md:78requires — "When the issue closes, the entry is deleted." Flagging it only because those three were closed hours earlier without a demonstrated fix, so a user hitting the M-series ASR freeze now finds nothing in the guide. That's a question about the closures, not about this PR, and the PR is the compliant side of it.
What I tried to break
Findings below are reasoned from the source at the branch base, not reproduced at runtime — I have no build, no test run and no way to drive the GUI.
- Security audit (required). Ran the
security-auditsubagent over the four flagged files. All 17 CodeGuard findings are false positives, and 3 of the 4 files are not in this PR at all —git diff --name-only main...HEADis 149 files, every one underdocs/user/.Hl2Discovery.h:34,37andhl2_tx_passband_onset_test.cpp:50,68are Markdown backticks inside//comments with no shell anywhere (CMDI-BACKTICK ×4);rules.json:744,1003are JSON-escaped regex metacharacters (\\w+,\\.), not UNC paths;rules.json:88-89match the FlexF3000001/0xf3000001GUI-client registration status word, not a licence number or a hex IP;hl2_discovery_logging_test.cppuses192.168.8.20/169.254.1.5as socket-freeQHostAddressfixtures. All of those lines are byte-identical tomain. Credit: security-audit (CodeGuard). - Anchor and link integrity, the thing most likely to break on a rename pass. Wrote a slugifier and resolved every
](...#anchor)against the real headings in both trees: 0 broken, including the awkward double-hyphen cases (#nb--noise-blanker,#bnr-is-grayed-out-no-bnr-pack-for-your-gpu--yet). Then grepped the whole repo for the old anchor forms (greyed-out,confidence-colours,smartsdr-licence,contact-card-in-the-cw-decoder) — the only consumers outside the docs wererules.json, which this PR updates, and unrelated source comments.Build docs siteis green on6ae6bcd47, agreeing with my checker. - Did the spelling pass over-reach into code? Scanned for conversions inside code spans, settings keys, URLs, log strings and theme tokens. None.
SwrSweepLicenseConfirmedmoved only in prose around it; thecolor.*token family is untouched;rules.json's two edits aredocs:anchors only, not thematch/regexfields. - Are the new factual claims real, or plausible-sounding prose? Spot-checked the riskiest: ANAN AGC-T (
AnanBackend.h:154-158—kAgcKnobMinDb = -20.0,kAgcKnobDbPerStep = 1.4,clamp(level, 0, 100); so the documented −20…120 dB range and both anchor values check arithmetically: −20 + 1.4×71 = 79.4, −20 + 1.4×29 = 20.6); the NB2 fill names in exact order (VfoWidget.cpp:2221-2222); DVK status wording (DvkPanel.cpp:610,"On air"/"Previewing"); the live-contacts placeholder (CallsignLookupDialog.cpp:32). Thehermes-lite-2.mdreversal — a bookmark recalled into DIGU/DIGL now keeps AGC off — is backed byHl2Backend.cpp:7818andHl2Backend.h:106(#6142), so deleting the old upgrade note was right. - Snapshot fidelity, since a hand-touched snapshot is the classic way these diverge:
diff -rq docs versioned_docs/version-stableis empty. Faithful — which is also why the blocker has to be fixed in both trees. - Scope creep in a 149-file PR: no source, test, CI or
CHANGELOG.mdedits, and no commit message unrelated to the release. No socket tests added or removed. Both commits are signed. - What I could not check: whether the ~30 screenshots listed as stale are the complete set, and the IC-705 COMP readback — which the body already flags as inferred from the MK2 rather than verified. Fair disclosure on both.
Recommendation
Request changes — on the menu paths alone. Everything else here is good work: the anchor discipline, the rules.json follow-through, the separate snapshot commit, and the honest "found during the audit, not fixed here" section are all better than typical for a docs pass of this size, and the numbers I sampled survived checking against source. But a guide that sends users to the wrong menu is worse than the stale British spelling it replaced, and docs-style-guide.md:97 would teach the error forward.
Next step: revert the nine View → lines to Tools → in docs/, keep View → Show live CW contacts and Tools → Waveforms..., re-run snapshot_stable.py 26.10.2, and fix the body bullet. The three spelling nits are worth folding into the same push. Thanks for the depth of the audit — the inverted claim came from the one place in MainWindow_Menus.cpp that's genuinely booby-trapped, where the creation site and the final home are 170 lines apart.
🤖 aethersdr-agent · cost: $9.5961 · model: claude-opus-5
|
Cisco CodeGuard — static analysis of this PR (17 finding(s))
Automated static scan by Cisco DefenseClaw CodeGuard on the changed files. Advisory — some may be false positives; the review above verifies them. 🤖 aethersdr-agent · cost: $9.7299 · model: claude-opus-5 |
rfoust
left a comment
There was a problem hiding this comment.
The v26.10.2 documentation refresh is largely delivered, but the menu-path corrections introduce a user-facing regression: AetherModem, AetherMap, Callsign Lookup and FreeDV Reporter live under Tools, not View. The linked #5107 was closed as not planned without a demonstrated fix; removing its Known issues entry follows the docs rule and does not establish remediation.
Scope
| Group | Change | Claimed in body? | Verdict |
|---|---|---|---|
| 74 authored pages | Release coverage, US spelling, menu paths, known issues | Yes | In scope |
| 74 Stable pages | Regenerated snapshot | Yes | In scope; matches authored docs at PR head |
| Log Analyzer rules | Two renamed BNR anchors | Yes | In scope |
All 149 changed files are under docs/user/. The docs-only claim holds: no source, test, CI or CHANGELOG edits, and no socket tests added. The spelling convention is explicitly disclosed and this PR is submitted by the project maintainer; I found no scope or governance blocker.
Blocker
- [P2] Restore Tools for the four relocated actions — see the inline comment on aethermodem-packet-radio.md:21. MainWindow_Menus.cpp:1519–1575 removes these actions from View and adds them to Tools after their initial creation sites. Nine instructions across eight authored pages are incorrect, with identical copies in Stable. Correct the authored pages, regenerate Stable, and fix the PR body's menu-path claim. Keep View → Show live CW contacts and Tools → Waveforms... as they are.
Nits — non-blocking
- The US conversion remains incomplete: cat-control.md:84 has re-centring, docs-style-guide.md:56 has behaviour, and cw-decoder.md:68 has sceptically. Generated index/TCI pages still contain British wording; change the generator rather than editing its output, or narrow the conversion claim.
- DVK's start-controls sentence should clarify that the running operation's button remains enabled to stop it; see the inline comment on dvk-panel.md:55.
- IC-705 COMP readback and the stale screenshots remain unverified, as disclosed in the body.
Verification and attacks that held
- Reviewed head 6ae6bcd, release base f753dbf. Constructed a clean merge with current main aa0dd0e in an isolated scratch clone (tree e11ad7ca381163429afdfb4b0a8157c72f3f5856). GitHub's available merge ref aa9491e still has the release base, so the green CI predates current main's advancement.
- The combined result passed npm ci && npm run build, 707 Log Analyzer checks for 45 rules, gen_reference.py --check, and whitespace checks. PR-head authored docs and Stable are byte-identical.
- Mutation-checked the BNR links: restoring the two old greyed-out anchors produced exactly two checker failures; restored the correct file afterward.
- Independently checked ANAN gain arithmetic, DVK WAV conversion limits and output format, Windows firewall rule profiles, and the final menu relocation sites against source. Those sampled claims held apart from the menu paths. Actually removed Known issues entries are closed; open entries checked remain present. Both commits have GitHub-verified signatures.
- The native PR-head ARM64 build configured with RADE enabled, arm64 host/system processors and no RNNoise x86 sources, but stopped at iconutil: Invalid Iconset. The same icon step failed with identical base inputs. I do not attribute that failure to this docs PR.
- No GUI runtime proof: the native build did not complete, so no demo bridge session was launched and no live radio or TX was used. Menu and DVK findings are reasoned from the owning source, not presented as runtime observations. No model-invocable automated review pass was available; I performed the second manual pass and independently verified the existing bot's menu finding.
Recommendation: Request changes, for the menu paths. Correct the nine instructions, regenerate Stable, and update the body before merging; the spelling and DVK wording comments are non-blocking.
ten9876
left a comment
There was a problem hiding this comment.
Issue fit
Partially delivered. Recommendation: Request changes. The v26.10.2 refresh is in scope, but the menu-path corrections send users to the wrong menu. Linked #5107 was explicitly closed as not planned without demonstrating its exact freeze was fixed; removing its known-issue entry follows the docs rule and is not a code fix. Reviewed head 6ae6bcd47, release base f753dbfc4.
Scope
| Group | Change | Claimed? | Verdict |
|---|---|---|---|
| 74 authored pages | Release facts, paths, spelling, known issues | Yes | In scope |
| 74 Stable pages | Regenerated snapshot | Yes | In scope; byte-identical to authored tree |
| Log Analyzer rules | Two BNR anchors | Yes | In scope; mutation checked |
All 149 files are under docs/user/. No source, tests, CI, CHANGELOG, application defaults or protocol additions. Both commits have verified signatures and adjacent authored dates. No socket tests added or modified. No scope/governance blocker: documentation corrections are RFC-exempt, and the maintainer-authored spelling change is disclosed.
Blocker
- [P2] Restore Tools for the relocated actions —
docs/user/docs/aethermodem-packet-radio.md:21. Source creates these on View, then moves them to Tools (src/gui/MainWindow_Menus.cpp:1519-1575). Independently reproduced through the v26.10.2 demo bridge. The relevant excerpt frommenu listwas:
{"title":"Tools","actions":[{"enabled":true,"text":"AetherModem..."},{"enabled":true,"text":"Callsign Lookup..."},{"enabled":true,"text":"AetherMap..."},{"enabled":true,"text":"FreeDV Reporter..."}]}None appeared in View. Both menu open Tools and menu open View returned ok: true.
Drop-in replacement:
Open it from **Tools → AetherModem...**Correct the sibling paths at docs/user/docs/d-star-thumbdv.md:54, callsign-lookup.md:40, psk-reporter-map.md:11, before-you-transmit.md:31, rade-digital-voice.md:43,74, spothub.md:121, and docs-style-guide.md:97 (all under docs/user/docs/). Regenerate Stable and correct the body's menu claim. Keep View → Show live CW contacts and Tools → Waveforms..., both confirmed in source and runtime inventory.
Nits — non-blocking
docs/user/docs/audio-settings.md:50: MIDI does not always follow the title-bar active output.MainWindow_Controllers.cpp:2310-2338sends Flex MIDI Master Volume straight to line out even with PC Audio on, and refuses other radios with PC Audio off. The new MIDI page correctly describes the exceptions atdocs/user/docs/midi-controller-mapping.md:77. Remove MIDI from the generalization and link there. Source-derived; hardware-output cases were not reproduced on demo.docs/user/docs/dvk-panel.md:55: the running operation's REC/PLAY/PREV button stays enabled to stop it (DvkPanel.cpp:474-476); the blanket statement that start controls stay disabled misses this. Say other start controls are disabled. Source-derived: demo has no radio-side DVK.docs/user/docs/cat-control.md:84,docs-style-guide.md:56,cw-decoder.md:68:re-centring,behaviour,scepticallyremain despite the complete-US-conversion claim. Generated wording also remains British atdocs/user/docs/generated/tci-commands.md:16; update its generator or narrow the claim. Regenerate Stable after authored edits.
What I tried to break
- 707 Log Analyzer checks passed for 45 rules; eight generated reference pages are current; whitespace check passed; authored/Stable tree comparison is empty. Restoring the two old BNR anchors yielded exactly two failures and exit 1; restored the correct rules afterward. Meaningful coverage for the actual link edits.
- Independently checked ANAN gain arithmetic (0/100 -> -20/120 dB; defaults 71/29 -> 79.4/20.6 dB), unprocessed-ASR label and DVK WAV bounds against source. No application-code mutation is relevant to this docs-only PR. No model-invocable automated review pass was available; prior review findings used here were checked independently.
- Runtime: existing Linux v26.10.2 binary with build identity
f753dbfc4; this PR changes none of its application sources. Offscreen, isolated settings, explicit socket/tmp/aethersdr-pr6396-codex-final, PID 1696513,txAllowed: false. Connected only to family sim, serial DEMO-0001.get radioreturned modelAetherSDR Demo,connected: true,transmitting: false. Inspected Tools/View and closed the instance afterward; operator instance untouched. This is release-binary evidence, not a successful fresh PR-head build. - Fresh lean native build failed on
No space left on device; npm dependency extraction failed with quota error -122, so local docs build was not completed. Snapshot re-execution also failed on quota; tracked snapshot remained unchanged and already passed byte comparison. These are environment limitations, not PR regressions. Screenshots, IC-705 readback, OS-specific firewall/power behavior and hardware convergence were not reproduced. - CI is green on this head, but pull-request runs were created
2026-10-12T00:04:41Z; current main8b39af86was committed2026-10-12T17:39:31Z. Green describes an older merge result, not current main; strict updating is not enforced. No current-main validation claim.
Next step: correct the nine menu instructions, regenerate Stable and update the body. Address wording nits in the same docs pass. Verdict is Request changes. If posted as COMMENT, that is because the authenticated account is the PR author and GitHub refuses a self-request-changes event; it is not an approval.
…er are on Tools; finish the US pass. Principle VIII. The four actions are created on View and then moved to Tools (src/gui/MainWindow_Menus.cpp:1519-1520, 1569-1575), so the nine instructions that sent readers to View, including the style guide's own example, now say Tools. The remaining British spellings in hand-written pages are converted, and the TCI page prose in tools/docs/gen_reference.py is converted at the source, so the generated pages follow. audio-settings no longer lists MIDI among the controls that always follow the active output, and links to the MIDI page's exceptions. dvk-panel says the running operation's button stays enabled to stop it (DvkPanel::refreshTransport). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… Principle VIII. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Main's post-release docs are kept in US spelling. Stable is untouched. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…at to do, and Stable keeps #5996. Principle VIII. windows.md said a failed external request is logged once per session. NetworkDiagnostics::watch logs once per service, host, error and HTTP status, as support-and-logging.md already says. The ANAN-G2 upgrade note now says to lower AGC-T on an older bookmark and save it again, not only that it comes back louder. The IC-9700 waterfall-rate issue (#5996) was fixed by #6402, after the 26.10.2 tag, so Stable, which describes 26.10.2, keeps the entry. Next drops it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Every requested change is fixed at head 99ba460:
- Blocker, Tools paths: all nine instructions, the style guide's example included, say Tools (4de8c31). Stable is re-taken (c0cb293), and the body's menu bullet cites MainWindow_Menus.cpp:1519-1520 and :1569-1575. Runtime proof is
menu liston a build of 5092b98: Tools → AetherModem... / Callsign Lookup... / AetherMap... / FreeDV Reporter... / Waveforms..., and View → Show live CW contacts. - Spelling: re-centring, behaviour and sceptically are fixed, and the generator's TCI prose is converted at the source in gen_reference.py (4de8c31).
--checkis up to date. - DVK wording: the running operation's button stays enabled to stop it, per DvkPanel.cpp:474-476 (4de8c31).
Docs build, 707 Log Analyzer checks and diff --check all pass. Details are in each thread. Removing #5107, #4824 and #5665 was the maintainer's call, as the body says. The IC-705 COMP readback stays disclosed as unverified.
Summary
This brings the user guide (docs.aethersdr.com) up to date with everything in v26.10.2 and re-takes the Stable snapshot so the default site shows it. Docs only, apart from the TCI page prose in
tools/docs/gen_reference.py; no application source, test or CI changes.Every page was audited against the 106 PRs in the release. Every fact that was added or kept was checked against the source at
f753dbfc4, the v26.10.2 release commit, not taken from the PR bodies alone.What changed
MainWindow_Menus.cpp:1519-1520,:1569-1575); the style guide's example says Tools → AetherMap.......vs….aether.networkandaether.nvafxlog categories (feat(windows): firewall allow rules ship with the app, Network Diagnostics checks and fixes them, and failed external requests say why. Principle VIII. #6289, fix(logging): log the failures the docs Log Analyzer could not see. Principle VIII. #6308).volumefollow the active output (feat(anan): remember where the operator left the radio. Principle III. #6129, fix(audio): the title-bar mute reaches the radio's line out only where it has one. Principle VIII. #6260).gh issue view). As decided, this includes three closed today without a demonstrated fix: HL2: ASR (Copy Assist / Whisper) freezes application on M5 Apple #5107, TCI audio stream disconnecting after DAX toggle #4824 and DVK canceled callbacks and upload timer can corrupt replacement transfers #5665.docs-style-guide.mdasked for British spelling; it now asks for US, by the maintainer's decision, and every page is converted. The generated TCI pages are converted at their source, the prose strings intools/docs/gen_reference.py. Code spans, links and URLs were left alone. UI labels were checked against the source strings, and none of them are British. Two in-page anchors and two Log Analyzer rule anchors (#bnr-is-grayed-out-…) follow the renamed headings.snapshot_stable.py 26.10.2was re-run on the release tree with these corrections, beforemainwas merged in, so Stable carries no post-release docs.docs/also hasmain's post-release pages, in US spelling. Stable alone keeps the IC-9700 waterfall-rate entry (IC-9700 waterfall rate resets to 100 after an application restart #5996): fix(display): waterfall rate has a declared owner. Principle VIII. #6402 fixed it after the 26.10.2 tag, so 26.10.2 still has it. The PDF manual already attached to the v26.10.2 release keeps the tag's docs.Validation
npm ci && npm run buildindocs/user: success. This is the broken-link and broken-anchor check.node tools/docs/test_log_rules.mjs: 707 checks passed for 45 rules.python3 tools/docs/gen_reference.py --check: up to date (8 pages).git diff --check: clean.menu list:Tools → AetherModem...,Tools → Callsign Lookup...,Tools → AetherMap...,Tools → FreeDV Reporter...,Tools → Waveforms...,View → Show live CW contacts.Screenshots now out of date (not recaptured)
These need a recapture pass on the radio:
panadapter,main-window,first-session-*,multi-slice-two-slices,split-pair,tnf-markers,offscreen-vfo-indicator,pan-3d-stacked-trace,default-light-theme.aetherrx*,aethertx*,aethermodem-aprs,bnr-panel,connect-dialog,connect-by-ip-card,connect-icom-rows,connect-smartlink-card,rx-agc-calibration.title-bar(lowercase tab states, fix(ui): radio-tab state labels read in sentence case (#6280). Principle VIII. #6281);menu-help(feat(help): link the app to docs.aethersdr.com — Help menu, help pages, Support dialog and bridge tooltips. Principle VIII. #6294);display-panel(feat(gui): FFT Smooth and FFT De-comb shape the panadapter trace across frequency. Principle VIII. #6371);support-diagnostics-dialog;waveforms-dialogandtailnet-remote-access(show shim 0.4.0);about-window(v26.10.1);radio-setup-qrz.Found during the audit, not fixed here
TailnetShimDialog.cpp:628tells the user to "Connect remotely with Connect → Manual"; the real path is File → Connect to Radio... → Connect by IP.rtl-sdr.mdwrites "FM-N" and "CW-R", but the source strings areFMNandCWR. Left as is until someone confirms what the mode menu displays.🤖 Generated with Claude Code