Rewrites CHANGELOG.md with detailed entries for every significant feature, fix, and security patch across all three major versions: - v3.0.0: AETHER contrastive embedding model (ADR-024), Docker Hub images, UI port auto-detection fix, Mermaid architecture diagrams, 33 use cases across 4 verticals - v2.0.0: Rust sensing server, DensePose training pipeline (ADR-023), RuVector v2.0.4 integration (ADR-016/017), ESP32-S3 firmware (ADR-018), SOTA signal processing (ADR-014), vital sign detection (ADR-021), WiFi-Mat disaster module, 7 security patches, Python sensing pipeline, Three.js visualization - v1.1.0: Python CSI system, API services, UI dark mode - v1.0.0: Initial release with core pose estimation All entries reference specific commit hashes for traceability. Co-Authored-By: claude-flow <ruv@ruv.net>
13 KiB
13 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
- macOS CoreWLAN WiFi sensing adapter with user guide (
a6382fb)
3.0.0 - 2026-03-01
Major release: AETHER contrastive embedding model, Docker Hub images, and comprehensive UI overhaul.
Added — AETHER Contrastive Embedding Model (ADR-024)
- Project AETHER — self-supervised contrastive learning for WiFi CSI fingerprinting, similarity search, and anomaly detection (
9bbe956) embedding.rsmodule:ProjectionHead,InfoNceLoss,CsiAugmenter,FingerprintIndex,PoseEncoder,EmbeddingExtractor(909 lines, zero external ML dependencies)- SimCLR-style pretraining with 5 physically-motivated augmentations (temporal jitter, subcarrier masking, Gaussian noise, phase rotation, amplitude scaling)
- CLI flags:
--pretrain,--pretrain-epochs,--embed,--build-index <type> - Four HNSW-compatible fingerprint index types:
env_fingerprint,activity_pattern,temporal_baseline,person_track - Cross-modal
PoseEncoderfor WiFi-to-camera embedding alignment - VICReg regularization for embedding collapse prevention
- 53K total parameters (55 KB at INT8) — fits on ESP32
Added — Docker & Deployment
- Published Docker Hub images:
ruvnet/wifi-densepose:latest(132 MB Rust) andruvnet/wifi-densepose:python(569 MB) (add9f19) - Multi-stage Dockerfile for Rust sensing server with RuVector crates
docker-compose.ymlorchestrating both Rust and Python services- RVF model export via
--export-rvfand load via--load-rvfCLI flags
Added — Documentation
- 33 use cases across 4 vertical tiers: Everyday, Specialized, Robotics & Industrial, Extreme (
0afd9c5) - "Why WiFi Wins" comparison table (WiFi vs camera vs LIDAR vs wearable vs PIR)
- Mermaid architecture diagrams: end-to-end pipeline, signal processing detail, deployment topology (
50f0fc9) - Models & Training section with RuVector crate links (GitHub + crates.io), SONA component table (
965a1cc) - RVF container section with deployment targets table (ESP32 0.7 MB to server 50+ MB)
- Collapsible README sections for improved navigation (
478d964,99ec980,0ebd6be) - Installation and Quick Start moved above Table of Contents (
50acbf7) - CSI hardware requirement notice (
528b394)
Fixed
- UI auto-detects server port from page origin — no more hardcoded
localhost:8080; works on any port (Docker :3000, native :8080, custom) (3b72f35, closes #55) - Docker port mismatch — server now binds 3000/3001 inside container as documented (
44b9c30) - Added
/ws/sensingWebSocket route to the HTTP server so UI only needs one port - Fixed README API endpoint references:
/api/v1/health→/health,/api/v1/sensing→/api/v1/sensing/latest - Multi-person tracking limit corrected: configurable default 10, no hard software cap (
e2ce250)
2.0.0 - 2026-02-28
Major release: complete Rust sensing server, full DensePose training pipeline, RuVector v2.0.4 integration, ESP32-S3 firmware, and 6 security hardening patches.
Added — Rust Sensing Server
- Full DensePose-compatible REST API served by Axum (
d956c30)GET /health— server healthGET /api/v1/sensing/latest— live CSI sensing dataGET /api/v1/vital-signs— breathing rate (6-30 BPM) and heartbeat (40-120 BPM)GET /api/v1/pose/current— 17 COCO keypoints derived from WiFi signal fieldGET /api/v1/info— server build and feature infoGET /api/v1/model/info— RVF model container metadataws://host/ws/sensing— real-time WebSocket stream
- Three data sources:
--source esp32(UDP CSI),--source windows(netsh RSSI),--source simulated(deterministic reference) - Auto-detection: server probes ESP32 UDP and Windows WiFi, falls back to simulated
- Three.js visualization UI with 3D body skeleton, signal heatmap, phase plot, Doppler bars, vital signs panel
- Static UI serving via
--ui-pathflag - Throughput: 9,520–11,665 frames/sec (release build)
Added — ADR-021: Vital Sign Detection
VitalSignDetectorwith breathing (6-30 BPM) and heartbeat (40-120 BPM) extraction from CSI fluctuations (1192de9)- FFT-based spectral analysis with configurable band-pass filters
- Confidence scoring based on spectral peak prominence
- REST endpoint
/api/v1/vital-signswith real-time JSON output
Added — ADR-023: DensePose Training Pipeline (Phases 1-8)
wifi-densepose-traincrate with complete 8-phase pipeline (fc409df,ec98e40,fce1271)- Phase 1:
DataPipelinewith MM-Fi and Wi-Pose dataset loaders - Phase 2:
CsiToPoseTransformer— 4-head cross-attention + 2-layer GCN on COCO skeleton - Phase 3: 6-term composite loss (MSE, bone length, symmetry, joint angle, temporal, confidence)
- Phase 4:
DynamicPersonMatchervia ruvector-mincut (O(n^1.5 log n) Hungarian assignment) - Phase 5:
SonaAdapter— MicroLoRA rank-4 with EWC++ memory preservation - Phase 6:
SparseInference— progressive 3-layer model loading (A: essential, B: refinement, C: full) - Phase 7:
RvfContainer— single-file model packaging with segment-based binary format - Phase 8: End-to-end training with cosine-annealing LR, early stopping, checkpoint saving
- Phase 1:
- CLI:
--train,--dataset,--epochs,--save-rvf,--load-rvf,--export-rvf - Benchmark: ~11,665 fps inference, 229 tests passing
Added — ADR-016: RuVector Training Integration (all 5 crates)
ruvector-mincut→DynamicPersonMatcherinmetrics.rs+ subcarrier selection (81ad09d,a7dd31c)ruvector-attn-mincut→ antenna attention inmodel.rs+ noise-gated spectrogramruvector-temporal-tensor→CompressedCsiBufferindataset.rs+ compressed breathing/heartbeatruvector-solver→ sparse subcarrier interpolation (114→56) + Fresnel triangulationruvector-attention→ spatial attention inmodel.rs+ attention-weighted BVP- Vendored all 11 RuVector crates under
vendor/ruvector/(d803bfe)
Added — ADR-017: RuVector Signal & MAT Integration (7 integration points)
gate_spectrogram()— attention-gated noise suppression (18170d7)attention_weighted_bvp()— sensitivity-weighted velocity profilesmincut_subcarrier_partition()— dynamic sensitive/insensitive subcarrier splitsolve_fresnel_geometry()— TX-body-RX distance estimationCompressedBreathingBuffer+CompressedHeartbeatSpectrogramBreathingDetector+HeartbeatDetector(MAT crate, real FFT + micro-Doppler)- Feature-gated behind
cfg(feature = "ruvector")(ab2453e)
Added — ADR-018: ESP32-S3 Firmware & Live CSI Pipeline
- ESP32-S3 firmware with FreeRTOS CSI extraction (
92a5182) - ADR-018 binary frame format:
[0xAD, 0x18, len_hi, len_lo, payload] - Rust
Esp32Aggregatorreceiving UDP frames on port 5005 bridge.rsconverting I/Q pairs to amplitude/phase vectors- NVS provisioning for WiFi credentials
- Pre-built binary quick start documentation (
696a726)
Added — ADR-014: SOTA Signal Processing
- 6 algorithms, 83 tests (
fcb93cc)- Hampel filter (median + MAD, resistant to 50% contamination)
- Conjugate multiplication (reference-antenna ratio, cancels common-mode noise)
- Phase sanitization (unwrap + linear detrend, removes CFO/SFO)
- Fresnel zone geometry (TX-body-RX distance from first-principles physics)
- Body Velocity Profile (micro-Doppler extraction, 5.7x speedup)
- Attention-gated spectrogram (learned noise suppression)
Added — ADR-015: Public Dataset Training Strategy
- MM-Fi and Wi-Pose dataset specifications with download links (
4babb32,5dc2f66) - Verified dataset dimensions, sampling rates, and annotation formats
- Cross-dataset evaluation protocol
Added — WiFi-Mat Disaster Detection Module
- Multi-AP triangulation for through-wall survivor detection (
a17b630,6b20ff0) - Triage classification (breathing, heartbeat, motion)
- Domain events:
survivor_detected,survivor_updated,alert_created - WebSocket broadcast at
/ws/mat/stream
Added — Infrastructure
- Guided 7-step interactive installer with 8 hardware profiles (
8583f3e) - Comprehensive build guide for Linux, macOS, Windows, Docker, ESP32 (
45f8a0d) - 12 Architecture Decision Records (ADR-001 through ADR-012) (
337dd96)
Added — UI & Visualization
- Sensing-only UI mode with Gaussian splat visualization (
b7e0f07) - Three.js 3D body model (17 joints, 16 limbs) with signal-viz components
- Tabs: Dashboard, Hardware, Live Demo, Sensing, Architecture, Performance, Applications
- WebSocket client with automatic reconnection and exponential backoff
Added — Rust Signal Processing Crate
- Complete Rust port of WiFi-DensePose with modular workspace (
6ed69a3)wifi-densepose-signal— CSI processing, phase sanitization, feature extractionwifi-densepose-core— shared types and configurationwifi-densepose-nn— neural network inference (DensePose head, RCNN)wifi-densepose-hardware— ESP32 aggregator, hardware interfaceswifi-densepose-config— configuration management
- Comprehensive benchmarks and validation tests (
3ccb301)
Added — Python Sensing Pipeline
WindowsWifiCollector— RSSI collection vianetsh wlan show networksRssiFeatureExtractor— variance, spectral bands (motion 0.5-4 Hz, breathing 0.1-0.5 Hz), change pointsPresenceClassifier— rule-based 3-state classification (ABSENT / PRESENT_STILL / ACTIVE)- Cross-receiver agreement scoring for multi-AP confidence boosting
- WebSocket sensing server (
ws_server.py) broadcasting JSON at 2 Hz - Deterministic CSI proof bundles for reproducible verification (
v1/data/proof/) - Commodity sensing unit tests (
b391638)
Changed
- Rust hardware adapters now return explicit errors instead of silent empty data (
6e0e539)
Fixed
- Review fixes for end-to-end training pipeline (
45f0304) - Dockerfile paths updated from
src/tov1/src/(7872987) - IoT profile installer instructions updated for aggregator CLI (
f460097) process.envreference removed from browser ES module (e320bc9)
Performance
- 5.7x Doppler extraction speedup via optimized FFT windowing (
32c75c8) - Single 2.1 MB static binary, zero Python dependencies for Rust server
Security
- Fix SQL injection in status command and migrations (
f9d125d) - Fix XSS vulnerabilities in UI components (
5db55fd) - Fix command injection in statusline.cjs (
4cb01fd) - Fix path traversal vulnerabilities (
896c4fc) - Fix insecure WebSocket connections — enforce wss:// on non-localhost (
ac094d4) - Fix GitHub Actions shell injection (
ab2e7b4) - Fix 10 additional vulnerabilities, remove 12 dead code instances (
7afdad0)
1.1.0 - 2025-06-07
Added
- Complete Python WiFi-DensePose system with CSI data extraction and router interface
- CSI processing and phase sanitization modules
- Batch processing for CSI data in
CSIProcessorandPhaseSanitizer - Hardware, pose, and stream services for WiFi-DensePose API
- Comprehensive CSS styles for UI components and dark mode support
- API and Deployment documentation
Fixed
- Badge links for PyPI and Docker in README
- Async engine creation poolclass specification
1.0.0 - 2024-12-01
Added
- Initial release of WiFi-DensePose
- Real-time WiFi-based human pose estimation using Channel State Information (CSI)
- DensePose neural network integration for body surface mapping
- RESTful API with comprehensive endpoint coverage
- WebSocket streaming for real-time pose data
- Multi-person tracking with configurable capacity (default 10, up to 50+)
- Fall detection and activity recognition
- Domain configurations: healthcare, fitness, smart home, security
- CLI interface for server management and configuration
- Hardware abstraction layer for multiple WiFi chipsets
- Phase sanitization and signal processing pipeline
- Authentication and rate limiting
- Background task management
- Cross-platform support (Linux, macOS, Windows)
Documentation
- User guide and API reference
- Deployment and troubleshooting guides
- Hardware setup and calibration instructions
- Performance benchmarks
- Contributing guidelines