wifi-densepose/rust-port/wifi-densepose-rs
Taylor Dawson 11a413d7ef feat(sensing-server): per-node CSI separation + dynamic classifier classes
Track each ESP32 node independently instead of merging all CSI frames
into a single buffer. This enables per-node feature computation,
spatial awareness, and proper multi-node visualization.

Per-node CSI separation:
- Add NodeState struct with per-node frame_history, RSSI history,
  features, classification, and smoothing state
- Compute features per-node using each node's own temporal history
- Add compute_fused_features() for backward-compatible aggregate
- Add smooth_and_classify_node() for per-node motion classification
- Add GET /api/v1/nodes endpoint for per-node health/status
- Add PerNodeFeatureInfo to WebSocket SensingUpdate messages
- Fix RSSI sign (use saturating_neg for correct negative dBm values)
- Node timeout: stale after 5s, removed after 30s

Dynamic classifier classes:
- Remove hardcoded CLASSES array and N_CLASSES constant
- Discover classes automatically from training data filenames
- Convention: train_<class>_<description>.jsonl
- Users can add any class by recording with appropriate filename
- Backward compatible with existing 4-class models via serde default
- AdaptiveModel now stores class_names as Vec<String>

UI changes:
- Dynamic node count display (was hardcoded "1 ESP32")
- Per-node status cards showing RSSI, variance, classification
- Color-coded node markers in 3D gaussian splat view
- Per-node RSSI history tracking in sensing service
- XSS-safe DOM element creation (no innerHTML with server data)

Addresses #237, #276, #51

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 15:37:18 -07:00
..
.claude-flow chore: add runtime artifacts to .gitignore and untrack them 2026-03-14 13:44:27 -04:00
crates feat(sensing-server): per-node CSI separation + dynamic classifier classes 2026-03-25 15:37:18 -07: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