Ruview/scripts
ruv deb561bf9c fix(rvcsi): scale-relative baseline-drift thresholds + ESP32 end-to-end validation
BaselineDriftDetector compared `mean_amplitude` against its EWMA baseline
with *absolute* thresholds (anomaly 1.0, drift 0.15). Fine for the synthetic
unit tests (amplitudes ~1.0), but raw ESP32 CSI is int8 I/Q with amplitudes
up to ~128, so window-to-window RMS distance is routinely 5-50 >> 1.0 and
AnomalyDetected fired on ~96% of windows (319/331 on a real node-1 capture).

Drift is now `||current - baseline||2 / ||baseline||2` (a fraction, with an
eps floor that falls back to absolute for a degenerate near-zero baseline),
so one tuning is valid across raw-int8 ESP32, int16-scaled Nexmon, and
baseline-subtracted streams. AnomalyDetected drops to 40/331 on the same
data; the existing detector tests still pass (their explicit configs are
valid relative thresholds too); added baseline_drift_is_scale_invariant_
no_anomaly_storm. rvcsi-events 18 -> 19 tests; 162 rvcsi tests, 0 failures,
clippy-clean.

Surfaced by an end-to-end test against real ESP32 CSI on COM7: the device
(ESP32-S3, node 1, ADR-018 firmware, WiFi "ruv.net" ch5 RSSI -39, CSI cb
only because nothing listens at .156). rvcsi has no ESP32 adapter yet, so a
7,000-frame node-1 recording was transcoded to .rvcsi via the new
scripts/esp32_jsonl_to_rvcsi.py (stand-in for `record --source esp32-jsonl`)
and run through `rvcsi inspect`/`replay`/`calibrate`/`events` end-to-end.

