文件最后提交记录最后更新时间
ruv-neural: publish 11 crates to crates.io — full implementation, no stubs * Add temporal graph evolution & RuVector integration research GOAP Agent 8 output: 1,528-line SOTA research document covering temporal graph models (TGN, JODIE, DyRep), RuVector graph memory design, mincut trajectory tracking with Kalman filtering, event detection pipelines, compressed temporal storage, cross-room transition graphs, and a 5-phase integration roadmap. Part of RF Topological Sensing research swarm (10 agents). https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add transformer architectures for graph sensing research GOAP Agent 4 output: 896-line SOTA document covering Graph Transformers (Graphormer, SAN, GPS, TokenGT), Temporal Graph Transformers (TGN, TGAT, DyRep), ViT for RF spectrograms, transformer-based mincut prediction, positional encoding for RF graphs, foundation models for RF sensing, and efficient edge deployment with INT8 quantization. Part of RF Topological Sensing research swarm (10 agents). https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add attention mechanisms for RF sensing research GOAP Agent 3 output: 1,110-line document covering GAT for RF graphs, self-attention for CSI sequences, cross-attention multi-link fusion, attention-weighted differentiable mincut, spatial node attention, antenna-level subcarrier attention, and efficient attention variants (linear, sparse, LSH, S4/Mamba). 8 ASCII architecture diagrams. Part of RF Topological Sensing research swarm (10 agents). https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add sublinear mincut algorithms research GOAP Agent 5 output: 698-line document covering classical mincut complexity, sublinear approximation (sampling, sparsifiers), dynamic mincut with lazy recomputation hybrid, streaming sketch algorithms, Benczur-Karger sparsification, local partitioning (PageRank-guided cuts), randomized methods reliability analysis, and Rust implementation with const-generic RfGraph, zero-alloc Stoer-Wagner, SIMD batch updates. Part of RF Topological Sensing research swarm (10 agents). https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add CSI edge weight computation research GOAP Agent 2 output: ~700-line document covering CSI feature extraction, coherence metrics (cross-correlation, mutual information, phasor coherence), multipath stability scoring (MUSIC, ESPRIT, ISTA), temporal windowing (EMA, Welford, Kalman), noise robustness (phase noise, AGC, clock drift), edge weight normalization, and implementation architecture showing 32KB memory for 120 edges within ESP32-S3 capability. Part of RF Topological Sensing research swarm (10 agents). https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add contrastive learning for RF coherence research GOAP Agent 7 output: 1,226-line document covering SimCLR/MoCo/BYOL for CSI, AETHER-Topo dual-head extension, coherence boundary detection with multi-scale analysis, delta-driven updates (2-12x efficiency), self-supervised pre-training protocol, triplet networks for 5-state edge classification, and MERIDIAN cross-environment transfer with EWC continual learning. Part of RF Topological Sensing research swarm (12 agents). https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add resolution and spatial granularity analysis research GOAP Agent 9 output: 1,383-line document covering Fresnel zone analysis, node density vs resolution (16-node/5m room → 30-60cm), Cramer-Rao lower bounds with Fisher Information Matrix, graph cut resolution theory, multi-frequency enhancement (6cm coherent dual-band limit), RF tomography comparison, experimental validation protocols, and resolution scaling laws (8.8cm theoretical limit). Part of RF Topological Sensing research swarm (12 agents). https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add RF graph theory and minimum cut foundations research GOAP Agent 1 output: Graph-theoretic foundations covering max-flow/min-cut for RF (Ford-Fulkerson, Stoer-Wagner, Karger), RF as dynamic graph with CSI coherence weights, topological change detection via Fiedler vector and Cheeger inequality, dynamic graph algorithms, comparison to classical RF sensing, formal mathematical framework, and 9 open research questions. Part of RF Topological Sensing research swarm (12 agents). https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add ESP32 mesh hardware constraints research GOAP Agent 6 output: ESP32 CSI capabilities (52/114 subcarriers), 16-node mesh topology with 120 edges, TDM synchronized sensing (3ms slots), computational budget (Stoer-Wagner uses 0.07% of one core), channel hopping, power analysis (0.44W/node), dual-core firmware architecture, and edge vs server computing with 100x data reduction on-device. Part of RF Topological Sensing research swarm (12 agents). https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add system architecture and prototype design research GOAP Agent 10 output: End-to-end architecture with pipeline diagrams, existing crate integration mapping, new rf_topology module design (DDD aggregate roots), 100ms latency budget breakdown, 3-phase prototype plan (4-node POC → 16-node room → 72-node multi-room), benchmark design with 8 metrics, ADR-044 draft, and Rust trait definitions (EdgeWeightComputer, TopologyGraph, MinCutSolver, BoundaryInterpolator). Part of RF Topological Sensing research swarm (12 agents). https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add quantum sensing and quantum biomedical research documents Agent 11: Quantum-level sensors (729 lines) — NV centers, SQUIDs, Rydberg atoms, quantum illumination, quantum graph theory (walks, spectral, QAOA), hybrid classical-quantum architecture, quantum ML (VQC, kernels, reservoir computing), NISQ applications (D-Wave, VQE), hardware roadmap. Agent 12: Quantum biomedical sensing (827 lines) — whole body biomagnetic mapping, neural field imaging without electrodes, circulation sensing, cellular EM signaling, non-contact diagnostics, coherence-based diagnostics (disease as coherence breakdown), neural interfaces, multimodal observatory, room-scale ambient health monitoring, graph-based biomedical analysis. Part of RF Topological Sensing research swarm (12 agents). https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add research index synthesizing all 12 documents (14,322 lines) Master index for RF Topological Sensing research compendium covering: graph theory foundations, CSI edge weights, attention mechanisms, transformers, sublinear algorithms, ESP32 hardware, contrastive learning, temporal graphs, resolution analysis, system architecture, quantum sensors, and quantum biomedical sensing. Includes key findings, proposed ADRs (044, 045), and 5-phase implementation roadmap. https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add SOTA neural decoding landscape and 10 application domains research - Doc 21: Comprehensive SOTA map (2023-2026) of brain sensors, decoders, and visualization systems with RuVector/mincut positioning analysis - Doc 22: Ten application domains for brain state observatory including disease detection, BCI, cognitive monitoring, mental health diagnostics, neurofeedback, dream reconstruction, cognitive research, HCI, wearables, and brain network digital twins with strategic roadmap https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add NV diamond neural magnetometry research document (13/22) Comprehensive 600+ line document covering NV center physics, neural magnetic field sources, sensor architecture, SQUID comparison, signal processing pipeline, RuVector integration, and development roadmap. https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add ruv-neural workspace Cargo.toml with 12 crate definitions Workspace structure for the rUv Neural brain topology analysis system. 12 mix-and-match crates with shared dependencies including RuVector integration, petgraph, rustfft, and WASM/ESP32 support. https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add ruv-neural crate ecosystem — 12 mix-and-match crates (WIP) Initial implementation of the rUv Neural brain topology analysis system: - ruv-neural-core: Core types, traits, errors, RVF format (compiles) - ruv-neural-sensor: NV diamond, OPM, EEG sensor interfaces (in progress) - ruv-neural-signal: DSP, filtering, spectral, connectivity (in progress) - ruv-neural-graph: Brain connectivity graph construction (in progress) - ruv-neural-mincut: Dynamic minimum cut topology analysis (in progress) - ruv-neural-embed: RuVector graph embeddings (in progress) - ruv-neural-memory: Persistent neural state memory + HNSW (compiles) - ruv-neural-decoder: Cognitive state classification + BCI (in progress) - ruv-neural-esp32: ESP32 edge sensor integration (compiles) - ruv-neural-wasm: WebAssembly browser bindings (in progress) - ruv-neural-viz: Visualization + ASCII rendering (in progress) - ruv-neural-cli: CLI tool (in progress) Agents still writing remaining modules. Next: fix compilation, tests, push. https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Fix ruv-neural crate compilation: all 12 crates build and 1200+ tests pass - Fix node2vec.rs type inference error (Vec<_> → Vec<Vec<f64>>) - Fix artifact.rs with full filter-based detection implementations - Fix signal crate ConnectivityMetric re-export and trait method names - Fix embed crate EmbeddingGenerator trait implementations - Complete spectral, topology, and node2vec embedders with tests - Complete preprocessing pipeline with sequential stage processing - All workspace crates compile cleanly, 0 test failures https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * Add ruv-neural-cli README https://claude.ai/code/session_01DGUAowNScGVp88bK2eiuRv * fix: convert desktop icons from RGB to RGBA for Tauri build Tauri's generate_context!() macro requires RGBA PNG icons. All 5 icon files (32x32.png, 128x128.png, 128x128@2x.png, icon.icns, icon.ico) were RGB-only, causing a proc macro panic on Linux builds. Fixes #200 Co-Authored-By: claude-flow <ruv@ruv.net> * Add Subcarrier Manifold and Vitals Oracle modules for 3D visualizations - Implemented Subcarrier Manifold to visualize amplitude data as a 3D surface with height and age attributes. - Created Vitals Oracle to represent vital signs using toroidal rings and particle trails, incorporating breathing and heart rate dynamics. - Both modules utilize Three.js for rendering and include custom shaders for visual effects. * feat: complete ruv-neural implementation — physics models, security, witness verification Replace all stubs/mocks with production physics-based signal models: - NV Diamond: ODMR Lorentzian dip, 1/f pink noise (Voss-McCartney), brain oscillations - OPM: SERF-mode, 50/60Hz powerline harmonics, full cross-talk compensation via Gaussian elimination with partial pivoting - EEG: 5 frequency bands, eye blink artifacts (Fp1/Fp2), muscle artifacts, impedance-based thermal noise floor - ESP32 ADC: ring-buffer reader with calibration signal generator, i16 clamp Security hardening (SEC-001 through SEC-005): - RVF bounded allocation (16MB metadata, 256MB payload) - sample_rate validation (>0, finite) - Signal NaN/Inf rejection - ADC resolution_bits overflow clamp - HNSW HashSet visited tracking + bounds checks Performance optimizations (PERF-001 through PERF-005): - 67x fewer FFTs via pre-computed analytic signals - VecDeque O(1) eviction in memory store - Thread-local FFT planner caching - BrainGraph::validate() for edge/weight integrity - Eigenvalue convergence early termination Ed25519 witness verification system: - 41 capability attestations across all 12 crates - SHA-256 digest + Ed25519 signature - CLI commands: `witness --output` and `witness --verify` README: ethics warning, hardware parts list (AliExpress), assembly instructions Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add crates.io badges and install instructions to ruv-neural README Add version badges linking to each published crate on crates.io, cargo add instructions, and crate search link in the Crate Map table. Co-Authored-By: claude-flow <ruv@ruv.net> --------- Co-authored-by: Claude <noreply@anthropic.com>2 个月前
feat: Add wifi-densepose-mat disaster detection module Implements WiFi-Mat (Mass Casualty Assessment Tool) for detecting and localizing survivors trapped in rubble, earthquakes, and natural disasters. Architecture: - Domain-Driven Design with bounded contexts (Detection, Localization, Alerting) - Modular Rust crate integrating with existing wifi-densepose-* crates - Event-driven architecture for audit trails and distributed deployments Features: - Breathing pattern detection from CSI amplitude variations - Heartbeat detection using micro-Doppler analysis - Movement classification (gross, fine, tremor, periodic) - START protocol-compatible triage classification - 3D position estimation via triangulation and depth estimation - Real-time alert generation with priority escalation Documentation: - ADR-001: Architecture Decision Record for wifi-Mat - DDD domain model specification 4 个月前
docs: update README, CHANGELOG, and associated ADRs for MERIDIAN - CHANGELOG: add MERIDIAN (ADR-027) to Unreleased section - README: add "Works Everywhere" to Intelligence features, update How It Works - ADR-002: status → Superseded by ADR-016/017 - ADR-004: status → Partially realized by ADR-024, extended by ADR-027 - ADR-005: status → Partially realized by ADR-023, extended by ADR-027 - ADR-006: status → Partially realized by ADR-023, extended by ADR-027 Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
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 2 个月前
docs: update README, CHANGELOG, and associated ADRs for MERIDIAN - CHANGELOG: add MERIDIAN (ADR-027) to Unreleased section - README: add "Works Everywhere" to Intelligence features, update How It Works - ADR-002: status → Superseded by ADR-016/017 - ADR-004: status → Partially realized by ADR-024, extended by ADR-027 - ADR-005: status → Partially realized by ADR-023, extended by ADR-027 - ADR-006: status → Partially realized by ADR-023, extended by ADR-027 Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
docs: update README, CHANGELOG, and associated ADRs for MERIDIAN - CHANGELOG: add MERIDIAN (ADR-027) to Unreleased section - README: add "Works Everywhere" to Intelligence features, update How It Works - ADR-002: status → Superseded by ADR-016/017 - ADR-004: status → Partially realized by ADR-024, extended by ADR-027 - ADR-005: status → Partially realized by ADR-023, extended by ADR-027 - ADR-006: status → Partially realized by ADR-023, extended by ADR-027 Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
docs: update README, CHANGELOG, and associated ADRs for MERIDIAN - CHANGELOG: add MERIDIAN (ADR-027) to Unreleased section - README: add "Works Everywhere" to Intelligence features, update How It Works - ADR-002: status → Superseded by ADR-016/017 - ADR-004: status → Partially realized by ADR-024, extended by ADR-027 - ADR-005: status → Partially realized by ADR-023, extended by ADR-027 - ADR-006: status → Partially realized by ADR-023, extended by ADR-027 Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
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 2 个月前
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 2 个月前
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 2 个月前
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 2 个月前
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 2 个月前
docs(adr-012): Update ESP32 CSI sensor mesh ADR to reflect implementation ADR-012 now reflects the actual working firmware: NVS runtime config, Docker build workflow, pre-built binary release, and verified metrics (20 Hz, zero frame loss). Status changed from Proposed to Accepted. Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: Sensing-only UI mode with Gaussian splat visualization and Rust migration ADR - Add Python WebSocket sensing server (ws_server.py) with ESP32 UDP CSI and Windows RSSI auto-detect collectors on port 8765 - Add Three.js Gaussian splat renderer with custom GLSL shaders for real-time WiFi signal field visualization (blue→green→red gradient) - Add SensingTab component with RSSI sparkline, feature meters, and motion classification badge - Add sensing.service.js WebSocket client with reconnect and simulation fallback - Implement sensing-only mode: suppress all DensePose API calls when FastAPI backend (port 8000) is not running, clean console output - ADR-019: Document sensing-only UI architecture and data flow - ADR-020: Migrate AI/model inference to Rust with RuVector ONNX Runtime, replacing ~2.7GB Python stack with ~50MB static binary - Add ruvnet/ruvector as upstream remote for RuVector crate ecosystem Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
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 2 个月前
docs: Update ADR-015 with verified dataset specs from research Corrects MM-Fi antenna config (1 TX / 3 RX not 3x3), adds Wi-Pose as secondary dataset (exact 3x3 hardware match), updates subcarrier compatibility table, promotes status to Accepted, adds proof verification protocol and Rust implementation plan. https://claude.ai/code/session_01BSBAQJ34SLkiJy4A8SoiL4 2 个月前
docs(adr): Mark ADR-016 as Accepted — all 5 integrations complete https://claude.ai/code/session_01BSBAQJ34SLkiJy4A8SoiL4 2 个月前
fix: Complete ADR-011 mock elimination and fix all test stubs Production code: - pose_service.py: real uptime tracking (_start_time), real calibration state machine (_calibration_in_progress, _calibration_id), proper get_calibration_status() using elapsed time, uptime in health_check() - health.py: _APP_START_TIME module constant for real uptime_seconds - dependencies.py: remove TODO, document JWT config requirement clearly ADR-017 status: Proposed → Accepted (all 7 integrations complete) Test fixes (170 unit tests — 0 failures): - Fix hardcoded /workspaces/wifi-densepose devcontainer paths in 4 files; replaced with os.path relative to __file__ - test_csi_extractor_tdd/standalone: update ESP32 fixture to provide correct 3×56 amplitude+phase values (was only 3 values) - test_csi_standalone/tdd_complete: Atheros tests now expect CSIExtractionError (implementation raises it correctly) - test_router_interface_tdd: register module in sys.modules so patch('src.hardware.router_interface...') resolves; fix test_should_parse_csi_response to expect RouterConnectionError - test_csi_processor: rewrite to use actual preprocess_csi_data / extract_features API with proper CSIData fixtures; fix constructor - test_phase_sanitizer: fix constructor (requires config), rename sanitize() → sanitize_phase(), fix empty-data fixture (use 2D array), fix phase data to stay within [-π, π] validation range Proof bundle: PASS — SHA-256 hash matches, no random patterns in prod code https://claude.ai/code/session_01BSBAQJ34SLkiJy4A8SoiL4 2 个月前
docs: update ADRs with ENOMEM crash fix proof (Issue #127) - ADR-018: Document rate-limiting and ENOMEM backoff safeguards in firmware - ADR-029: Add note about rate-limiting requirement for channel hopping, mark lwIP pbuf exhaustion risk as resolved - ADR-039: Add finding #5 documenting the sendto ENOMEM crash and fix (947 KB binary, hardware-verified 200+ callbacks with zero errors) - CHANGELOG: Add entries for Issue #127 fix and Issue #130 provisioning fix Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: Sensing-only UI mode with Gaussian splat visualization and Rust migration ADR - Add Python WebSocket sensing server (ws_server.py) with ESP32 UDP CSI and Windows RSSI auto-detect collectors on port 8765 - Add Three.js Gaussian splat renderer with custom GLSL shaders for real-time WiFi signal field visualization (blue→green→red gradient) - Add SensingTab component with RSSI sparkline, feature meters, and motion classification badge - Add sensing.service.js WebSocket client with reconnect and simulation fallback - Implement sensing-only mode: suppress all DensePose API calls when FastAPI backend (port 8000) is not running, clean console output - ADR-019: Document sensing-only UI architecture and data flow - ADR-020: Migrate AI/model inference to Rust with RuVector ONNX Runtime, replacing ~2.7GB Python stack with ~50MB static binary - Add ruvnet/ruvector as upstream remote for RuVector crate ecosystem Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: Sensing-only UI mode with Gaussian splat visualization and Rust migration ADR - Add Python WebSocket sensing server (ws_server.py) with ESP32 UDP CSI and Windows RSSI auto-detect collectors on port 8765 - Add Three.js Gaussian splat renderer with custom GLSL shaders for real-time WiFi signal field visualization (blue→green→red gradient) - Add SensingTab component with RSSI sparkline, feature meters, and motion classification badge - Add sensing.service.js WebSocket client with reconnect and simulation fallback - Implement sensing-only mode: suppress all DensePose API calls when FastAPI backend (port 8000) is not running, clean console output - ADR-019: Document sensing-only UI architecture and data flow - ADR-020: Migrate AI/model inference to Rust with RuVector ONNX Runtime, replacing ~2.7GB Python stack with ~50MB static binary - Add ruvnet/ruvector as upstream remote for RuVector crate ecosystem Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: Training mode, ADR docs, vitals and wifiscan crates - Add --train CLI flag with dataset loading, graph transformer training, cosine-scheduled SGD, PCK/OKS validation, and checkpoint saving - Refactor main.rs to import training modules from lib.rs instead of duplicating mod declarations - Add ADR-021 (vital sign detection), ADR-022 (Windows WiFi enhanced fidelity), ADR-023 (trained DensePose pipeline) documentation - Add wifi-densepose-vitals crate: breathing, heartrate, anomaly detection, preprocessor, and temporal store - Add wifi-densepose-wifiscan crate: 8-stage signal intelligence pipeline with netsh/wlanapi adapters, multi-BSSID registry, attention weighting, spatial correlation, and breathing extraction Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: Training mode, ADR docs, vitals and wifiscan crates - Add --train CLI flag with dataset loading, graph transformer training, cosine-scheduled SGD, PCK/OKS validation, and checkpoint saving - Refactor main.rs to import training modules from lib.rs instead of duplicating mod declarations - Add ADR-021 (vital sign detection), ADR-022 (Windows WiFi enhanced fidelity), ADR-023 (trained DensePose pipeline) documentation - Add wifi-densepose-vitals crate: breathing, heartrate, anomaly detection, preprocessor, and temporal store - Add wifi-densepose-wifiscan crate: 8-stage signal intelligence pipeline with netsh/wlanapi adapters, multi-BSSID registry, attention weighting, spatial correlation, and breathing extraction Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: Training mode, ADR docs, vitals and wifiscan crates - Add --train CLI flag with dataset loading, graph transformer training, cosine-scheduled SGD, PCK/OKS validation, and checkpoint saving - Refactor main.rs to import training modules from lib.rs instead of duplicating mod declarations - Add ADR-021 (vital sign detection), ADR-022 (Windows WiFi enhanced fidelity), ADR-023 (trained DensePose pipeline) documentation - Add wifi-densepose-vitals crate: breathing, heartrate, anomaly detection, preprocessor, and temporal store - Add wifi-densepose-wifiscan crate: 8-stage signal intelligence pipeline with netsh/wlanapi adapters, multi-BSSID registry, attention weighting, spatial correlation, and breathing extraction Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: ADR-024 Contrastive CSI Embedding Model — all 7 phases (#52) Full implementation of Project AETHER — Contrastive CSI Embedding Model. ## Phases Delivered 1. ProjectionHead (64→128→128) + L2 normalization 2. CsiAugmenter (5 physically-motivated augmentations) 3. InfoNCE contrastive loss + SimCLR pretraining 4. FingerprintIndex (4 index types: env, activity, temporal, person) 5. RVF SEG_EMBED (0x0C) + CLI integration 6. Cross-modal alignment (PoseEncoder + InfoNCE) 7. Deep RuVector: MicroLoRA, EWC++, drift detection, hard-negative mining, SEG_LORA ## Stats - 276 tests passing (191 lib + 51 bin + 16 rvf + 18 vitals) - 3,342 additions across 8 files - Zero unsafe/unwrap/panic/todo stubs - ~55KB INT8 model for ESP32 edge deployment Also fixes deprecated GitHub Actions (v3→v4) and adds feat/* branch CI triggers. Closes #502 个月前
feat: Add macOS CoreWLAN WiFi sensing adapter and user guide - Introduced ADR-025 documenting the implementation of a macOS CoreWLAN sensing adapter using a Swift helper binary and Rust integration. - Added a new user guide detailing installation, usage, and hardware setup for WiFi DensePose, including Docker and source build instructions. - Included sections on data sources, REST API reference, WebSocket streaming, and vital sign detection. - Documented hardware requirements and troubleshooting steps for various setups. 2 个月前
feat(mat): add ADR-026 + survivor track lifecycle module (WIP) ADR-026 documents the design decision to add a tracking bounded context to wifi-densepose-mat to address three gaps: no Kalman filter, no CSI fingerprint re-ID across temporal gaps, and no explicit track lifecycle state machine. Changes: - docs/adr/ADR-026-survivor-track-lifecycle.md — full design record - domain/events.rs — TrackingEvent enum (Born/Lost/Reidentified/Terminated/Rescued) with DomainEvent::Tracking variant and timestamp/event_type impls - tracking/mod.rs — module root with re-exports - tracking/kalman.rs — constant-velocity 3-D Kalman filter (predict/update/gate) - tracking/lifecycle.rs — TrackState, TrackLifecycle, TrackerConfig Remaining (in progress): fingerprint.rs, tracker.rs, lib.rs integration https://claude.ai/code/session_0164UZu6rG6gA15HmVyLZAmU 2 个月前
docs: add gap closure mapping for all proposed ADRs (002-011) to ADR-027 Maps every proposed-but-unimplemented ADR to MERIDIAN: - Directly addressed: ADR-004 (HNSW fingerprinting), ADR-005 (SONA), ADR-006 (GNN patterns) - Superseded: ADR-002 (by ADR-016/017) - Enabled: ADR-003 (cognitive containers), ADR-008 (consensus), ADR-009 (WASM runtime) - Independent: ADR-007 (PQC), ADR-010 (witness chains), ADR-011 (proof-of-reality) Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: 100% validated witness bundle with proof hash + generator script - Regenerate Python proof hash for numpy 2.4.2 + scipy 1.17.1 (PASS) - Update ADR-028 and WITNESS-LOG-028 with passing proof status - Add scripts/generate-witness-bundle.sh — creates self-contained tar.gz with witness log, test results, proof verification, firmware hashes, crate manifest, and VERIFY.sh for recipients - Bundle self-verifies: 7/7 checks PASS - Attestation: 1,031 Rust tests passing, 0 failures Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
docs: update ADRs with ENOMEM crash fix proof (Issue #127) - ADR-018: Document rate-limiting and ENOMEM backoff safeguards in firmware - ADR-029: Add note about rate-limiting requirement for channel hopping, mark lwIP pbuf exhaustion risk as resolved - ADR-039: Add finding #5 documenting the sendto ENOMEM crash and fix (947 KB binary, hardware-verified 200+ callbacks with zero errors) - CHANGELOG: Add entries for Issue #127 fix and Issue #130 provisioning fix Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
docs: add RuvSense persistent field model, exotic tiers, and appliance categories Expands the RuvSense architecture from pose estimation to spatial intelligence platform with persistent electromagnetic world model. Research (Part II added): - 7 exotic capability tiers: field normal modes, RF tomography, intention lead signals, longitudinal biomechanics drift, cross-room continuity, invisible interaction layer, adversarial detection - Signals-not-diagnoses framework with 3 monitoring levels - 5 appliance product categories: Invisible Guardian, Spatial Digital Twin, Collective Behavior Engine, RF Interaction Surface, Pre-Incident Drift Monitor - Regulatory classification (consumer wellness → clinical decision support) - Extended acceptance tests: 7-day autonomous, 30-day appliance validation ADR-030 (new): - Persistent field model architecture with room eigenstructure - Longitudinal drift detection via Welford statistics + HNSW memory - All 5 ruvector crates mapped across 7 exotic tiers - GOAP implementation priority: field modes → drift → tomography → intent - Invisible Guardian recommended as first hardware SKU vertical DDD model (extended): - 3 new bounded contexts: Field Model, Longitudinal Monitoring, Spatial Identity - Full aggregate roots, value objects, domain events for each context - Extended context map showing all 6 bounded contexts - Repository interfaces for field baselines, personal baselines, transitions - Invariants enforcing signals-not-diagnoses boundary https://claude.ai/code/session_01QTX772SDsGVSPnaphoNgNY 2 个月前
feat: combine ADR-029/030/031 + DDD domain model into implementation branch Merges two feature branches into ruvsense-full-implementation: - ADR-029: RuvSense multistatic sensing mode - ADR-030: RuvSense persistent field model (7 exotic tiers) - ADR-031: RuView sensing-first RF mode (renumbered from ADR-028-ruview) - DDD domain model (6 bounded contexts, event bus) - Research docs (multistatic fidelity architecture, SOTA 2026) Renames ADR-028-ruview → ADR-031 to avoid conflict with ADR-028 (ESP32 audit). Updates CLAUDE.md with all 31 ADRs. Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: ADR-032a midstreamer QUIC transport + secure TDM + temporal gesture + attractor drift Integrate midstreamer ecosystem for QUIC-secured mesh transport and advanced signal analysis: QUIC Transport (hardware crate): - quic_transport.rs: SecurityMode (ManualCrypto/QuicTransport), FramedMessage wire format, connection management, fallback support (856 lines, 30 tests) - secure_tdm.rs: ReplayWindow, AuthenticatedBeacon (28-byte HMAC format), SecureTdmCoordinator with dual-mode security (994 lines, 20 tests) - transport_bench.rs: Criterion benchmarks (plain vs authenticated vs QUIC) Signal Analysis (signal crate): - temporal_gesture.rs: DTW/LCS/EditDistance gesture matching via midstreamer-temporal-compare, quantized feature comparison (517 lines, 13 tests) - attractor_drift.rs: Takens' theorem phase-space embedding, Lyapunov exponent classification (Stable/Periodic/Chaotic) via midstreamer-attractor (573 lines, 13 tests) ADR-032 updated with Section 6: QUIC Transport Layer (ADR-032a) README updated with CRV signal-line section, badge 1100+, ADR count 33 Dependencies: midstreamer-quic 0.1.0, midstreamer-scheduler 0.1.0, midstreamer-temporal-compare 0.1.0, midstreamer-attractor 0.1.0 Total: 3,136 new lines, 76 tests, 6 benchmarks Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: ADR-033 CRV signal-line integration + ruvector-crv 6-stage pipeline Implement full CRV (Coordinate Remote Viewing) signal-line protocol mapping to WiFi CSI sensing via ruvector-crv: - Stage I: CsiGestaltClassifier (6 gestalt types from amplitude/phase) - Stage II: CsiSensoryEncoder (texture/color/temperature/sound/luminosity/dimension) - Stage III: Mesh topology encoding (AP nodes/links → GNN graph) - Stage IV: Coherence gate → AOL detection (signal vs noise separation) - Stage V: Pose interrogation via differentiable search - Stage VI: Person partitioning via MinCut clustering - Cross-session convergence for cross-room identity New files: - crv/mod.rs: 1,430 lines, 43 tests - crv_bench.rs: 8 criterion benchmarks (gestalt, sensory, pipeline, convergence) - ADR-033: 740-line architecture decision with 30+ acceptance criteria - patches/ruvector-crv: Fix ruvector-gnn 2.0.5 API mismatch Dependencies: ruvector-crv 0.1.1, ruvector-gnn 2.0.5 Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: Implement RSSI service for iOS and Web platforms - Added IosRssiService to handle synthetic RSSI data for iOS. - Created WebRssiService to simulate RSSI scanning on the web. - Defined shared types for WifiNetwork and RssiService in rssi.service.ts. - Introduced simulation service to generate synthetic sensing data. - Implemented WebSocket service for real-time data handling with reconnection logic. - Established Zustand stores for managing application state related to MAT and pose data. - Developed theme context and utility functions for consistent styling and formatting. - Added type definitions for various application entities including API responses and sensing data. - Created utility functions for color mapping and URL validation. - Configured TypeScript settings for the mobile application. 2 个月前
docs: update ADR-035 with dark mode, render modes, pose_source fix Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
fix: WebSocket race condition, data source indicators, auto-start pose detection (#96) * feat: RVF training pipeline & UI integration (ADR-036) Implement full model training, management, and inference pipeline: Backend (Rust): - recording.rs: CSI recording API (start/stop/list/download/delete) - model_manager.rs: RVF model loading, LoRA profile switching, model library - training_api.rs: Training API with WebSocket progress streaming, simulated training mode with realistic loss curves, auto-RVF export on completion - main.rs: Wire new modules, recording hooks in all CSI paths, data dirs UI (new components): - ModelPanel.js: Dark-mode model library with load/unload, LoRA dropdown - TrainingPanel.js: Recording controls, training config, live Canvas charts - model.service.js: Model REST API client with events - training.service.js: Training + recording API client with WebSocket progress UI (enhancements): - LiveDemoTab: Model selector, LoRA profile switcher, A/B split view toggle, training quick-panel with 60s recording shortcut - SettingsPanel: Full dark mode conversion (issue #92), model configuration (device, threads, auto-load), training configuration (epochs, LR, patience) - PoseDetectionCanvas: 10-frame pose trail with ghost keypoints and motion trajectory lines, cyan trail toggle button - pose.service.js: Model-inference confidence thresholds UI (plumbing): - index.html: Training tab (8th tab) - app.js: Panel initialization and tab routing - style.css: ~250 lines of training/model panel dark-mode styles 191 Rust tests pass, 0 failures. Closes #92. Refs: ADR-036, #93 Co-Authored-By: claude-flow <ruv@ruv.net> * fix: real RuVector training pipeline + UI service fixes Training pipeline (training_api.rs): - Replace simulated training with real signal-based training loop - Load actual CSI data from .csi.jsonl recordings or live frame history - Extract 180 features per frame: subcarrier amplitudes, temporal variance, Goertzel frequency analysis (9 bands), motion gradients, global stats - Train calibrated linear CSI-to-pose mapping via mini-batch gradient descent with L2 regularization (ridge regression), Xavier init, cosine LR decay - Self-supervised: teacher targets from derive_pose_from_sensing() heuristics - Real validation metrics: MSE and PCK@0.2 on 80/20 train/val split - Export trained .rvf with real weights, feature normalization stats, witness - Add infer_pose_from_model() for live inference from trained model - 16 new tests covering features, training, inference, serialization UI fixes: - Fix double-URL bug in model.service.js and training.service.js (buildApiUrl was called twice — once in service, once in apiService) - Fix route paths to match Rust backend (/api/v1/train/*, /api/v1/recording/*) - Fix request body formats (session_name, nested config object) - Fix top-level await in LiveDemoTab.js blocking module graph - Dynamic imports for ModelPanel/TrainingPanel in app.js - Center nav tabs with flex-wrap for 8-tab layout Co-Authored-By: claude-flow <ruv@ruv.net> * fix: WebSocket onOpen race condition, data source indicators, auto-start pose detection - Fix WebSocket onOpen race condition in websocket.service.js where setupEventHandlers replaced onopen after socket was already open, preventing pose service from receiving connection signal - Add 4-state data source indicator (LIVE/SIMULATED/RECONNECTING/OFFLINE) across Dashboard, Sensing, and Live Demo tabs via sensing.service.js - Add hot-plug ESP32 auto-detection in sensing server (auto mode runs both UDP listener and simulation, switches on ESP32_TIMEOUT) - Auto-start pose detection when backend is reachable - Hide duplicate PoseDetectionCanvas controls when enableControls=false - Add standalone Demo button in LiveDemoTab for offline animated demo - Add data source banner and status styling Co-Authored-By: claude-flow <ruv@ruv.net>2 个月前
docs: ADR-037 multi-person pose detection from single ESP32 CSI stream Four-phase approach: eigenvalue-based person count estimation, NMF signal decomposition, multi-skeleton generation with Kalman tracking, and neural multi-person model training via RVF pipeline. Ref: #97 Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
docs: ADR-038 Sublinear Goal-Oriented Action Planning (GOAP) GOAP-based planning system for dynamically prioritizing which ADRs to implement next based on current project state, available hardware, user goals, and resource constraints. Key design decisions: - 25 boolean feature flags + 5 hardware flags + 6 quality metrics - ~80 actions mapped to ADR implementation phases - Sublinear search via backward relevance pruning, hierarchical tier decomposition, incremental replanning, and admissible heuristics - PageRank-based priority when no specific goal is given - Integration with claude-flow swarm for dispatching to agents Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
docs: update ADRs with ENOMEM crash fix proof (Issue #127) - ADR-018: Document rate-limiting and ENOMEM backoff safeguards in firmware - ADR-029: Add note about rate-limiting requirement for channel hopping, mark lwIP pbuf exhaustion risk as resolved - ADR-039: Add finding #5 documenting the sendto ENOMEM crash and fix (947 KB binary, hardware-verified 200+ callbacks with zero errors) - CHANGELOG: Add entries for Issue #127 fix and Issue #130 provisioning fix Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: complete vendor repos, add edge intelligence and WASM modules - Add 154 missing vendor files (gitignore was filtering them) - vendor/midstream: 564 files (was 561) - vendor/sublinear-time-solver: 1190 files (was 1039) - Add ESP32 edge processing (ADR-039): presence, vitals, fall detection - Add WASM programmable sensing (ADR-040/041) with wasm3 runtime - Add firmware CI workflow (.github/workflows/firmware-ci.yml) - Add wifi-densepose-wasm-edge crate for edge WASM modules - Update sensing server, provision.py, UI components Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: expand ADR-041 WASM module catalog from 37 to 60 modules Add 24 vendor-integrated modules across 7 new sub-categories that leverage algorithms from ruvector (76 crates), midstream (10 crates), and sublinear-time-solver (11 crates). New categories: - Signal Intelligence (flash attention, temporal compression, coherence gating, sparse recovery, min-cut person matching, optimal transport) - Adaptive Learning (DTW gesture learning, attractor anomaly detection, meta-learning adaptation, EWC lifelong learning) - Spatial Reasoning (PageRank influence, micro-HNSW fingerprinting, spiking neural tracker) - Temporal Analysis (pattern sequence detection, LTL safety guards, GOAP autonomous planning) - Security Intelligence (CSI replay/injection shield, behavioral profiling) - Quantum-Inspired (entanglement coherence, interference hypothesis search) - Autonomous Systems (psycho-symbolic reasoning, self-healing mesh) - Exotic additions (time crystals, hyperbolic space embedding) Event ID registry expanded: 700-899 allocated for vendor modules. Implementation priority phases updated with vendor-specific roadmap. Grand totals: 60 modules, 224 event types, 13 categories. Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: add ADR-042 CHCI protocol, 24 new edge modules, README restructure - ADR-042: Coherent Human Channel Imaging (non-CSI sensing protocol) with DDD domain model (6 bounded contexts) - 24 new WASM edge modules: medical (5), retail (5), security (5), building (5), industrial (5), exotic (8) - README: plain-language rewrites, moved detail sections below TOC, added edge module links to use case tables, firmware release docs - User guide: firmware release table, edge intelligence documentation - .gitignore: added rules for wasm, esp32 temp files, NVS binaries - WASM edge crate: cargo config, integration tests, module registry Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
fix: complete sensing server API, WebSocket connectivity, and mobile tests (#125) The web UI had persistent 404 errors on model, recording, and training endpoints, and the sensing WebSocket never connected on Dashboard/Live Demo tabs because sensingService.start() was only called lazily on Sensing tab visit. Server (main.rs): - Add 14 fully-functional Axum handlers: model CRUD (7), recording lifecycle (4), training control (3) - Scan data/models/ and data/recordings/ at startup - Recording writes CSI frames to .jsonl via tokio background task - Model load/unload lifecycle with state tracking Web UI (app.js): - Import and start sensingService early in initializeServices() so Dashboard and Live Demo tabs connect to /ws/sensing immediately Mobile (ws.service.ts): - Fix WebSocket URL builder to use same-origin port instead of hardcoded port 3001 Mobile (jest.config.js): - Fix testPathIgnorePatterns that was ignoring the entire test directory Mobile (25 test files): - Replace all it.todo() placeholder tests with real implementations covering components, services, stores, hooks, screens, and utils ADR-043 documents all changes.2 个月前
docs: ADR-044 provisioning tool enhancements 5-phase plan to close remaining gaps in provision.py: - Phase 1: 7 missing NVS keys (hop_count, chan_list, dwell_ms, power_duty, wasm_max, wasm_verify, wasm_pubkey) - Phase 2: JSON config file for mesh provisioning - Phase 3: Named presets (basic, vitals, mesh-3, mesh-6-vitals) - Phase 4: --read (dump NVS) and --verify (boot check) - Phase 5: Auto-detect serial port Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
docs: update README with ADR-045–048, Observatory, adaptive classifier, AMOLED display - Update ADR count from 44 to 48 - Add adaptive classifier (ADR-048) to Intelligence features - Add Observatory visualization (ADR-047) and AMOLED display (ADR-045) to Deployment features - Update screenshot to v2-screen.png - Add ADR-045 (AMOLED), ADR-046 (Android TV), ADR-047 (Observatory), DDD deployment model - Add AMOLED display firmware (display_hal, display_task, display_ui, LVGL config) - Add Observatory UI (13 Three.js modules, CSS, HTML entry point) - Add trained adaptive model JSON - Update .gitignore for managed_components, recordings, .swarm Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
docs: update README with ADR-045–048, Observatory, adaptive classifier, AMOLED display - Update ADR count from 44 to 48 - Add adaptive classifier (ADR-048) to Intelligence features - Add Observatory visualization (ADR-047) and AMOLED display (ADR-045) to Deployment features - Update screenshot to v2-screen.png - Add ADR-045 (AMOLED), ADR-046 (Android TV), ADR-047 (Observatory), DDD deployment model - Add AMOLED display firmware (display_hal, display_task, display_ui, LVGL config) - Add Observatory UI (13 Three.js modules, CSS, HTML entry point) - Add trained adaptive model JSON - Update .gitignore for managed_components, recordings, .swarm Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
docs: update README with ADR-045–048, Observatory, adaptive classifier, AMOLED display - Update ADR count from 44 to 48 - Add adaptive classifier (ADR-048) to Intelligence features - Add Observatory visualization (ADR-047) and AMOLED display (ADR-045) to Deployment features - Update screenshot to v2-screen.png - Add ADR-045 (AMOLED), ADR-046 (Android TV), ADR-047 (Observatory), DDD deployment model - Add AMOLED display firmware (display_hal, display_task, display_ui, LVGL config) - Add Observatory UI (13 Three.js modules, CSS, HTML entry point) - Add trained adaptive model JSON - Update .gitignore for managed_components, recordings, .swarm Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: adaptive CSI classifier with signal smoothing pipeline (ADR-048) (#144) Add environment-tuned activity classification that learns from labeled ESP32 CSI recordings, replacing brittle static thresholds. - Adaptive classifier: 15-feature logistic regression trained from JSONL recordings (variance, motion band, subcarrier stats: skew, kurtosis, entropy, IQR). Trains in <1s, persists as JSON, auto-loads on restart. - Three-stage signal smoothing: adaptive baseline subtraction (α=0.003), EMA + trimmed-mean median filter (21-frame window), hysteresis debounce (4 frames). Motion classification now stable across seconds, not frames. - Vital signs stabilization: outlier rejection (±8 BPM HR, ±2 BPM BR), trimmed mean, dead-band (±2 BPM HR), EMA α=0.02. HR holds steady for 10+ seconds instead of jumping 50 BPM every frame. - Observatory auto-detect: always probes /health on startup, connects WebSocket to live ESP32 data automatically. - New API endpoints: POST /api/v1/adaptive/train, GET /adaptive/status, POST /adaptive/unload for runtime model management. - Updated user guide with Observatory, adaptive classifier tutorial, signal smoothing docs, and new troubleshooting entries.2 个月前
feat: cross-platform WiFi collector factory with graceful degradation (ADR-049) - Add create_collector() factory function that auto-detects platform and never raises - Add LinuxWifiCollector.is_available() classmethod for probe-without-exception - Refactor ws_server.py to use create_collector(), removing ~30 lines of duplicated platform detection - Add 10 unit tests covering all platform paths and edge cases - Add ADR-049 documenting the cross-platform detection and fallback chain Docker, WSL, and headless users now get SimulatedCollector automatically with a clear WARNING log instead of a RuntimeError crash. Closes #148 Closes #155 Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
fix: security hardening — replace fake HMAC, add path traversal protection, OTA auth (ADR-050) Sprint 1 security fixes from quality engineering analysis (issue #170): - Replace XOR-fold fake HMAC with real HMAC-SHA256 (hmac + sha2 crates) in secure_tdm.rs - Add path traversal sanitization on DELETE /api/v1/models/:id and /api/v1/recording/:id - Default bind address changed from 0.0.0.0 to 127.0.0.1 (configurable via --bind-addr / SENSING_BIND_ADDR) - Add PSK authentication to ESP32 OTA firmware upload endpoint (ota_update.c) - Flip WASM signature verification to default-on (CONFIG_WASM_SKIP_SIGNATURE opt-out vs opt-in) - Add 6 new security tests: HMAC key/message sensitivity, determinism, wrong-key rejection, bit-flip detection, enforcing mode - Add clap env feature for environment variable configuration All 106 hardware crate tests pass. Sensing server compiles clean. Closes #170 Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat: complete Tauri desktop frontend with all pages and enhanced design (#198) * docs: add ADR-052 Tauri desktop frontend with DDD bounded contexts Proposes a Tauri v2 desktop application as the primary UI for RuView, replacing 6+ CLI tools with a single cross-platform app. Covers hardware discovery, firmware flashing (espflash), OTA updates, WASM module management, sensing server control, and live visualization. Includes DDD domain model with 6 bounded contexts, aggregate definitions, domain events, and anti-corruption layers for ESP32 firmware APIs. Closes #177 Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add persistent node registry, OTA safety gate, plugin architecture to ADR-052 Incorporates engineering review feedback: - Persistent node registry (~/.ruview/nodes.db) — discovery becomes reconciliation - BatchOtaSession aggregate with TdmSafe rolling update strategy - Plugin architecture section — control plane extensibility trajectory - Renumbered sections for new content (9-12 added, impl phases now section 13) Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add ADR-053 UI design system — Foundation Book + Unity-inspired interface - Dark professional theme with rUv purple accent (#7c3aed) - Foundation Book typographic hierarchy (heading-xl through body-sm) - Unity Editor-inspired panel layout (sidebar + list/detail split + inspector) - 6 component specs: NodeCard, FlashProgress, MeshGraph, PropertyGrid, StatusBadge, LogViewer - Color system with status indicators (online/warning/error/info) - 4px base grid spacing system - Branding: splash screen, status bar, about dialog Refs #177 Co-Authored-By: claude-flow <ruv@ruv.net> * fix: rewrite ADR-053 UI design system with practical terminology Replace sci-fi themed language (Asimov Foundation references, Prime Radiant, Encyclopedia Galactica, Terminus, Seldon Crisis) with clear, practical terminology that engineers and operators can immediately understand. Co-Authored-By: claude-flow <ruv@ruv.net> * fix: specify Three.js for mesh topology visualization in ADR-053 Use Three.js for the mesh topology view, consistent with existing visualization patterns in ui/observatory/js/ and ui/components/. Includes implementation details: MeshPhongMaterial for node status, BufferGeometry for dynamic updates, OrbitControls, raycasting. Co-Authored-By: claude-flow <ruv@ruv.net> * feat: add Tauri v2 desktop crate with React frontend (Phase 1 skeleton) Rust backend (wifi-densepose-desktop): - 14 Tauri commands across 6 groups: discovery, flash, OTA, WASM, server, provision - Domain types: Node, NodeRegistry, FlashSession, OtaSession, BatchOtaSession - AppState with DiscoveryState and ServerState behind Mutex - Workspace Cargo.toml updated with new member - cargo check passes cleanly React/TypeScript frontend: - TypeScript types matching Rust domain model - Hooks: useNodes (discovery polling), useServer (start/stop/status) - Components: StatusBadge, NodeCard, Sidebar - Pages: Dashboard, Nodes (table + expandable details), FlashFirmware (3-step wizard with progress bar), Settings (server/security/discovery) - App.tsx with sidebar navigation routing - Vite 6 + React 18 + @tauri-apps/api v2 Implements ADR-052 Phase 1 skeleton. All commands return stub data. Co-Authored-By: claude-flow <ruv@ruv.net> * feat: implement ADR-053 design system across all frontend components Create design-system.css with all ADR-053 tokens: - CSS custom properties: colors, spacing, fonts, panel dimensions - Typography scale classes (heading-xl through data-lg) - Form control and button base styles - Custom scrollbar, selection highlight, animations Update all components to use design system tokens: - Replace hardcoded colors with var(--bg-surface), var(--border), etc. - Replace generic monospace with var(--font-mono) (JetBrains Mono) - Replace system font stack with var(--font-sans) (Inter) - Replace spacing values with var(--space-N) tokens - StatusBadge: use var(--status-online/warning/error/info) - Dashboard: add stat cards with data-lg class, use StatusBadge - FlashFirmware: pulse animation on progress bar during writes - Settings: default bind_address 127.0.0.1 (matches ADR-050) Add status bar footer with "Powered by rUv", node count, server status. Load Inter + JetBrains Mono from Google Fonts in index.html. Update ADR-053 status from Proposed to Accepted. Co-Authored-By: claude-flow <ruv@ruv.net> * fix: add missing @tauri-apps/plugin-dialog and plugin-shell dependencies Required for firmware file picker in FlashFirmware page and shell sidecar support. Fixes Vite build failure. Co-Authored-By: claude-flow <ruv@ruv.net> * fix: add defensive optional chaining for node.chip access Rust DiscoveredNode stub doesn't include chip field yet. Use optional chaining (node.chip?.toUpperCase()) to prevent TypeError at runtime. Co-Authored-By: claude-flow <ruv@ruv.net> * feat: add OTA, Edge Modules, Sensing, Mesh View pages with enhanced design system Implement all 4 remaining pages (OtaUpdate, EdgeModules, Sensing, MeshView) and enhance the design system with glassmorphism cards, count-up animations, page transitions, gradient accents, live status bar, and consistent status dot glows across the UI. Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add desktop crate README and link from main README Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add download/run instructions to desktop README Co-Authored-By: claude-flow <ruv@ruv.net>2 个月前
feat: complete Tauri desktop frontend with all pages and enhanced design (#198) * docs: add ADR-052 Tauri desktop frontend with DDD bounded contexts Proposes a Tauri v2 desktop application as the primary UI for RuView, replacing 6+ CLI tools with a single cross-platform app. Covers hardware discovery, firmware flashing (espflash), OTA updates, WASM module management, sensing server control, and live visualization. Includes DDD domain model with 6 bounded contexts, aggregate definitions, domain events, and anti-corruption layers for ESP32 firmware APIs. Closes #177 Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add persistent node registry, OTA safety gate, plugin architecture to ADR-052 Incorporates engineering review feedback: - Persistent node registry (~/.ruview/nodes.db) — discovery becomes reconciliation - BatchOtaSession aggregate with TdmSafe rolling update strategy - Plugin architecture section — control plane extensibility trajectory - Renumbered sections for new content (9-12 added, impl phases now section 13) Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add ADR-053 UI design system — Foundation Book + Unity-inspired interface - Dark professional theme with rUv purple accent (#7c3aed) - Foundation Book typographic hierarchy (heading-xl through body-sm) - Unity Editor-inspired panel layout (sidebar + list/detail split + inspector) - 6 component specs: NodeCard, FlashProgress, MeshGraph, PropertyGrid, StatusBadge, LogViewer - Color system with status indicators (online/warning/error/info) - 4px base grid spacing system - Branding: splash screen, status bar, about dialog Refs #177 Co-Authored-By: claude-flow <ruv@ruv.net> * fix: rewrite ADR-053 UI design system with practical terminology Replace sci-fi themed language (Asimov Foundation references, Prime Radiant, Encyclopedia Galactica, Terminus, Seldon Crisis) with clear, practical terminology that engineers and operators can immediately understand. Co-Authored-By: claude-flow <ruv@ruv.net> * fix: specify Three.js for mesh topology visualization in ADR-053 Use Three.js for the mesh topology view, consistent with existing visualization patterns in ui/observatory/js/ and ui/components/. Includes implementation details: MeshPhongMaterial for node status, BufferGeometry for dynamic updates, OrbitControls, raycasting. Co-Authored-By: claude-flow <ruv@ruv.net> * feat: add Tauri v2 desktop crate with React frontend (Phase 1 skeleton) Rust backend (wifi-densepose-desktop): - 14 Tauri commands across 6 groups: discovery, flash, OTA, WASM, server, provision - Domain types: Node, NodeRegistry, FlashSession, OtaSession, BatchOtaSession - AppState with DiscoveryState and ServerState behind Mutex - Workspace Cargo.toml updated with new member - cargo check passes cleanly React/TypeScript frontend: - TypeScript types matching Rust domain model - Hooks: useNodes (discovery polling), useServer (start/stop/status) - Components: StatusBadge, NodeCard, Sidebar - Pages: Dashboard, Nodes (table + expandable details), FlashFirmware (3-step wizard with progress bar), Settings (server/security/discovery) - App.tsx with sidebar navigation routing - Vite 6 + React 18 + @tauri-apps/api v2 Implements ADR-052 Phase 1 skeleton. All commands return stub data. Co-Authored-By: claude-flow <ruv@ruv.net> * feat: implement ADR-053 design system across all frontend components Create design-system.css with all ADR-053 tokens: - CSS custom properties: colors, spacing, fonts, panel dimensions - Typography scale classes (heading-xl through data-lg) - Form control and button base styles - Custom scrollbar, selection highlight, animations Update all components to use design system tokens: - Replace hardcoded colors with var(--bg-surface), var(--border), etc. - Replace generic monospace with var(--font-mono) (JetBrains Mono) - Replace system font stack with var(--font-sans) (Inter) - Replace spacing values with var(--space-N) tokens - StatusBadge: use var(--status-online/warning/error/info) - Dashboard: add stat cards with data-lg class, use StatusBadge - FlashFirmware: pulse animation on progress bar during writes - Settings: default bind_address 127.0.0.1 (matches ADR-050) Add status bar footer with "Powered by rUv", node count, server status. Load Inter + JetBrains Mono from Google Fonts in index.html. Update ADR-053 status from Proposed to Accepted. Co-Authored-By: claude-flow <ruv@ruv.net> * fix: add missing @tauri-apps/plugin-dialog and plugin-shell dependencies Required for firmware file picker in FlashFirmware page and shell sidecar support. Fixes Vite build failure. Co-Authored-By: claude-flow <ruv@ruv.net> * fix: add defensive optional chaining for node.chip access Rust DiscoveredNode stub doesn't include chip field yet. Use optional chaining (node.chip?.toUpperCase()) to prevent TypeError at runtime. Co-Authored-By: claude-flow <ruv@ruv.net> * feat: add OTA, Edge Modules, Sensing, Mesh View pages with enhanced design system Implement all 4 remaining pages (OtaUpdate, EdgeModules, Sensing, MeshView) and enhance the design system with glassmorphism cards, count-up animations, page transitions, gradient accents, live status bar, and consistent status dot glows across the UI. Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add desktop crate README and link from main README Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add download/run instructions to desktop README Co-Authored-By: claude-flow <ruv@ruv.net>2 个月前
feat: complete Tauri desktop frontend with all pages and enhanced design (#198) * docs: add ADR-052 Tauri desktop frontend with DDD bounded contexts Proposes a Tauri v2 desktop application as the primary UI for RuView, replacing 6+ CLI tools with a single cross-platform app. Covers hardware discovery, firmware flashing (espflash), OTA updates, WASM module management, sensing server control, and live visualization. Includes DDD domain model with 6 bounded contexts, aggregate definitions, domain events, and anti-corruption layers for ESP32 firmware APIs. Closes #177 Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add persistent node registry, OTA safety gate, plugin architecture to ADR-052 Incorporates engineering review feedback: - Persistent node registry (~/.ruview/nodes.db) — discovery becomes reconciliation - BatchOtaSession aggregate with TdmSafe rolling update strategy - Plugin architecture section — control plane extensibility trajectory - Renumbered sections for new content (9-12 added, impl phases now section 13) Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add ADR-053 UI design system — Foundation Book + Unity-inspired interface - Dark professional theme with rUv purple accent (#7c3aed) - Foundation Book typographic hierarchy (heading-xl through body-sm) - Unity Editor-inspired panel layout (sidebar + list/detail split + inspector) - 6 component specs: NodeCard, FlashProgress, MeshGraph, PropertyGrid, StatusBadge, LogViewer - Color system with status indicators (online/warning/error/info) - 4px base grid spacing system - Branding: splash screen, status bar, about dialog Refs #177 Co-Authored-By: claude-flow <ruv@ruv.net> * fix: rewrite ADR-053 UI design system with practical terminology Replace sci-fi themed language (Asimov Foundation references, Prime Radiant, Encyclopedia Galactica, Terminus, Seldon Crisis) with clear, practical terminology that engineers and operators can immediately understand. Co-Authored-By: claude-flow <ruv@ruv.net> * fix: specify Three.js for mesh topology visualization in ADR-053 Use Three.js for the mesh topology view, consistent with existing visualization patterns in ui/observatory/js/ and ui/components/. Includes implementation details: MeshPhongMaterial for node status, BufferGeometry for dynamic updates, OrbitControls, raycasting. Co-Authored-By: claude-flow <ruv@ruv.net> * feat: add Tauri v2 desktop crate with React frontend (Phase 1 skeleton) Rust backend (wifi-densepose-desktop): - 14 Tauri commands across 6 groups: discovery, flash, OTA, WASM, server, provision - Domain types: Node, NodeRegistry, FlashSession, OtaSession, BatchOtaSession - AppState with DiscoveryState and ServerState behind Mutex - Workspace Cargo.toml updated with new member - cargo check passes cleanly React/TypeScript frontend: - TypeScript types matching Rust domain model - Hooks: useNodes (discovery polling), useServer (start/stop/status) - Components: StatusBadge, NodeCard, Sidebar - Pages: Dashboard, Nodes (table + expandable details), FlashFirmware (3-step wizard with progress bar), Settings (server/security/discovery) - App.tsx with sidebar navigation routing - Vite 6 + React 18 + @tauri-apps/api v2 Implements ADR-052 Phase 1 skeleton. All commands return stub data. Co-Authored-By: claude-flow <ruv@ruv.net> * feat: implement ADR-053 design system across all frontend components Create design-system.css with all ADR-053 tokens: - CSS custom properties: colors, spacing, fonts, panel dimensions - Typography scale classes (heading-xl through data-lg) - Form control and button base styles - Custom scrollbar, selection highlight, animations Update all components to use design system tokens: - Replace hardcoded colors with var(--bg-surface), var(--border), etc. - Replace generic monospace with var(--font-mono) (JetBrains Mono) - Replace system font stack with var(--font-sans) (Inter) - Replace spacing values with var(--space-N) tokens - StatusBadge: use var(--status-online/warning/error/info) - Dashboard: add stat cards with data-lg class, use StatusBadge - FlashFirmware: pulse animation on progress bar during writes - Settings: default bind_address 127.0.0.1 (matches ADR-050) Add status bar footer with "Powered by rUv", node count, server status. Load Inter + JetBrains Mono from Google Fonts in index.html. Update ADR-053 status from Proposed to Accepted. Co-Authored-By: claude-flow <ruv@ruv.net> * fix: add missing @tauri-apps/plugin-dialog and plugin-shell dependencies Required for firmware file picker in FlashFirmware page and shell sidecar support. Fixes Vite build failure. Co-Authored-By: claude-flow <ruv@ruv.net> * fix: add defensive optional chaining for node.chip access Rust DiscoveredNode stub doesn't include chip field yet. Use optional chaining (node.chip?.toUpperCase()) to prevent TypeError at runtime. Co-Authored-By: claude-flow <ruv@ruv.net> * feat: add OTA, Edge Modules, Sensing, Mesh View pages with enhanced design system Implement all 4 remaining pages (OtaUpdate, EdgeModules, Sensing, MeshView) and enhance the design system with glassmorphism cards, count-up animations, page transitions, gradient accents, live status bar, and consistent status dot glows across the UI. Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add desktop crate README and link from main README Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add download/run instructions to desktop README Co-Authored-By: claude-flow <ruv@ruv.net>2 个月前
feat(desktop): RuView Desktop v0.4.0 - Full ADR-054 Implementation (#212) * fix(desktop): implement save_settings and get_settings commands Fixes #206 - Settings can now be saved and loaded in Desktop v0.3.0 - Add commands/settings.rs with get_settings and save_settings Tauri commands - Settings persisted to app data directory as settings.json - Supports all AppSettings fields: ports, bind address, OTA PSK, discovery, theme - Add unit tests for serialization and defaults Settings are stored at: - macOS: ~/Library/Application Support/net.ruv.ruview/settings.json - Windows: %APPDATA%/net.ruv.ruview/settings.json - Linux: ~/.config/net.ruv.ruview/settings.json Co-Authored-By: claude-flow <ruv@ruv.net> * feat(desktop): RuView Desktop v0.4.0 - Full ADR-054 Implementation This release completes all 14 Tauri commands specified in ADR-054, making the desktop app fully production-ready for ESP32 node management. ## New Features ### Discovery Module - Real mDNS discovery (_ruview._udp.local) - UDP broadcast probe on port 5006 - Serial port enumeration with ESP32 chip detection ### Flash Module - Full espflash CLI integration - Real-time progress streaming via Tauri events - SHA-256 firmware verification - Support for ESP32, S2, S3, C3, C6 chips ### OTA Module - HTTP multipart firmware upload - HMAC-SHA256 signature with PSK authentication - Sequential and parallel batch update strategies - Reboot confirmation polling ### WASM Module - 67 edge modules across 14 categories - App-store style module library with ratings/downloads - Full module lifecycle (upload/start/stop/unload) - RVF format deployment paths ### Server Module - Child process spawn with config - Graceful SIGTERM + SIGKILL fallback - Memory/CPU monitoring via sysinfo ### Provision Module - NVS binary serial protocol - Read/write/erase operations - Mesh config generation for multi-node setup ## Security - Input validation (IP, port, path) - Binary validation (ESP/WASM magic bytes) - PSK authentication for OTA ## Breaking Changes None - backwards compatible with v0.3.0 Co-Authored-By: claude-flow <ruv@ruv.net> --------- Co-authored-by: Reuven <cohen@ruv-mac-mini.local>2 个月前
feat(desktop): v0.4.2 - Integrated sensing server with real WebSocket data - Bundle sensing-server binary in app resources (bin/sensing-server) - Add find_server_binary() for multi-path binary discovery - Connect Sensing page to real WebSocket endpoint (ws://localhost:8765/ws/sensing) - Add DataSource type and source config for data source selection - Default to simulate mode when no ESP32 hardware present - Add ADR-055: Integrated Sensing Server architecture - Add ADR-056: Complete RuView Desktop Capabilities Reference Closes integration of sensing server as single-package distribution. Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat(desktop): v0.4.2 - Integrated sensing server with real WebSocket data - Bundle sensing-server binary in app resources (bin/sensing-server) - Add find_server_binary() for multi-path binary discovery - Connect Sensing page to real WebSocket endpoint (ws://localhost:8765/ws/sensing) - Add DataSource type and source config for data source selection - Default to simulate mode when no ESP32 hardware present - Add ADR-055: Integrated Sensing Server architecture - Add ADR-056: Complete RuView Desktop Capabilities Reference Closes integration of sensing server as single-package distribution. Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
fix(firmware): enable CSI in sdkconfig and add build guard (ADR-057) The committed sdkconfig had CONFIG_ESP_WIFI_CSI_ENABLED disabled, causing all builds to crash at runtime with "CSI not enabled in menuconfig". Root cause: sdkconfig.defaults.template existed but ESP-IDF only reads sdkconfig.defaults (no .template suffix). Fixes: - Add sdkconfig.defaults with CONFIG_ESP_WIFI_CSI_ENABLED=y - Add #error compile guard in csi_collector.c to prevent recurrence - Fix NVS encryption default (requires eFuse, breaks clean builds) Verified: Docker build + flash to ESP32-S3 + CSI callbacks confirmed. Closes #241 Relates to #223, #238, #234, #210, #190 Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
feat(demo): wire all 6 RuVector WASM attention mechanisms into pose fusion * feat: dual-modal WASM browser pose estimation demo (ADR-058) Live webcam video + WiFi CSI fusion for real-time pose estimation. Two parallel CNN pipelines (ruvector-cnn-wasm) with attention-weighted fusion and dynamic confidence gating. Three modes: Dual, Video-only, CSI-only. Includes pre-built WASM package (~52KB) for browser deployment. - ADR-058: Dual-modal architecture design - ui/pose-fusion.html: Main demo page with dark theme UI - 7 JS modules: video-capture, csi-simulator, cnn-embedder, fusion-engine, pose-decoder, canvas-renderer, main orchestrator - Pre-built ruvector-cnn-wasm WASM package for browser - CSI heatmap, embedding space visualization, latency metrics - WebSocket support for live ESP32 CSI data - Navigation link added to main dashboard Co-Authored-By: claude-flow <ruv@ruv.net> * fix: motion-responsive skeleton + through-wall CSI tracking - Pose decoder now uses per-cell motion grid to track actual arm/head positions — raising arms moves the skeleton's arms, head follows lateral movement - Motion grid (10x8 cells) tracks intensity per body zone: head, left/right arm upper/mid, legs - Through-wall mode: when person exits frame, CSI maintains presence with slow decay (~10s) and skeleton drifts in exit direction - CSI simulator persists sensing after video loss, ghost pose renders with decreasing confidence - Reduced temporal smoothing (0.45) for faster response to movement Co-Authored-By: claude-flow <ruv@ruv.net> * fix: video fills available space + correct WASM path resolution - Remove fixed aspect-ratio and max-height from video panel so it fills the available viewport space without scrolling - Grid uses 1fr row for content area, overflow:hidden on main grid - Fix WASM path: resolve relative to JS module file using import.meta.url instead of hardcoded ./pkg/ which resolved incorrectly on gh-pages - Responsive: mobile still gets aspect-ratio constraint Co-Authored-By: claude-flow <ruv@ruv.net> * feat: live ESP32 CSI pipeline + auto-connect WebSocket - Add auto-connect to local sensing server WebSocket (ws://localhost:8765) - Demo shows "Live ESP32" when connected to real CSI data - Add build_firmware.ps1 for native Windows ESP-IDF builds (no Docker) - Add read_serial.ps1 for ESP32 serial monitor Pipeline: ESP32 → UDP:5005 → sensing-server → WS:8765 → browser demo Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add ADR-059 live ESP32 CSI pipeline + update README with demo links - ADR-059: Documents end-to-end ESP32 → sensing server → browser pipeline - README: Add dual-modal pose fusion demo link, update ADR count to 49 - References issue #245 Co-Authored-By: claude-flow <ruv@ruv.net> * feat: RSSI visualization, RuVector attention WASM, cache-bust fixes - Add animated RSSI Signal Strength panel with sparkline history - Fix RuVector WasmMultiHeadAttention retptr calling convention - Wire up RuVector Multi-Head + Flash Attention in CNN embedder - Add ambient temporal drift to CSI simulator for visible heatmap animation - Fix embedding space projection (sparse projection replaces cancelling sum) - Add auto-scaling to embedding space renderer - Add cache busters (?v=4) to all ES module imports to prevent stale caches - Add diagnostic logging for module version verification - Add RSSI tracking with quality labels and color-coded dBm display - Includes ruvector-attention-wasm v2.0.5 browser ESM wrapper Co-Authored-By: claude-flow <ruv@ruv.net> * feat: 26-keypoint dexterous pose + full RuVector attention pipeline Pose Decoder (17 → 26 keypoints): - Add finger approximations: thumb, index, pinky per hand (6 new) - Add toe tips: left/right foot index (2 new) - Add neck keypoint (1 new) - Hand openness driven by arm motion intensity - Finger positions computed from wrist-elbow axis angles CNN Embedder (full RuVector WASM pipeline): - Stage 1: Multi-Head Attention (global spatial reasoning) - Stage 2: Hyperbolic Attention (hierarchical body-part tree) - Stage 3: MoE Attention (3 experts: upper/lower/extremities, top-2) - Blended 40/30/30 weighting → final embedding projection Canvas Renderer: - Magenta finger joints with distinct glow - Cyan toe tips - White neck keypoint - Thinner limb lines for hand/foot connections - Joint count shown in overlay label CSI Simulator: - Skip synthetic person state when live ESP32 connected - Only simulate CSI data in demo mode (was already correct) Embedding Space: - Fixed projection: sparse 8-dim projection replaces cancelling sum - Auto-scaling normalizes point spread to fill canvas Cache busters bumped to v=5 on all imports. Co-Authored-By: claude-flow <ruv@ruv.net> * fix: centroid-based pose tracking for responsive limb movement Rewrites pose decoder from intensity-based to position-based tracking: - Arms now track toward motion centroid in each body zone - Elbow/wrist positions computed along shoulder→centroid vector - Legs track toward lower-body zone centroids - Smoothing reduced from 0.45 to 0.25 for responsiveness - Zone centroids blend 30% old / 70% new each frame 6 body zones with overlapping coverage: - Head (top 20%, center cols) - Left/Right Arm (rows 10-60%, outer cols) - Torso (rows 15-55%, center cols) - Left/Right Leg (rows 50-100%, half cols each) Hand openness now driven by arm spread distance + raise amount. Cache busters v=6. Co-Authored-By: claude-flow <ruv@ruv.net> * fix: remove duplicate lAnkleX/rAnkleX declarations in pose-decoder Stale code block from old intensity-based tracking was left behind, re-declaring variables already defined by centroid-based tracking. Co-Authored-By: claude-flow <ruv@ruv.net> * feat(demo): wire all 6 RuVector WASM attention mechanisms into pose fusion - Add WasmLinearAttention and WasmLocalGlobalAttention to browser ESM wrapper - Add 6 WASM utility functions (batch_normalize, pairwise_distances, etc.) - Extend CnnEmbedder to 6-stage pipeline: Flash → MHA → Hyperbolic → Linear → MoE → L+G - Use log-energy softmax blending across all 6 stages - Wire WASM cosine_similarity and normalize into FusionEngine - Add RuVector pipeline stats panel to UI (energy, refinement, pose impact) - Compute embedding-to-joint mapping stats without modifying joint positions - Center camera prompt with flexbox layout - Add cache busters v=12 Co-Authored-By: claude-flow <ruv@ruv.net>2 个月前
feat(demo): wire all 6 RuVector WASM attention mechanisms into pose fusion * feat: dual-modal WASM browser pose estimation demo (ADR-058) Live webcam video + WiFi CSI fusion for real-time pose estimation. Two parallel CNN pipelines (ruvector-cnn-wasm) with attention-weighted fusion and dynamic confidence gating. Three modes: Dual, Video-only, CSI-only. Includes pre-built WASM package (~52KB) for browser deployment. - ADR-058: Dual-modal architecture design - ui/pose-fusion.html: Main demo page with dark theme UI - 7 JS modules: video-capture, csi-simulator, cnn-embedder, fusion-engine, pose-decoder, canvas-renderer, main orchestrator - Pre-built ruvector-cnn-wasm WASM package for browser - CSI heatmap, embedding space visualization, latency metrics - WebSocket support for live ESP32 CSI data - Navigation link added to main dashboard Co-Authored-By: claude-flow <ruv@ruv.net> * fix: motion-responsive skeleton + through-wall CSI tracking - Pose decoder now uses per-cell motion grid to track actual arm/head positions — raising arms moves the skeleton's arms, head follows lateral movement - Motion grid (10x8 cells) tracks intensity per body zone: head, left/right arm upper/mid, legs - Through-wall mode: when person exits frame, CSI maintains presence with slow decay (~10s) and skeleton drifts in exit direction - CSI simulator persists sensing after video loss, ghost pose renders with decreasing confidence - Reduced temporal smoothing (0.45) for faster response to movement Co-Authored-By: claude-flow <ruv@ruv.net> * fix: video fills available space + correct WASM path resolution - Remove fixed aspect-ratio and max-height from video panel so it fills the available viewport space without scrolling - Grid uses 1fr row for content area, overflow:hidden on main grid - Fix WASM path: resolve relative to JS module file using import.meta.url instead of hardcoded ./pkg/ which resolved incorrectly on gh-pages - Responsive: mobile still gets aspect-ratio constraint Co-Authored-By: claude-flow <ruv@ruv.net> * feat: live ESP32 CSI pipeline + auto-connect WebSocket - Add auto-connect to local sensing server WebSocket (ws://localhost:8765) - Demo shows "Live ESP32" when connected to real CSI data - Add build_firmware.ps1 for native Windows ESP-IDF builds (no Docker) - Add read_serial.ps1 for ESP32 serial monitor Pipeline: ESP32 → UDP:5005 → sensing-server → WS:8765 → browser demo Co-Authored-By: claude-flow <ruv@ruv.net> * docs: add ADR-059 live ESP32 CSI pipeline + update README with demo links - ADR-059: Documents end-to-end ESP32 → sensing server → browser pipeline - README: Add dual-modal pose fusion demo link, update ADR count to 49 - References issue #245 Co-Authored-By: claude-flow <ruv@ruv.net> * feat: RSSI visualization, RuVector attention WASM, cache-bust fixes - Add animated RSSI Signal Strength panel with sparkline history - Fix RuVector WasmMultiHeadAttention retptr calling convention - Wire up RuVector Multi-Head + Flash Attention in CNN embedder - Add ambient temporal drift to CSI simulator for visible heatmap animation - Fix embedding space projection (sparse projection replaces cancelling sum) - Add auto-scaling to embedding space renderer - Add cache busters (?v=4) to all ES module imports to prevent stale caches - Add diagnostic logging for module version verification - Add RSSI tracking with quality labels and color-coded dBm display - Includes ruvector-attention-wasm v2.0.5 browser ESM wrapper Co-Authored-By: claude-flow <ruv@ruv.net> * feat: 26-keypoint dexterous pose + full RuVector attention pipeline Pose Decoder (17 → 26 keypoints): - Add finger approximations: thumb, index, pinky per hand (6 new) - Add toe tips: left/right foot index (2 new) - Add neck keypoint (1 new) - Hand openness driven by arm motion intensity - Finger positions computed from wrist-elbow axis angles CNN Embedder (full RuVector WASM pipeline): - Stage 1: Multi-Head Attention (global spatial reasoning) - Stage 2: Hyperbolic Attention (hierarchical body-part tree) - Stage 3: MoE Attention (3 experts: upper/lower/extremities, top-2) - Blended 40/30/30 weighting → final embedding projection Canvas Renderer: - Magenta finger joints with distinct glow - Cyan toe tips - White neck keypoint - Thinner limb lines for hand/foot connections - Joint count shown in overlay label CSI Simulator: - Skip synthetic person state when live ESP32 connected - Only simulate CSI data in demo mode (was already correct) Embedding Space: - Fixed projection: sparse 8-dim projection replaces cancelling sum - Auto-scaling normalizes point spread to fill canvas Cache busters bumped to v=5 on all imports. Co-Authored-By: claude-flow <ruv@ruv.net> * fix: centroid-based pose tracking for responsive limb movement Rewrites pose decoder from intensity-based to position-based tracking: - Arms now track toward motion centroid in each body zone - Elbow/wrist positions computed along shoulder→centroid vector - Legs track toward lower-body zone centroids - Smoothing reduced from 0.45 to 0.25 for responsiveness - Zone centroids blend 30% old / 70% new each frame 6 body zones with overlapping coverage: - Head (top 20%, center cols) - Left/Right Arm (rows 10-60%, outer cols) - Torso (rows 15-55%, center cols) - Left/Right Leg (rows 50-100%, half cols each) Hand openness now driven by arm spread distance + raise amount. Cache busters v=6. Co-Authored-By: claude-flow <ruv@ruv.net> * fix: remove duplicate lAnkleX/rAnkleX declarations in pose-decoder Stale code block from old intensity-based tracking was left behind, re-declaring variables already defined by centroid-based tracking. Co-Authored-By: claude-flow <ruv@ruv.net> * feat(demo): wire all 6 RuVector WASM attention mechanisms into pose fusion - Add WasmLinearAttention and WasmLocalGlobalAttention to browser ESM wrapper - Add 6 WASM utility functions (batch_normalize, pairwise_distances, etc.) - Extend CnnEmbedder to 6-stage pipeline: Flash → MHA → Hyperbolic → Linear → MoE → L+G - Use log-energy softmax blending across all 6 stages - Wire WASM cosine_similarity and normalize into FusionEngine - Add RuVector pipeline stats panel to UI (energy, refinement, pose impact) - Compute embedding-to-joint mapping stats without modifying joint positions - Center camera prompt with flexbox layout - Add cache busters v=12 Co-Authored-By: claude-flow <ruv@ruv.net>2 个月前
feat(firmware): --channel and --filter-mac provisioning (ADR-060) - provision.py: add --channel (CSI channel override) and --filter-mac (AA:BB:CC:DD:EE:FF format) arguments with validation - nvs_config: add csi_channel, filter_mac[6], filter_mac_set fields; read from NVS on boot - csi_collector: auto-detect AP channel when no NVS override is set; filter CSI frames by source MAC when filter_mac is configured - ADR-060 documents the design and rationale Fixes #247, fixes #2292 个月前
feat: QEMU ESP32-S3 testing platform + swarm configurator (ADR-061/062) (#260) 9-layer QEMU testing platform (ADR-061) and YAML-driven swarm configurator (ADR-062) for ESP32-S3 firmware testing without hardware. 12 commits, 56 files, +9,500 lines. Tested on Windows with Espressif QEMU 9.0.0 — firmware boots, mock CSI generates frames, 14/16 validation checks pass. 39 bugs found and fixed across 2 deep code reviews. Closes #259 Co-Authored-By: claude-flow <ruv@ruv.net>2 个月前
feat: QEMU ESP32-S3 testing platform + swarm configurator (ADR-061/062) (#260) 9-layer QEMU testing platform (ADR-061) and YAML-driven swarm configurator (ADR-062) for ESP32-S3 firmware testing without hardware. 12 commits, 56 files, +9,500 lines. Tested on Windows with Espressif QEMU 9.0.0 — firmware boots, mock CSI generates frames, 14/16 validation checks pass. 39 bugs found and fixed across 2 deep code reviews. Closes #259 Co-Authored-By: claude-flow <ruv@ruv.net>2 个月前
docs: add ADR index with intro on ADRs for AI-assisted development Explains why ADRs matter for AI-generated code (prevents drift, provides constraints and rationale), how they work with DDD domain models, and indexes all 44 ADRs by category. Also fixes ADR count 43 -> 44 in main README. Co-Authored-By: claude-flow <ruv@ruv.net> 2 个月前
README.md

Architecture Decision Records

This folder contains 44 Architecture Decision Records (ADRs) that document every significant technical choice in the RuView / WiFi-DensePose project.

Why ADRs?

Building a system that turns WiFi signals into human pose estimation involves hundreds of non-obvious decisions: which signal processing algorithms to use, how to bridge ESP32 firmware to a Rust pipeline, whether to run inference on-device or on a server, how to handle multi-person separation with limited subcarriers.

ADRs capture the context, options considered, decision made, and consequences for each of these choices. They serve three purposes:

  1. Institutional memory — Six months from now, anyone (human or AI) can read why we chose IIR bandpass filters over FIR for vital sign extraction, not just see the code.

  2. AI-assisted development — When an AI agent works on this codebase, ADRs give it the constraints and rationale it needs to make changes that align with the existing architecture. Without them, AI-generated code tends to drift — reinventing patterns that already exist, contradicting earlier decisions, or optimizing for the wrong tradeoffs.

  3. Review checkpoints — Each ADR is a reviewable artifact. When a proposed change touches the architecture, the ADR forces the author to articulate tradeoffs before writing code, not after.

ADRs and Domain-Driven Design

The project uses Domain-Driven Design (DDD) to organize code into bounded contexts — each with its own language, types, and responsibilities. ADRs and DDD work together:

  • ADRs define boundaries: ADR-029 (RuvSense) established multistatic sensing as a separate bounded context from single-node CSI. ADR-042 (CHCI) defined a new aggregate root for coherent channel imaging.
  • DDD models define the language: The RuvSense domain model defines terms like "coherence gate", "dwell time", and "TDM slot" that ADRs reference precisely.
  • Together they prevent drift: An AI agent reading ADR-039 knows that edge processing tiers are configured via NVS keys, not compile-time flags — because the ADR says so. The DDD model tells it which aggregate owns that configuration.

How ADRs are structured

Each ADR follows a consistent format:

  • Context — What problem or gap prompted this decision
  • Decision — What we chose to do and how
  • Consequences — What improved, what got harder, and what risks remain
  • References — Related ADRs, papers, and code paths

Statuses: Proposed (under discussion), Accepted (approved and/or implemented), Superseded (replaced by a later ADR).


ADR Index

Hardware and firmware

ADR Title Status
ADR-012 ESP32 CSI Sensor Mesh for Distributed Sensing Accepted (partial)
ADR-018 ESP32 Development Implementation Path Proposed
ADR-028 ESP32 Capability Audit and Witness Record Accepted
ADR-029 RuvSense Multistatic Sensing Mode (TDM, channel hopping) Proposed
ADR-032 Multistatic Mesh Security Hardening Accepted
ADR-039 ESP32-S3 Edge Intelligence Pipeline (on-device vitals) Accepted (hardware-validated)
ADR-040 WASM Programmable Sensing (Tier 3) Accepted
ADR-041 WASM Module Collection (65 edge modules) Accepted (hardware-validated)
ADR-044 Provisioning Tool Enhancements Proposed

Signal processing and sensing

ADR Title Status
ADR-013 Feature-Level Sensing on Commodity Gear Accepted
ADR-014 SOTA Signal Processing Algorithms Accepted
ADR-021 Vital Sign Detection (breathing, heart rate) Partial
ADR-030 Persistent Field Model and Drift Detection Proposed
ADR-033 CRV Signal Line Sensing Integration Proposed
ADR-037 Multi-Person Pose Detection from Single ESP32 Proposed
ADR-042 Coherent Human Channel Imaging (beyond CSI) Proposed

Machine learning and training

ADR Title Status
ADR-005 SONA Self-Learning for Pose Estimation Partial
ADR-006 GNN-Enhanced CSI Pattern Recognition Partial
ADR-015 Public Dataset Strategy (MM-Fi, Wi-Pose) Accepted
ADR-016 RuVector Training Pipeline Integration Accepted
ADR-017 RuVector Signal + MAT Integration Proposed
ADR-020 Migrate AI Inference to Rust (ONNX Runtime) Accepted
ADR-023 Trained DensePose Model with RuVector Pipeline Proposed
ADR-024 Project AETHER: Contrastive CSI Embeddings Required
ADR-027 Project MERIDIAN: Cross-Environment Generalization Proposed

Platform and UI

ADR Title Status
ADR-019 Sensing-Only UI with Gaussian Splats Accepted
ADR-022 Windows WiFi Enhanced Fidelity (multi-BSSID) Partial
ADR-025 macOS CoreWLAN WiFi Sensing Proposed
ADR-031 RuView Sensing-First RF Mode Proposed
ADR-034 Expo React Native Mobile App Accepted
ADR-035 Live Sensing UI Accuracy and Data Transparency Accepted
ADR-036 Training Pipeline UI Integration Proposed
ADR-043 Sensing Server UI API Completion (14 endpoints) Accepted

Architecture and infrastructure

ADR Title Status
ADR-001 WiFi-Mat Disaster Detection Architecture Accepted
ADR-002 RuVector RVF Integration Strategy Superseded
ADR-003 RVF Cognitive Containers for CSI Proposed
ADR-004 HNSW Vector Search for Fingerprinting Partial
ADR-007 Post-Quantum Cryptography for Sensing Proposed
ADR-008 Distributed Consensus for Multi-AP Proposed
ADR-009 RVF WASM Runtime for Edge Deployment Proposed
ADR-010 Witness Chains for Audit Trail Integrity Proposed
ADR-011 Proof-of-Reality and Mock Elimination Proposed
ADR-026 Survivor Track Lifecycle (MAT crate) Accepted
ADR-038 Sublinear GOAP for Roadmap Optimization Proposed

  • DDD Domain Models — Bounded context definitions, aggregate roots, and ubiquitous language
  • User Guide — Setup, API reference, and hardware instructions
  • Build Guide — Building from source