feat: Add 12 ADRs for RuVector RVF integration and proof-of-reality #31

Merged
ruvnet merged 33 commits from claude/integrate-ruvector-rvf-mF1Hp into main 2026-02-28 22:43:59 +08:00

33 Commits

Author SHA1 Message Date
Claude
6449539eac chore: Update daemon state and metrics
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 14:43:34 +00:00
Claude
0f8bd5050f chore: Update daemon state
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 14:40:22 +00:00
Claude
91a3bdd88a docs: Add remote vital sign sensing modalities research (RF, radar, quantum)
Covers Wi-Fi CSI, mmWave/UWB radar, through-wall RF, rPPG, quantum radar,
and quantum biomedical instrumentation with cross-modality relevance to
WiFi-DensePose ADR-014 algorithms.

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 14:40:00 +00:00
Claude
792d5e201a docs: Add ADR-014, WiFi-Mat, and ESP32 parser to changelog
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 14:38:25 +00:00
Claude
f825cf7693 chore: Update daemon state
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 14:37:38 +00:00
Claude
7a13d46e13 chore: Update daemon state and metrics
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 14:34:49 +00:00
Claude
fcb93ccb2d feat: Implement ADR-014 SOTA signal processing (6 algorithms, 83 tests)
Add six research-grade signal processing algorithms to wifi-densepose-signal:

- Conjugate Multiplication: CFO/SFO cancellation via antenna ratio (SpotFi)
- Hampel Filter: Robust median/MAD outlier detection (50% contamination resistant)
- Fresnel Zone Model: Physics-based breathing detection from chest displacement
- CSI Spectrogram: STFT time-frequency generation with 4 window functions
- Subcarrier Selection: Variance-ratio ranking for top-K motion-sensitive subcarriers
- Body Velocity Profile: Domain-independent Doppler velocity mapping (Widar 3.0)

All 313 workspace tests pass, 0 failures. Updated README with new capabilities.

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 14:34:16 +00:00
Claude
63c3d0f9fc chore: Update daemon state and metrics
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 14:22:03 +00:00
Claude
b0dadcfabb chore: Update daemon state and metrics
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 14:18:40 +00:00
Claude
340bbe386b chore: Update daemon state and metrics
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 14:16:10 +00:00
Claude
6af0236fc7 feat: Complete ADR-001, ADR-009, ADR-012 implementations with zero mocks
ADR-001 (WiFi-Mat disaster response pipeline):
- Add EnsembleClassifier with weighted voting (breathing/heartbeat/movement)
- Wire EventStore into DisasterResponse with domain event emission
- Add scan control API endpoints (push CSI, scan control, pipeline status, domain events)
- Implement START triage protocol (Immediate/Delayed/Minor/Deceased/Unknown)
- Critical patterns (Agonal/Apnea) bypass confidence threshold for safety
- Add 6 deterministic integration tests with synthetic sinusoidal CSI data

ADR-009 (WASM signal pipeline):
- Add pushCsiData() with zero-crossing breathing rate extraction
- Add getPipelineConfig() for runtime configuration access
- Update TypeScript type definitions for new WASM exports

ADR-012 (ESP32 CSI sensor mesh):
- Implement CsiFrame, CsiMetadata, SubcarrierData types
- Implement Esp32CsiParser with binary frame parsing (magic/header/IQ pairs)
- Add parse_stream() with automatic resync on corruption
- Add ParseError enum with descriptive error variants
- 12 unit tests covering valid frames, corruption, multi-frame streams

All 275 workspace tests pass. No mocks, no stubs, no placeholders.

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 14:15:26 +00:00
Claude
a92d5dc9b0 chore: Update daemon state and metrics
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 13:49:32 +00:00
Claude
d9f6ee0374 chore: Update daemon state
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 13:43:22 +00:00
Claude
8583f3e3b5 feat: Add guided installer with hardware detection and RVF build profiles
- install.sh: 7-step interactive installer detecting system, toolchains,
  WiFi hardware (interfaces, ESP32 USB, Intel CSI debug), and recommending
  the best build profile (verify/python/rust/browser/iot/docker/field/full)
- Rust is the primary recommended runtime (810x faster than Python)
- Makefile: 15+ targets including make install, make check, make build-rust,
  make build-wasm, make bench, make run-api, make run-viz
