tci: polish spot-click notification path (#3152). Principle I.#3170
Merged
Conversation
Three small follow-ups to #3145, all observability/documentation — zero behavior change: 1. src/gui/MainWindow.cpp — comment the asymmetric gating in the spotTriggered lambda. The TCI branch suppresses on lock / SWR sweep / missing slice because it must mirror AetherSDR's local- tune outcome (Log4OM cannot diverge from the radio's actual state). The radio branch delegates gating to the firmware via `spot trigger`. Without the inline note a future "DRY this up" pass could silently regress Log4OM behavior under lock or SWR sweep. 2. docs/architecture/tci-receivers.md — note that both `clicked_on_spot:` and `rx_clicked_on_spot:` are emitted unconditionally for every spot click. #3145 made dual emission the v2 protocol baseline (no client-capability negotiation), which matters for anyone writing a TCI protocol parser. 3. src/core/TciServer.cpp — qCWarning when notifySpotClicked() falls back to slices.first() because the caller passed a null slice. The MainWindow path always supplies one (guarded on `s`); only wireSpotModel's sliceForPanId(panId) can return nullptr. Today that silently mis-attributes rx_clicked_on_spot:'s `trx` field to slice 0 — invisible in single-slice testing, broken in multi-pan. The warning makes the edge case diagnosable in the field. Principle I (FlexLib is the protocol authority) cited because the dual `clicked_on_spot:` / `rx_clicked_on_spot:` emission and `trx` indexing rules trace back to ExpertSDR3/TCI v2 spec authority that #3145 codified — this commit documents that decision, it does not revisit it. Blast radius: risk_score=0.1845 on TciServer::notifySpotClicked seed (4 high-risk callers: MainWindow::MainWindow, MainWindow::wirePanadapter, SliceModel::sliceId, RadioModel::slices). Verified the high-risk callers (MainWindow paths) only reach the function via the non-null-slice arm and never trigger the new warning branch; the only path that reaches the fallback is the in-file wireSpotModel lambda when sliceForPanId returns nullptr. No behavior change for any caller. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
G6PWY-Chris
pushed a commit
to G6PWY-Chris/AetherSDR
that referenced
this pull request
Jun 22, 2026
…I. (aethersdr#3170) ## Summary Fixes aethersdr#3152 ### What was changed tci: polish spot-click notification path (aethersdr#3152). Principle I. ### Files modified - `docs/architecture/tci-receivers.md` - `src/core/TciServer.cpp` - `src/gui/MainWindow.cpp` ``` docs/architecture/tci-receivers.md | 6 ++++++ src/core/TciServer.cpp | 11 ++++++++++- src/gui/MainWindow.cpp | 12 ++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) ``` --- Generated by AetherClaude (automated agent for AetherSDR) --- <sub>🤖 aethersdr-agent · cost: $5.9475 · model: claude-opus-4-7</sub> Co-authored-by: aethersdr-agent[bot] <273844287+aethersdr-agent[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #3152
What was changed
tci: polish spot-click notification path (#3152). Principle I.
Files modified
docs/architecture/tci-receivers.mdsrc/core/TciServer.cppsrc/gui/MainWindow.cppGenerated by AetherClaude (automated agent for AetherSDR)
🤖 aethersdr-agent · cost: $5.9475 · model: claude-opus-4-7