Wideband autonomous SDR analysis engine forked from sdr-visual-suite
Nelze vybrat více než 25 témat
Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
Known Issues
This file tracks durable open engineering issues that remain after the 2026-03-25 audio-click fix.
Primary source:
docs/open-issues-report-2026-03-25.json
Status values used here:
High Priority
OI-02 — lastDiscrimIQ missing from dspStateSnapshot
- Status:
open
- Severity: High
- Category: state-continuity
- File:
internal/recorder/streamer.go
- Summary: FM discriminator bridging state is not preserved across
captureDSPState() / restoreDSPState(), so recording segment splits can lose the final IQ sample and create a micro-click at the segment boundary.
- Recommended fix: add
lastDiscrimIQ and lastDiscrimIQSet to dspStateSnapshot.
- Source:
docs/open-issues-report-2026-03-25.json (OI-02)
OI-03 — CPU oracle path not yet usable as validation baseline
- Status:
open
- Severity: High
- Category: architecture
- File:
cmd/sdrd/streaming_refactor.go, internal/demod/gpudemod/cpu_oracle.go
- Summary: the CPU oracle exists, but the production comparison/integration path is not trusted yet. That means GPU-path regressions still cannot be checked automatically with confidence.
- Recommended fix: repair oracle integration and restore GPU-vs-CPU validation flow.
- Source:
docs/open-issues-report-2026-03-25.json (OI-03)
OI-18 — planned C2-C validation gate never completed
- Status:
open
- Severity: Info
- Category: architecture
- File:
docs/audio-click-debug-notes-2026-03-24.md
- Summary: the final native streaming path works in practice, but the planned formal GPU-vs-oracle validation gate was never completed.
- Recommended fix: complete this together with OI-03.
- Source:
docs/open-issues-report-2026-03-25.json (OI-18)
Medium Priority
OI-14 — no regression test for allIQ immutability through spectrum/detection pipeline
- Status:
open
- Severity: Low
- Category: test-coverage
- File:
cmd/sdrd/pipeline_runtime.go
- Summary: the
IQBalance aliasing bug showed that shared-buffer mutation can slip in undetected. There is still no test asserting that allIQ remains unchanged after capture/detection-side processing.
- Recommended fix: add an integration test that compares
allIQ before and after the relevant pipeline stage.
- Source:
docs/open-issues-report-2026-03-25.json (OI-14)
OI-15 — very low test coverage for processSnippet audio pipeline
- Status:
open
- Severity: Low
- Category: test-coverage
- File:
internal/recorder/streamer.go
- Summary: the main live audio pipeline still lacks focused tests for boundary continuity, WFM mono/stereo behavior, resampling, and demod-path regressions.
- Recommended fix: add synthetic fixtures and continuity-oriented tests around repeated
processSnippet calls.
- Source:
docs/open-issues-report-2026-03-25.json (OI-15)
OI-07 — taps are recalculated every frame
- Status:
open
- Severity: Medium
- Category: correctness
- File:
internal/demod/gpudemod/stream_state.go
- Summary: FIR/polyphase taps are recomputed every frame even when parameters do not change, which is unnecessary work and makes it easier for host/GPU tap state to drift apart.
- Recommended fix: only rebuild taps when tap-relevant inputs actually change.
- Source:
docs/open-issues-report-2026-03-25.json (OI-07)
OI-17 — bandwidth changes can change Go-side taps without GPU tap re-upload
- Status:
open
- Severity: Low-Medium
- Category: correctness
- File:
internal/demod/gpudemod/streaming_gpu_native_prepare.go, internal/demod/gpudemod/stream_state.go
- Summary: after the config-hash fix, a bandwidth change may rebuild taps on the Go side while the GPU still keeps older uploaded taps unless a reset happens.
- Recommended fix: add a separate tap-change detection/re-upload path without forcing full extractor reset.
- Source:
docs/open-issues-report-2026-03-25.json (OI-17)
OI-09 — streaming feature flags are compile-time constants
- Status:
open
- Severity: Medium
- Category: architecture
- File:
cmd/sdrd/streaming_refactor.go, internal/demod/gpudemod/streaming_gpu_modes.go
- Summary: switching between production/oracle/native-host modes still requires code changes and rebuilds, which makes field debugging and A/B validation harder than necessary.
- Recommended fix: expose these as config or environment-driven switches.
- Source:
docs/open-issues-report-2026-03-25.json (OI-09)
OI-05 — feed channel is shallow and can drop frames under pressure
- Status:
open
- Severity: Medium
- Category: reliability
- File:
internal/recorder/streamer.go
- Summary:
feedCh has a buffer of only 2. Under heavier processing or debug load, dropped feed messages can create audible gaps.
- Recommended fix: increase channel depth or redesign backpressure behavior.
- Source:
docs/open-issues-report-2026-03-25.json (OI-05)
- Status:
deferred
- Severity: Medium
- Category: dead-code
- File:
cmd/sdrd/helpers.go
- Summary: the old overlap/trim path is now mainly fallback/legacy code and adds complexity plus old instrumentation noise.
- Recommended fix: isolate, simplify, or remove it once the production path and fallback strategy are formally settled.
- Source:
docs/open-issues-report-2026-03-25.json (OI-06)
OI-04 — telemetry history storage still uses append+copy trim
- Status:
deferred
- Severity: Medium
- Category: telemetry
- File:
internal/telemetry/telemetry.go
- Summary: heavy telemetry can still create avoidable allocation/copy pressure because history trimming is O(n) and happens under lock.
- Recommended fix: replace with a ring-buffer design.
- Source:
docs/open-issues-report-2026-03-25.json (OI-04)
Lower Priority / Nice-to-Have
- Status:
deferred
- Severity: High
- Category: data-integrity
- File:
cmd/sdrd/pipeline_runtime.go
- Summary: unlike the old
IQBalance bug this does not create a boundary artifact, but it does mean live extraction and recorded/replayed data are not semantically identical.
- Recommended fix: clarify the contract or move to immutable/copy-based handling.
- Source:
docs/open-issues-report-2026-03-25.json (OI-01)
OI-08 — WFM audio LPF could reject pilot more strongly
- Status:
deferred
- Severity: Medium
- Category: audio-quality
- File:
internal/recorder/streamer.go
- Summary: the current 15 kHz LPF is good enough functionally, but a steeper filter could further improve pilot suppression.
- Recommended fix: more taps or a dedicated pilot notch.
- Source:
docs/open-issues-report-2026-03-25.json (OI-08)
OI-10 — demod.wav debug dumps can clip and mislead analysis
- Status:
deferred
- Severity: Medium
- Category: correctness
- File:
internal/recorder/streamer.go, internal/recorder/wavwriter.go
- Summary: raw discriminator output can exceed the WAV writer's
[-1,+1] clip range, so debug dumps can show artifacts that are not part of the real downstream audio path.
- Recommended fix: scale by
1/pi before dumping or use float WAV output.
- Source:
docs/open-issues-report-2026-03-25.json (OI-10)
OI-11 — browser AudioContext resync still causes audible micro-gaps
- Status:
deferred
- Severity: Low
- Category: reliability
- File:
web/app.js
- Summary: underrun recovery is softened with a fade-in, but repeated resyncs still create audible stutter on the browser side.
- Recommended fix: prefer the AudioWorklet/ring-player path wherever possible.
- Source:
docs/open-issues-report-2026-03-25.json (OI-11)
OI-12 — tiny per-frame tail copy for boundary telemetry
- Status:
info
- Severity: Low
- Category: performance
- File:
cmd/sdrd/pipeline_runtime.go
- Summary: the last-32-sample copy is trivial and not urgent, but it is one more small allocation in a path that already has several.
- Recommended fix: none needed unless a broader allocation cleanup happens.
- Source:
docs/open-issues-report-2026-03-25.json (OI-12)
OI-13 — temporary patch artifacts should not live in the repo long-term
- Status:
deferred
- Severity: Low
- Category: dead-code
- File:
patches/*
- Summary: reviewer/debug patch artifacts were useful during the investigation, but they should either be removed or archived under docs rather than kept as loose patch files.
- Recommended fix: delete or archive them once no longer needed.
- Source:
docs/open-issues-report-2026-03-25.json (OI-13)
OI-16 — config.autosave.yaml can re-enable unwanted debug telemetry after restart
- Status:
deferred
- Severity: Low
- Category: config
- File:
config.autosave.yaml
- Summary: autosave can silently restore debug-heavy telemetry settings after restart and distort future runs.
- Recommended fix: stop persisting debug telemetry knobs to autosave or explicitly ignore them.
- Source:
docs/open-issues-report-2026-03-25.json (OI-16)
Suggested next execution order
- Fix OI-02 (
lastDiscrimIQ snapshot/restore)
- Repair OI-03 and close OI-18 (oracle + formal validation path)
- Add OI-14 and OI-15 regression tests
- Consolidate OI-07 and OI-17 (tap rebuild / tap upload logic)
- Expose OI-09 feature flags via config or env
- Revisit OI-05 / OI-06 / OI-04 when doing reliability/cleanup work