- README: Updated installation section with Rust-primary ordering, removed
  mock testing references, added v2.2.0 changelog entry

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 13:41:47 +00:00
Claude
13035c0192 chore: Update daemon state
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 09:12:45 +00:00
Claude
cc82362c36 docs: Add SOTA research on WiFi sensing + RuVector with 20-year projection
Comprehensive research document covering:
- WiFi CSI pose estimation SOTA (CVPR 2024, ECCV 2024, IEEE IoT 2025)
- ESP32 sensing benchmarks (88-97% accuracy, 18.5m through-wall)
- HNSW vector search for signal fingerprinting
- ONNX Runtime WASM for edge inference
- NIST post-quantum cryptography (ML-DSA, SLH-DSA) for sensor mesh
- WiFi 7/8 evolution (320MHz channels, 3984 CSI tones, 16x16 MIMO)
- 20-year projection through 2046 with cited sources

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 09:12:02 +00:00
Claude
a9d7197a51 chore: Update daemon state
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 07:55:21 +00:00
Claude
a0f96a897f chore: Update daemon state and codebase map
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 07:05:03 +00:00
Claude
7afdad0723 security: Fix 10 vulnerabilities, remove 12 dead code instances
Critical fixes:
- Remove hardcoded admin/admin123 credentials from UserManager
- Enable JWT signature verification (was disabled for debugging)
- Redact secrets from /dev/config endpoint (was exposing os.environ)
- Remove hardcoded SSH admin/admin credentials from hardware service
- Add channel validation to prevent command injection in router interface

Rust fixes:
- Replace partial_cmp().unwrap() with .unwrap_or(Equal) to prevent
  NaN panics in 6 locations across core, signal, nn, mat crates
- Replace .expect()/.unwrap() with safe fallbacks in utils, csi_receiver
- Replace SystemTime unwrap with unwrap_or_default

Dead code removed:
- Duplicate imports (CORSMiddleware, os, Path, ABC, subprocess)
- Unused AdaptiveRateLimit/RateLimitStorage/RedisRateLimitStorage (~110 lines)
- Unused _log_authentication_event method
- Unused Confidence::new_unchecked in Rust
- Fix bare except: clause to except Exception:

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 07:04:22 +00:00
Claude
ea452ba5fc chore: Update daemon state
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 06:54:06 +00:00
Claude
45f8a0d3e7 docs: Add comprehensive build guide for all environments
Covers quick start verification, Python/Rust pipelines, Docker
deployment (dev/prod/swarm), ESP32 hardware setup, WASM edge builds,
ARM cross-compilation, and Three.js visualization.

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 06:53:37 +00:00
Claude
195f7150ac chore: Update claude-flow daemon state
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 06:50:13 +00:00
Claude
32c75c8eec perf: 5.7x Doppler extraction speedup, trust kill switch, fix NN benchmark
Optimization:
- Cache mean phase per frame in ring buffer for O(1) Doppler access
- Sliding window (last 64 frames) instead of full history traversal
- Doppler FFT: 253.9us -> 44.9us per frame (5.7x faster)
- Full pipeline: 719.2us -> 254.2us per frame (2.8x faster)

Trust kill switch:
- ./verify: one-command proof replay with SHA-256 hash verification
- Enhanced verify.py with source provenance, feature inspection, --audit
- Makefile with verify/verify-verbose/verify-audit targets
- New hash: 0b82bd45e836e5a99db0494cda7795832dda0bb0a88dac65a2bab0e949950ee0

Benchmark fix:
- NN inference_bench.rs uses MockBackend instead of calling forward()
  which now correctly errors when no weights are loaded

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 06:48:41 +00:00
Claude
6e0e539443 feat: Rust hardware adapters return errors instead of silent empty data, add changelog
- densepose.rs: forward() returns NnError when no weights loaded instead of zeros
- translator.rs: forward/encode/decode require loaded weights, error otherwise
- fusion.rs: remove rand_range() RNG, RSSI reads return empty with warning log
- hardware_adapter.rs: ESP32/Intel/Atheros/UDP/PCAP adapters return AdapterError
  explaining hardware not connected instead of silent empty readings
- csi_receiver.rs: PicoScenes parser returns error instead of empty amplitudes
- README.md: add v2.1.0 changelog with all recent changes

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 06:31:11 +00:00
Claude
a8ac309258 feat: Add Three.js visualization entry point and data processor
Add viz.html as the main entry point that loads Three.js from CDN and
orchestrates all visualization components (scene, body model, signal
viz, environment, HUD). Add data-processor.js that transforms API
WebSocket messages into geometry updates and provides demo mode with
pre-recorded pose cycling when the server is unavailable.

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 06:29:28 +00:00
Claude
dd382824fe feat: Add hardware requirement notice to README, additional Three.js viz components
Add prominent hardware requirements table at top of README documenting
the three paths to real CSI data (ESP32, research NIC, commodity WiFi).
Include remaining Three.js visualization components for dashboard.

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 06:26:10 +00:00
Claude
b3916386a3 feat: Add commodity sensing unit tests and fix feature extractor bugs
Add comprehensive test suite (36 tests) for the ADR-013 commodity sensing
module covering all components: RingBuffer, SimulatedCollector determinism,
feature extraction (time-domain stats, FFT spectral analysis, band power
isolation), CUSUM change-point detection, presence/motion classification,
and end-to-end CommodityBackend pipeline.

