Skip to content

fix(audio): rename TCI TX inputFrames48k/input48k= soak telemetry (#3914). Principle I.#3924

Merged
aethersdr-agent[bot] merged 1 commit into
mainfrom
aetherclaude/issue-3914
Jun 30, 2026
Merged

fix(audio): rename TCI TX inputFrames48k/input48k= soak telemetry (#3914). Principle I.#3924
aethersdr-agent[bot] merged 1 commit into
mainfrom
aetherclaude/issue-3914

Conversation

@aethersdr-agent

Copy link
Copy Markdown
Contributor

Summary

Fixes #3914

What was changed

fix(audio): rename TCI TX inputFrames48k/input48k= soak telemetry (#3914). Principle I.

Files modified

  • src/core/TciServer.cpp
 src/core/TciServer.cpp | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

Generated by AetherClaude (automated agent for AetherSDR)


🤖 aethersdr-agent · cost: $1.3357 · model: claude-opus-4-8

). Principle I.

#3892 switched the TCI TX resampler from a hardcoded 48 kHz source rate to
each frame's client-declared rate (hdr.sampleRate) but left the `48k` naming
in place. The per-session counter now accumulates source-rate input frames,
so for a client negotiating 8/12/24 kHz the `input48k=N` soak diagnostic
implies the wrong wall-clock duration (a 24 kHz client reads ~2x its real
input duration). Pure telemetry-label fix — no audio or timing impact.

- inputFrames48k -> inputFramesSrcRate (decl + 3 layout branches + increment)
- soak log field `input48k=` -> `inputFramesSrc=`

m_txInputFrames is diagnostic-only: consumers are the reset in startTxChrono,
the increment here, and the soak line. Nothing in the audio/timing path reads
it. The 48k-anchored sibling fields (requested48k=, effective48k=, output24k=)
are genuinely correct and left unchanged. Principle I: the soak diagnostic must
label what it actually counts (source-rate frames), not a stale 48k assumption.

Blast radius: not applicable — change is a function-local variable rename plus a
log-string literal inside one member function; touches no signature, member decl,
header, or public symbol. The PreToolUse hook's risk_score=0.180 / 11 high-risk
figure is TciServer.cpp's ambient file-level connectivity, not this diff; none of
the flagged callers can reference a stack-local variable.

Refs #3892, #3306.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

@aethersdr-agent aethersdr-agent Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Reviewed the diff — this is a clean, correct rename and the change looks good.

What's right:

  • All six sites are updated consistently: the local declaration, all three layout branches (duplicated-stereo / mono / explicit-stereo), the m_txInputFrames accumulator, and the soak log field. No site left on the old 48k name, so the build stays consistent.
  • m_txInputFrames is diagnostic-only (reset in the chrono start, incremented here, emitted in logTxAudioSummary), so this is a pure telemetry-label fix with no audio/timing impact — correctly motivated by #3892 having switched the resampler to the client-declared rate while leaving the 48k naming behind.
  • The sibling fields left untouched (requested48k=, output24k=, effective48k=) are genuinely still rate-correct, so the narrow scope is the right call.
  • The added inline comment makes the rate-relative semantics explicit, which is the whole point of the rename.

No conventions, null-safety, resource, or boundary concerns — it's a contained identifier rename.

One heads-up for the maintainer: PR #3919 (@jensenpat) targets the same issue #3914 with the identical rename (inputFrames48kinputFramesSrcRate, input48k=inputFramesSrc=). These two are duplicates — only one should land, and they'll conflict otherwise. Worth coordinating which to merge before this goes in via auto-merge.

Thanks for the tidy, well-explained change!


🤖 aethersdr-agent · cost: $4.0980 · model: claude-opus-4-8

@jensenpat jensenpat 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.

var rename

@aethersdr-agent aethersdr-agent Bot merged commit 6566069 into main Jun 30, 2026
6 checks passed
@aethersdr-agent aethersdr-agent Bot deleted the aetherclaude/issue-3914 branch June 30, 2026 19:16
ten9876 added a commit that referenced this pull request Jul 2, 2026
#3961)

## Release documentation prep for **v26.7.1** (2026-07-02)

29 commits since v26.6.5. Docs-only + version bump — no code behavior
change.

### Version bump 26.6.5 → 26.7.1
The three canonical locations (per `AGENTS.md`):
- `CMakeLists.txt:2` — `project(AetherSDR VERSION 26.7.1)` →
`AETHERSDR_VERSION` (the app's version string)
- `README.md` — Current version line
- `AGENTS.md` — Current version line

### `CHANGELOG.md`
Promoted `[Unreleased]` → **`## [v26.7.1] — 2026-07-02`** in house style
(v-prefix, em-dash, "N commits since…" opener + headline), authored from
all merged PRs and categorized:
- **Added:** 3D stacked-trace spectrum (#3899), 3D dBm scale (#3937),
in-process NVIDIA BNR + AFX download-on-demand (#3902), TX meter
mouse-over readouts (#3936), SWR manual sweep range (#3885), CW sidetone
capture (#3895), KiwiSDR metadata scaffolding (#3898), bridge verbs
(#3920)
- **Changed:** BNR container/NIM backend removed, 60 fps + per-pixel GPU
FFT trace (#3958), FlexLib-sourced model capabilities (#3954/#2177), RX
speaker-latency cut (#3897), Display pane sections (#3935)
- **Fixed:** #3922, #3926, #3941, #3940, #3942, #3921, #3903, #3892,
#3924, #3891, #3890, #3900, #3947
- Fresh empty `[Unreleased]` restored above the release block.
Internal/CI/docs/self-fix PRs (#3931/#3916/#3934/#3929) omitted per
house style.

### `ROADMAP.md`
- Cycle header → "post-v26.7.1"
- NVIDIA BNR removed from **In flight** (shipped this cycle)
- Five v26.7.1 highlights prepended to **Recently shipped**

### `README.md`
- Highlights: GPU spectrum bullet now notes the **per-pixel FFT trace at
up to 60 fps** and the **3D stacked-trace** spectrum mode

### Reviewer notes
- Touches protected paths (`*.md` + `AGENTS.md` Tier-1 +
`CMakeLists.txt`) — needs `@aethersdr/infrastructure` sign-off.
- Tagging `v26.7.1` and cutting the release build are **not** part of
this PR (docs prep only).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.8 <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 TX: rename inputFrames48k / input48k= soak telemetry (mislabeled after #3892)

1 participant