Skip to content

tci: polish spot-click notification path (#3152). Principle I.#3170

Merged
ten9876 merged 1 commit into
mainfrom
aetherclaude/issue-3152
May 26, 2026
Merged

tci: polish spot-click notification path (#3152). Principle I.#3170
ten9876 merged 1 commit into
mainfrom
aetherclaude/issue-3152

Conversation

@aethersdr-agent

Copy link
Copy Markdown
Contributor

Summary

Fixes #3152

What was changed

tci: polish spot-click notification path (#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)


🤖 aethersdr-agent · cost: $5.9475 · model: claude-opus-4-7

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>
@aethersdr-agent aethersdr-agent Bot requested review from a team as code owners May 25, 2026 23:18
@aethersdr-agent aethersdr-agent Bot enabled auto-merge (squash) May 25, 2026 23:18
@ten9876 ten9876 merged commit 09bc6ef into main May 26, 2026
5 checks passed
@ten9876 ten9876 deleted the aetherclaude/issue-3152 branch May 26, 2026 01:08
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>
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.

tci: follow-up polish for #3145 spot-click TCI notification

1 participant