Skip to content

Fix multisource and demod lifecycle issues - #59

Draft
ceane wants to merge 85 commits into
mainfrom
continuing-multisource-and-demod
Draft

Fix multisource and demod lifecycle issues#59
ceane wants to merge 85 commits into
mainfrom
continuing-multisource-and-demod

Conversation

@ceane

@ceane ceane commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • Fix multisource source-ownership and Mock Tx standby lifecycle behavior.
  • Fix frontend settings accessibility, duplicate sample-rate options, and test harness/typecheck issues.
  • Fix backend handoff proxy target refresh behavior and Rust standby test expectations.
  • Refresh dependency metadata without bypassing the repository's restricted npm remote-package policy.
  • Adding a start page
    • Screenshot 2026-08-16 at 20 06 10

Validation

  • Frontend focused Jest suites: passing
  • Shader tests: 43 passing
  • Rust library tests: 255 passing
  • TypeScript typecheck: passing

Notes

  • React act usage remains on the repository's existing approach.
  • npm remote fetching was not enabled or bypassed.

ceane and others added 21 commits July 21, 2026 18:05
- Fixing issue where pause was advancing by a frame or when reloading hitting pause didn't work
Unify spectrum state ownership, source lifecycle handling, and whole-channel controls across the frontend and backend.

Replace the Mock Tx generators with reusable complex-baseband synthesis, preserve signal shape and bandwidth contracts, normalize power consistently across frontend FFT and Tx IFFT sizes, and cover OFDM variance and integrated large-block power.

Harden SDR hotplug, source swapping, HackRF TX plumbing, and non-blocking RTL-SDR reader cleanup. Refresh integration, unit, build, and GPU-path tests to match the new ownership and streaming behavior.

Validation: cargo test --workspace --all-targets; rustfmt --check on the modified complex-baseband Rust modules.
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Device switches and transport warm-up were able to flash Server Down after a
prior live session. Gate unavailable presentation on true post-session control
loss only.

Co-authored-by: Cursor <cursoragent@cursor.com>
Brief socket closes during reconnect were clearing sources and active ids,
which thrashed placeholders and forced source reselection.

Co-authored-by: Cursor <cursoragent@cursor.com>
Adds a /settings route with a scroll-spy sidebar covering theme, SDR,
login, I/Q capture, and snapshot defaults, plus a new /faq landing page
and reusable link-card components for page footers.

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
Replaces the FAQ layout's local logo img and back link with the shared
Logo and AppBackButton components, drops the redundant "N-APT FAQ" title,
and adds a Lingo and Learn link to the FAQ home. Adds hideHeader support
to ThemeSection for embedding in the settings page.

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
Supports externally controlled open state, a section id for sidebar
scroll targets, and an embedded header-free rendering mode.

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
Adds lazy routes for /settings, /get-started, and a /faq landing page
replacing the old redirect.

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
- add source-owned multiplexed streaming, presentation control, and TX standby handling\n- expand Rust websocket/source lifecycle, SDR recovery, TX monitor, and stream manager behavior\n- reorganize frontend shell, routes, sidebar layouts, Learn Signals, FAQ content, and visualization flows\n- update Redux/WebSocket contracts, frame processing, frequency controls, WebGPU waterfall behavior, and capture policy\n- add focused frontend, integration, Rust, shader, rebuild-status, and streaming regression coverage\n- move Rust hot-reload helpers and document testing conventions and design decisions\n\nValidation: TypeScript typecheck passed; focused Rust and frontend checks were run. Existing full-suite failures and environment-blocked localhost tests remain documented in the task history.

@github-advanced-security github-advanced-security AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

Comment thread scripts/legal-app-server/index.mjs Fixed
ceane added 30 commits August 13, 2026 13:52
Record the no-logging constraints for USB and SDR I/O paths, including reader callbacks, cleanup, and transmission monitoring. Expand the project taste guidance with end-to-end transport debugging and source-preserving resume expectations so future changes validate the subscription and presentation layers as well as backend production.
Introduce the Preferences and Extras route with legacy redirects, explicit logout handling, and shared navigation cards. Rework the authenticated shell, onboarding pages, settings section metadata, source-inventory boundary, and agent capability declarations around the updated route contract, with regression coverage for auth, navigation, logout, and settings scrolling.
Keep mirrored negative-frequency ranges aligned with the shared baseband contract, update the live sample-rate and overlay paths, and preserve source-owned frames across RX, Tx preview, pause, and resume transitions. Harden Redux transport ownership and normalize cleared operational errors, while making the live integration harness deterministic on hosts with attached SDR hardware. Expand coverage for canvas rendering, source lifecycle, transport migration, overlays, tuning, and frame presentation.
Remove logger work from physical device I/O, reader callbacks, teardown, and Tx monitor hot paths so USB operations remain bounded and recoverable. Preserve backend errors through shared state, strengthen stream-manager lifecycle and acquisition ownership, and keep hotplug fallback/reconnect behavior explicit with expanded manual-path coverage.
Add the FFT/IFFT walkthrough math and graphic, capture-stitching guide, and the supporting 3D projection and antenna controls. Integrate the explainers into the learn and spectrum surfaces, add the WebUSB experiment route, and refine diagnostics, settings, frame-rate controls, signal synchronization, and article metadata. Add article channel-frequency synchronization with a pre-commit hook and regression coverage for the new UI and generated article contracts.
Apply the protocol ceiling consistently to frameRate and maxFrameRate inputs, cap the logical frame-rate constant at 100, and update derived settings expectations. Add websocket validation coverage for accepted and rejected boundary values.
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.

2 participants