wifi-densepose/rust-port/wifi-densepose-rs
rUv 6f23e89909
fix: deep review optimizations — firmware + server
* feat(signal): subcarrier importance weighting via mincut partition (Phase 1)

Adds subcarrier_importance_weights() to ruvector signal crate — converts
mincut partition into per-subcarrier float weights (>1.0 for sensitive,
0.5 for insensitive subcarriers).

Sensing server now uses weighted mean/variance in extract_features_from_frame
instead of treating all 56 subcarriers equally. This emphasizes body-motion-
sensitive subcarriers and reduces noise from static multipath.

Expected: ~26% reduction in keypoint jitter (±15cm → ±11cm RMS).

284 tests pass (191 trainer + 51 lib + 18 vital_signs + 16 dataset + 8 multi_node).

Co-Authored-By: claude-flow <ruv@ruv.net>

* fix(firmware): stack overflow risk + tick-rate independence (review findings)

Critical fixes from deep review:

1. **Stack overflow prevention**: Moved BPM scratch buffers (br_buf, hr_buf)
   from stack to static storage in both process_frame() and
   update_multi_person_vitals(). Combined stack was ~6.5-7.5 KB of 8 KB
   limit — now reduced by ~4 KB to safe margins.

2. **Tick-rate independence**: Post-batch yield now uses
   pdMS_TO_TICKS(20) with min-1 guard instead of raw vTaskDelay(2).
   Previously assumed 100Hz tick rate.

3. **EDGE_BATCH_LIMIT to header**: Moved from local const to
   edge_processing.h #define for configurability.

Firmware builds clean at 843 KB.

Co-Authored-By: claude-flow <ruv@ruv.net>

* fix(server): stale node eviction, remove unsafe pointer (review findings)

Critical fixes from deep review:

1. **Stale node eviction**: node_states HashMap now evicts nodes with no
   frame for >60 seconds, every 100 ticks. Prevents unbounded memory
   growth and stale smoothing data when nodes are replaced.

2. **Remove unsafe raw pointer**: Replaced the unsafe raw pointer to
   adaptive_model (used to break borrow checker deadlock with
   node_states) with a safe .clone() before the mutable borrow.
   AdaptiveModel derives Clone so this is a clean copy.

284 tests pass, zero failures.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-03-30 13:31:07 -04:00
..
.claude-flow chore: add runtime artifacts to .gitignore and untrack them 2026-03-14 13:44:27 -04:00
crates fix: deep review optimizations — firmware + server 2026-03-30 13:31:07 -04:00
data docs: update README with ADR-045–048, Observatory, adaptive classifier, AMOLED display 2026-03-05 10:20:48 -05:00
docs feat: Complete Rust port of WiFi-DensePose with modular crates 2026-01-13 03:11:16 +00:00
examples feat: Add wifi-Mat disaster detection enhancements 2026-01-13 18:23:03 +00:00
patches/ruvector-crv feat: ADR-033 CRV signal-line integration + ruvector-crv 6-stage pipeline 2026-03-01 22:21:59 -05:00
Cargo.lock chore: update Cargo.lock 2026-03-10 10:02:02 -04:00
Cargo.toml feat: complete Tauri desktop frontend with all pages and enhanced design (#198) 2026-03-08 23:31:18 -04:00