Fix feature_extractor.py: add missing _trim_to_window method that caused
AttributeError on the WifiSample extraction path, add post-trim sample
count guard, and handle constant-signal edge case in skewness/kurtosis
computation to prevent scipy RuntimeWarning.

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 06:24:10 +00:00
Claude
5210ef4baa fix: Update configure_csi_collection to use MockCSIGenerator from testing module
The configure_csi_collection method was still referencing the old
mock_data_generator dict directly instead of delegating to the
MockCSIGenerator instance from the testing module. This completes the
ADR-011 mock isolation by ensuring all mock CSI configuration flows
through v1/src/testing/mock_csi_generator.py.

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 06:21:53 +00:00
Claude
4b2e7bfecf feat: CI pipeline verification, 3D body model, auth fixes, requirements lock
- .github/workflows/verify-pipeline.yml: CI that verifies pipeline
  determinism and checks for np.random in production code
- ui/components/body-model.js: Three.js 3D human body model with
  24 DensePose body parts mapped to 3D geometry
- v1/requirements-lock.txt: Minimal pinned dependencies for verification
- v1/src/api/dependencies.py: Fix mock auth returns with proper errors
- v1/src/core/router_interface.py: Additional mock mode cleanup
- v1/src/services/pose_service.py: Further mock elimination in service

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 06:20:08 +00:00
Claude
2199174cac feat: Add commodity sensing, proof bundle, Three.js viz, mock isolation
Commodity Sensing Module (ADR-013):
- sensing/rssi_collector.py: Real Linux WiFi RSSI collection from
  /proc/net/wireless and iw commands, with SimulatedCollector for testing
- sensing/feature_extractor.py: FFT-based spectral analysis, CUSUM
  change-point detection, breathing/motion band power extraction
- sensing/classifier.py: Rule-based presence/motion classification
  with confidence scoring and multi-receiver agreement
- sensing/backend.py: Common SensingBackend protocol with honest
  capability reporting (PRESENCE + MOTION only for commodity)

Proof of Reality Bundle (ADR-011):
- data/proof/generate_reference_signal.py: Deterministic synthetic CSI
  with known breathing (0.3 Hz) and walking (1.2 Hz) signals
- data/proof/sample_csi_data.json: Generated reference signal
- data/proof/verify.py: One-command pipeline verification with SHA-256
- data/proof/expected_features.sha256: Expected output hash

Three.js Visualization:
- ui/components/scene.js: 3D scene setup with OrbitControls

Mock Isolation:
- testing/mock_pose_generator.py: Mock pose generation moved out of
  production pose_service.py
- services/pose_service.py: Cleaned mock paths

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 06:18:58 +00:00
Claude
e3f0c7a3fa fix: Eliminate remaining mock data paths, isolate test infrastructure
- core/router_interface.py: Replace placeholder _collect_real_csi_data()
  with explicit RuntimeError directing users to hardware setup docs
- hardware/router_interface.py: Replace np.random.rand() in
  _parse_csi_response() with RouterConnectionError requiring real parser
- testing/: New isolated module for mock data generation (moved out of
  production code paths per ADR-011)
- sensing/: Initialize commodity sensing module (ADR-013)

No production code path returns random data. Mock mode requires explicit
opt-in via WIFI_DENSEPOSE_MOCK=true environment variable.

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 06:16:45 +00:00
Claude
fd493e5103 fix: Replace mock/placeholder code with real implementations (ADR-011)
- csi_processor.py: Replace np.random.rand(10) Doppler placeholder with
  real temporal phase-difference FFT extraction from CSI history buffer.
  Returns zeros (not random) when insufficient history frames available.

- csi_extractor.py: Replace np.random.rand() fallbacks in ESP32 and
  Atheros parsers with proper data parsing (ESP32) and explicit error
  raising (Atheros). Add CSIExtractionError for clear failure reporting
  instead of silent random data substitution.

These are the two most critical mock eliminations identified in ADR-011.

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 06:15:55 +00:00
Claude
337dd9652f feat: Add 12 ADRs for RuVector RVF integration and proof-of-reality
Comprehensive architecture decision records for integrating ruvnet/ruvector
into wifi-densepose, covering:

- ADR-002: Master integration strategy (phased rollout, new crate design)
- ADR-003: RVF cognitive containers for CSI data persistence
- ADR-004: HNSW vector search replacing fixed-threshold detection
- ADR-005: SONA self-learning with LoRA + EWC++ for online adaptation
- ADR-006: GNN-enhanced pattern recognition with temporal modeling
- ADR-007: Post-quantum cryptography (ML-DSA-65 hybrid signatures)
- ADR-008: Raft consensus for multi-AP distributed coordination
- ADR-009: RVF WASM runtime for edge/browser/IoT deployment
- ADR-010: Witness chains for tamper-evident audit trails
- ADR-011: Mock elimination and proof-of-reality (fixes np.random.rand
           placeholders, ships CSI capture + SHA-256 verified pipeline)
- ADR-012: ESP32 CSI sensor mesh ($54 starter kit specification)
- ADR-013: Feature-level sensing on commodity gear (zero-cost RSSI path)

ADR-011 directly addresses the credibility gap by cataloging every
mock/placeholder in the Python codebase and specifying concrete fixes.

https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
2026-02-28 06:13:04 +00:00