Files
CubicSDR/docs/PLAN.md
T
2026-07-23 21:53:28 -04:00

2.6 KiB

CubicSDR Improvement Plans

Detailed implementation plans for each recommendation. See RECOMMENDATIONS.md for the full evaluation and summary.

Last Updated: 2026-07-23

Architecture Documentation

Design documents covering the system architecture are in docs/design/:

Document Description
Architecture Overview Directory layout, key classes, quick reference
Signal Flow Data path from SDR hardware to audio output
Threading Model Thread inventory, synchronization, lifecycle
Modem System Plugin architecture, factory pattern, available modems

Plans

Plan Risk Effort Dependencies
Fix .gitignore None 5 min None
Add Unit Tests Low 2-3 days None
Replace reinterpret_cast Type Punning Low 1 day None
Modernize CMake Low-Medium 1-2 days None
Split AppFrame.cpp Low 1 day None
Resolve Open TODOs Low 1 day split-appframe, replace-reinterpret-cast
Replace Raw new/delete with Smart Pointers Medium 1 day None
Remove MSVC C4996 Suppression Medium 1-2 days None
Add CI Test Execution Low 2 hours add-unit-tests
Update Vendored Dependencies High 3-5 days None

Execute in this order to minimize risk and satisfy dependencies:

  1. Fix .gitignore — Zero risk, immediate value, unblocks clean builds
  2. Add Unit Tests — Foundational; enables test-driven work on subsequent plans
  3. Add CI Test Execution — Locks in test infrastructure before code changes
  4. Replace reinterpret_cast — Low risk, standalone, improves correctness
  5. Modernize CMake — Low-medium risk, standalone, enables better build practices
  6. Split AppFrame.cpp — Low risk, standalone, reduces cognitive load for later work
  7. Resolve TODOs — Depends on AppFrame split and reinterpret_cast replacement
  8. Replace Raw new/delete — Medium risk; do after tests exist to catch regressions
  9. Remove C4996 Suppression — Medium risk; requires touching many files
  10. Update Vendored Dependencies — Highest risk; do last, requires extensive testing