ADR-095 D13 and ADR-096 sections 2.1/5 updated; CHANGELOG entry added;
rvcsi-adapter-esp32 (live serial/UDP source) noted as a follow-up.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-12 22:19:15 -04:00
..
swarm_presets feat: QEMU ESP32-S3 testing platform + swarm configurator (ADR-061/062) (#260) 2026-03-14 13:39:51 -04:00
align-ground-truth.js feat: camera ground-truth training pipeline (ADR-079, #362) 2026-04-06 14:07:25 -04:00
apnea-detector.js feat: ADR-077 — 6 novel RF sensing applications 2026-04-03 08:50:48 -04:00
benchmark-model.py feat: GCloud GPU training pipeline + data collection + benchmarking 2026-04-02 22:04:57 -04:00
benchmark-rf-scan.js feat: ADR-073 multi-frequency mesh RF scanning 2026-04-03 00:18:29 -04:00
benchmark-ruvllm.js fix: ruvllm pipeline — 7 critical fixes, all metrics improved 2026-04-02 22:40:48 -04:00
benchmark-wiflow.js feat: ADR-072 WiFlow SOTA architecture — TCN + axial attention + pose decoder 2026-04-02 23:40:23 -04:00
check_fix_markers.py ci: fix-marker regression guard (witness-style) 2026-05-11 10:48:14 -04:00
check_health.py feat: QEMU ESP32-S3 testing platform + swarm configurator (ADR-061/062) (#260) 2026-03-14 13:39:51 -04:00
collect-ground-truth.py feat: camera ground-truth training pipeline (ADR-079, #362) 2026-04-06 14:07:25 -04:00
collect-training-data.py feat: GCloud GPU training pipeline + data collection + benchmarking 2026-04-02 22:04:57 -04:00
csi-graph-visualizer.js feat: ADR-075 min-cut person separation — fixes #348 2026-04-03 00:34:57 -04:00
csi-spectrogram.js feat: ADR-076 CNN spectrogram embeddings + graph transformer fusion 2026-04-03 00:36:38 -04:00
deep-scan.js feat: deep-scan.js — comprehensive RF intelligence report 2026-04-03 13:03:18 -04:00
device-fingerprint.js feat: ADR-078 — 5 multi-frequency mesh applications 2026-04-03 08:52:50 -04:00
esp32_jsonl_to_rvcsi.py fix(rvcsi): scale-relative baseline-drift thresholds + ESP32 end-to-end validation 2026-05-12 22:19:15 -04:00
esp32_wasm_test.py feat: add ADR-042 CHCI protocol, 24 new edge modules, README restructure 2026-03-03 11:35:57 -05:00
eval-wiflow.js feat: camera ground-truth training pipeline (ADR-079, #362) 2026-04-06 14:07:25 -04:00
fix-markers.json ci: fix-marker regression guard (witness-style) 2026-05-11 10:48:14 -04:00
gait-analyzer.js feat: ADR-077 — 6 novel RF sensing applications 2026-04-03 08:50:48 -04:00
gcloud-train.sh chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
generate-witness-bundle.sh chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
generate_nvs_matrix.py fix(firmware): fall detection, 4MB flash, QEMU CI (#263, #265) 2026-03-15 11:49:29 -04:00
inject_fault.py feat: QEMU ESP32-S3 testing platform + swarm configurator (ADR-061/062) (#260) 2026-03-14 13:39:51 -04:00
install-qemu.sh feat: QEMU ESP32-S3 testing platform + swarm configurator (ADR-061/062) (#260) 2026-03-14 13:39:51 -04:00
mac-mini-train.sh fix: remove hardcoded Tailscale IPs and usernames from public files 2026-04-06 14:39:21 -04:00
material-classifier.js feat: ADR-078 — 5 multi-frequency mesh applications 2026-04-03 08:52:50 -04:00
material-detector.js feat: ADR-077 — 6 novel RF sensing applications 2026-04-03 08:50:48 -04:00
mesh-graph-transformer.js feat: ADR-076 CNN spectrogram embeddings + graph transformer fusion 2026-04-03 00:36:38 -04:00
mincut-person-counter.js feat: ADR-075 min-cut person separation — fixes #348 2026-04-03 00:34:57 -04:00
mmwave_fusion_bridge.py feat: ADR-063/064 mmWave sensor fusion + multimodal ambient intelligence (#269) 2026-03-15 16:10:10 -04:00
passive-radar.js feat: ADR-078 — 5 multi-frequency mesh applications 2026-04-03 08:52:50 -04:00
provision.py fix(firmware): provision.py nvs import + partition config template 2026-03-10 08:40:47 -04:00
publish-huggingface.py feat: HuggingFace model publishing pipeline + model card 2026-04-02 22:04:16 -04:00
publish-huggingface.sh feat: HuggingFace model publishing pipeline + model card 2026-04-02 22:04:16 -04:00
qemu-chaos-test.sh feat: QEMU ESP32-S3 testing platform + swarm configurator (ADR-061/062) (#260) 2026-03-14 13:39:51 -04:00
qemu-cli.sh feat: QEMU ESP32-S3 testing platform + swarm configurator (ADR-061/062) (#260) 2026-03-14 13:39:51 -04:00
qemu-esp32s3-test.sh feat: QEMU ESP32-S3 testing platform + swarm configurator (ADR-061/062) (#260) 2026-03-14 13:39:51 -04:00
qemu-mesh-test.sh chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
qemu-snapshot-test.sh feat: QEMU ESP32-S3 testing platform + swarm configurator (ADR-061/062) (#260) 2026-03-14 13:39:51 -04:00
qemu_swarm.py chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
record-csi-udp.py feat: NaN-safe TCN + CSI UDP recorder for real ESP32 training (#362) 2026-04-06 17:18:41 -04:00
release-v0.5.4.sh feat: ADR-069 ESP32 CSI → Cognitum Seed RVF pipeline (v0.5.4-esp32) 2026-04-02 19:32:18 -04:00
rf-scan-multifreq.js feat: ADR-073 multi-frequency mesh RF scanning 2026-04-03 00:18:29 -04:00
rf-scan.js fix: add --bind flag for Windows firewall compatibility 2026-04-03 09:09:53 -04:00
rf-tomography.js feat: ADR-078 — 5 multi-frequency mesh applications 2026-04-03 08:52:50 -04:00
room-fingerprint.js feat: ADR-077 — 6 novel RF sensing applications 2026-04-03 08:50:48 -04:00
seed_csi_bridge.py fix: add --bind flag for Windows firewall compatibility 2026-04-03 09:09:53 -04:00
sleep-monitor.js feat: ADR-077 — 6 novel RF sensing applications 2026-04-03 08:50:48 -04:00
snn-csi-processor.js feat: ADR-074 spiking neural network for real-time CSI sensing 2026-04-03 00:34:31 -04:00
stress-monitor.js feat: ADR-077 — 6 novel RF sensing applications 2026-04-03 08:50:48 -04:00
swarm_health.py feat: QEMU ESP32-S3 testing platform + swarm configurator (ADR-061/062) (#260) 2026-03-14 13:39:51 -04:00
through-wall-detector.js feat: ADR-078 — 5 multi-frequency mesh applications 2026-04-03 08:52:50 -04:00
train-camera-free.js feat: camera-free 17-keypoint pose training (10 sensor signals) 2026-04-02 23:05:07 -04:00
train-ruvllm.js fix: skip triplet JSON export for large datasets (>100K) 2026-04-03 09:37:08 -04:00
train-wiflow-supervised.js feat: scalable WiFlow model with 4 size presets (#362) 2026-04-06 14:55:35 -04:00
train-wiflow.js feat: ADR-072 WiFlow SOTA architecture — TCN + axial attention + pose decoder 2026-04-02 23:40:23 -04:00
training-config-sweep.json feat: GCloud GPU training pipeline + data collection + benchmarking 2026-04-02 22:04:57 -04:00
validate_mesh_test.py feat: QEMU ESP32-S3 testing platform + swarm configurator (ADR-061/062) (#260) 2026-03-14 13:39:51 -04:00
validate_qemu_output.py ADR-081: Implement 5-layer adaptive CSI mesh firmware kernel (#404) 2026-04-20 10:38:23 -04:00
wiflow-model.js feat: ADR-072 WiFlow SOTA architecture — TCN + axial attention + pose decoder 2026-04-02 23:40:23 -04:00