ruv
381b51a382
docs: update user guide with v0.3.0 features — multistatic mesh, CRV, QUIC, crates.io
...
- Test count 700+ → 1,100+, ADR count 27 → 33, Rust version 1.75+
- Add crates.io installation section (cargo add for all 15 crates)
- Add ESP32 multistatic mesh section (TDM, channel hopping, QUIC transport)
- Add mesh key provisioning and TDM slot assignment instructions
- Add CRV signal-line protocol section with 6-stage table
- Update vital signs range for multistatic mesh (~8 m)
- Update through-wall FAQ with multistatic mesh capabilities
- Update ESP32 hardware setup with secure provisioning and ADR refs
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-02 08:46:09 -05:00
ruv
e99a41434d
chore: bump workspace to v0.3.0 and publish 15 crates to crates.io
...
- Workspace version: 0.2.0 → 0.3.0
- All internal path dependency versions updated
- ruvector-crv/gnn gated behind optional `crv` feature (removed [patch.crates-io])
- All 15 crates published to crates.io at v0.3.0
Published crates (in order):
1. wifi-densepose-core
2. wifi-densepose-vitals
3. wifi-densepose-wifiscan
4. wifi-densepose-hardware
5. wifi-densepose-config
6. wifi-densepose-db
7. wifi-densepose-signal
8. wifi-densepose-nn
9. wifi-densepose-ruvector
10. wifi-densepose-api
11. wifi-densepose-train
12. wifi-densepose-mat
13. wifi-densepose-wasm
14. wifi-densepose-sensing-server
15. wifi-densepose-cli
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-02 08:39:23 -05:00
ruv
0c01157e36
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 >
2026-03-01 22:22:19 -05:00
ruv
60e0e6d3c4
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 >
2026-03-01 22:21:59 -05:00
ruv
97f2a490eb
feat: ADR-032 multistatic mesh security hardening
...
Addresses all 7 open security findings from security audit:
- H-1: HMAC-SHA256 beacon authentication + monotonic nonce
- M-3: SipHash-2-4 frame integrity tag
- M-4: Token-bucket NDP rate limiter (20/sec default)
- M-5: Coherence gate max_recalibrate_duration (30s)
- L-1: Ring buffer transition log (max 1000)
- L-4: explicit_bzero() NVS password buffer
- L-5: _Atomic qualifiers for dual-core safety
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 21:54:42 -05:00
ruv
c520204e12
docs: sync CLAUDE.md (uppercase) with claude.md updates
...
On case-insensitive Windows both files map to the same physical file but
Git tracks them as separate index entries. Force-update CLAUDE.md to match.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 21:52:36 -05:00
ruv
1288fd9375
docs: update CLAUDE.md with ADR-024..032 references, crate/module tables, and build commands
...
Synchronize project instructions to reflect the full RuvSense (ADR-029/030),
RuView (ADR-031), and security hardening (ADR-032) work now present on this
branch. Adds comprehensive crate and module reference tables, updated
workspace test commands, and witness verification instructions.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 21:51:05 -05:00
ruv
95c68139bc
fix: correct failing ADR-030 tests in field_model, longitudinal, and tomography
...
Fix 4 test failures in the ADR-030 exotic sensing tier modules:
- field_model::test_perturbation_extraction: Use 8 subcarriers with 2
modes and varied calibration data so perturbation on subcarrier 5
(not captured by any environmental mode) remains visible in residual.
- longitudinal::test_drift_detected_after_sustained_deviation: Use 30
baseline days with tiny noise to anchor Welford stats, then inject
deviation of 5.0 (vs 0.1 baseline) so z-score exceeds 2.0 even as
drifted values are accumulated into the running statistics.
- longitudinal::test_monitoring_level_escalation: Same strategy with 30
baseline days and deviation of 10.0 to sustain z > 2.0 for 7+ days,
reaching RiskCorrelation monitoring level.
- tomography::test_nonzero_attenuation_produces_density: Fix ISTA solver
oscillation by replacing max-column-norm Lipschitz estimate with
Frobenius norm squared upper bound, ensuring convergent step size.
Also use stronger attenuations (5.0-16.0) and lower lambda (0.001).
All 209 ruvsense tests now pass. Workspace compiles cleanly.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 21:45:47 -05:00
ruv
ba9c88ee30
fix: correct noisy PCK test to use sufficient noise magnitude
...
The make_noisy_kpts test helper used noise=0.1 with GT coordinates
spread across [0, 0.85], producing a large bbox diagonal that made
even noisy predictions fall within PCK@0.2 threshold. Reduce GT
coordinate range and increase noise to 0.5 so the test correctly
verifies that noisy predictions produce PCK < 1.0.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 21:42:18 -05:00
ruv
5541926e6a
fix(security): harden RuvSense pipeline against overflow and numerical instability
...
- tomography.rs: use checked_mul for nx*ny*nz to prevent integer overflow
on adversarial grid configurations
- phase_align.rs: add defensive bounds check in mean_phase_on_indices to
prevent panic on out-of-range subcarrier indices
- multistatic.rs: stabilize softmax in attention_weighted_fusion with
max-subtraction to prevent exp() overflow on extreme similarity values
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 21:41:00 -05:00
ruv
37b54d649b
feat: implement ADR-029/030/031 — RuvSense multistatic sensing + field model + RuView fusion
...
12,126 lines of new Rust code across 22 modules with 285 tests:
ADR-029 RuvSense Core (signal crate, 10 modules):
- multiband.rs: Multi-band CSI frame fusion from channel hopping
- phase_align.rs: Cross-channel LO phase rotation correction
- multistatic.rs: Attention-weighted cross-node viewpoint fusion
- coherence.rs: Z-score per-subcarrier coherence scoring
- coherence_gate.rs: Accept/PredictOnly/Reject/Recalibrate gating
- pose_tracker.rs: 17-keypoint Kalman tracker with re-ID
- mod.rs: Pipeline orchestrator
ADR-030 Persistent Field Model (signal crate, 7 modules):
- field_model.rs: SVD-based room eigenstructure, Welford stats
- tomography.rs: Coarse RF tomography from link attenuations (ISTA)
- longitudinal.rs: Personal baseline drift detection over days
- intention.rs: Pre-movement prediction (200-500ms lead signals)
- cross_room.rs: Cross-room identity continuity
- gesture.rs: Gesture classification via DTW template matching
- adversarial.rs: Physically impossible signal detection
ADR-031 RuView (ruvector crate, 5 modules):
- attention.rs: Scaled dot-product with geometric bias
- geometry.rs: Geometric Diversity Index, Cramer-Rao bounds
- coherence.rs: Phase phasor coherence gating
- fusion.rs: MultistaticArray aggregate, fusion orchestrator
- mod.rs: Module exports
Training & Hardware:
- ruview_metrics.rs: 3-metric acceptance test (PCK/OKS, MOTA, vitals)
- esp32/tdm.rs: TDM sensing protocol, sync beacons, drift compensation
- Firmware: channel hopping, NDP injection, NVS config extensions
Security fixes:
- field_model.rs: saturating_sub prevents timestamp underflow
- longitudinal.rs: FIFO eviction note for bounded buffer
README updated with RuvSense section, new feature badges, changelog v3.1.0.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 21:39:02 -05:00
ruv
303871275b
feat: ADR-029/031 TDM sensing protocol, channel hopping, and NVS config
...
Implement the hardware and firmware portions of RuvSense (ADR-029) and
RuView (ADR-031) for multistatic WiFi sensing:
Rust (wifi-densepose-hardware):
- TdmSchedule: uniform slot assignments with configurable cycle period,
guard intervals, and processing window (default 4-node 20 Hz)
- TdmCoordinator: manages sensing cycles, tracks per-slot completion,
cumulative clock drift compensation (±10 ppm over 50 ms = 0.5 us)
- SyncBeacon: 16-byte wire format for cycle synchronization with
drift correction offsets
- TdmSlotCompleted event for aggregator notification
- 18 unit tests + 4 doctests, all passing
Firmware (C, ESP32):
- Channel-hop table in csi_collector.c (s_hop_channels, configurable
via csi_collector_set_hop_table)
- Timer-driven channel hopping via esp_timer at dwell intervals
- NDP frame injection stub via esp_wifi_80211_tx()
- Backward-compatible: hop_count=1 disables hopping entirely
- NVS config extension: hop_count, chan_list, dwell_ms, tdm_slot,
tdm_node_count with bounds validation and Kconfig fallback defaults
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 21:33:48 -05:00
ruv
b4f1e55546
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 >
2026-03-01 21:25:14 -05:00
ruv
d4dc5cb0bc
Merge remote-tracking branch 'origin/claude/use-cases-implementation-plan-tT4s9' into ruvsense-full-implementation
2026-03-01 21:21:24 -05:00
Claude
374b0fdcef
docs: add RuView (ADR-028) sensing-first RF mode for multistatic fidelity
...
Introduce Project RuView — RuVector Viewpoint-Integrated Enhancement — a
sensing-first RF mode that improves WiFi DensePose fidelity through
cross-viewpoint embedding fusion on commodity ESP32 hardware.
Research document (docs/research/ruview-multistatic-fidelity-sota-2026.md):
- SOTA analysis of three fidelity levers: bandwidth, carrier frequency, viewpoints
- Multistatic array theory with virtual aperture and TDM sensing protocol
- ESP32 multistatic path ($84 BOM) and Cognitum v1 + RF front end path
- IEEE 802.11bf alignment and forward-compatibility mapping
- RuVector pipeline: all 5 crates mapped to cross-viewpoint operations
- Three-metric acceptance suite: joint error (PCK/OKS), multi-person
separation (MOTA), vital sign sensitivity with Bronze/Silver/Gold tiers
ADR-028 (docs/adr/ADR-028-ruview-sensing-first-rf-mode.md):
- DDD bounded context: ViewpointFusion with MultistaticArray aggregate,
ViewpointEmbedding entity, GeometricDiversityIndex value object
- Cross-viewpoint attention fusion via ruvector-attention with geometric bias
- TDM sensing protocol: 6 nodes, 119 Hz aggregate, 20 Hz per viewpoint
- Coherence-gated environment updates for multi-day stability
- File-level implementation plan across 4 phases (8 new source files)
- ADR interaction map: ADR-012, 014, 016/017, 021, 024, 027
https://claude.ai/code/session_01JBad1xig7AbGdbNiYJALZc
2026-03-02 02:07:31 +00:00
Claude
c707b636bd
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
2026-03-02 01:59:21 +00:00
Claude
25b005a0d6
docs: add RuvSense sensing-first RF mode architecture
...
Research, ADR, and DDD specification for multistatic WiFi DensePose
with coherence-gated tracking and complete ruvector integration.
- docs/research/ruvsense-multistatic-fidelity-architecture.md:
SOTA research covering bandwidth/frequency/viewpoint fidelity levers,
ESP32 multistatic mesh design, coherence gating, AETHER embedding
integration, and full ruvector crate mapping
- docs/adr/ADR-029-ruvsense-multistatic-sensing-mode.md:
Architecture decision for sensing-first RF mode on existing ESP32
silicon. GOAP integration plan (9 actions, 4 phases, 36 cost units).
TDMA schedule for 20 Hz update rate from 4-node mesh.
IEEE 802.11bf forward-compatible design.
- docs/ddd/ruvsense-domain-model.md:
Domain-Driven Design with 3 bounded contexts (Multistatic Sensing,
Coherence, Pose Tracking), aggregate roots, domain events, context
map, anti-corruption layers, and repository interfaces.
Acceptance test: 2 people, 20 Hz, 10 min stable tracks, zero ID swaps,
<30mm torso keypoint jitter.
https://claude.ai/code/session_01QTX772SDsGVSPnaphoNgNY
2026-03-02 00:17:30 +00:00
ruv
08a6d5a7f1
docs: add validation and witness verification instructions to CLAUDE.md
...
- Add Validation & Witness Verification section with 4-step procedure
- Document proof hash regeneration workflow
- List witness bundle contents and key proof artifacts
- Update ADR list (now 28 ADRs including ADR-024, ADR-027, ADR-028)
- Update Pre-Merge Checklist: add proof verification and witness bundle steps
- Update test commands to full workspace (1,031+ tests)
- Set default branch to main
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 16:18:44 -05:00
rUv
322eddbcc3
Merge pull request #71 from ruvnet/adr-028-esp32-capability-audit
...
ADR-028 capability audit: 1,031 tests, proof PASS, witness bundle 7/7
2026-03-01 15:54:26 -05:00
ruv
9c759f26db
docs: add ADR-028 audit overview to README + collapsed section
...
- New collapsed section before Installation linking to witness log,
ADR-028, and bundle generator
- Shows test counts, proof hash, and 3-command verification steps
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 15:54:14 -05:00
ruv
093be1f4b9
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 >
2026-03-01 15:51:38 -05:00
ruv
05430b6a0f
docs: ADR-028 ESP32 capability audit + witness verification log
...
- ADR-028: Full 3-agent parallel audit of ESP32 hardware, signal processing,
neural networks, training pipeline, deployment, and security
- WITNESS-LOG-028: Reproducible 11-step verification procedure with
33-row attestation matrix (30 YES, 1 PARTIAL, 2 NOT MEASURED)
- 1,031 Rust tests passing at audit time (0 failures)
- Documents honest gaps: no on-device ML, no real CSI dataset bundled,
proof hash needs numpy version pin
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 15:47:58 -05:00
ruv
96b01008f7
docs: fix broken README links and add MERIDIAN details section
...
- Fix 5 broken anchor links → direct ADR doc paths (ADR-024, ADR-027, RuVector)
- Add full <details> section for Cross-Environment Generalization (ADR-027)
matching the existing ADR-024 section pattern
- Add Project MERIDIAN to v3.0.0 changelog
- Update training pipeline 8-phase → 10-phase in changelog
- Update test count 542+ → 700+ in changelog
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 12:54:41 -05:00
rUv
38eb93e326
Merge pull request #69 from ruvnet/adr-027-cross-environment-domain-generalization
...
feat: ADR-027 MERIDIAN — Cross-Environment Domain Generalization
2026-03-01 12:49:28 -05:00
ruv
eab364bc51
docs: update user guide with MERIDIAN cross-environment adaptation
...
- Training pipeline: 8 phases → 10 phases (hardware norm + MERIDIAN)
- New section: Cross-Environment Adaptation explaining 10-second calibration
- Updated FAQ: accuracy answer mentions MERIDIAN
- Updated test count: 542+ → 700+
- Updated ADR count: 24 → 27
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 12:16:25 -05:00
ruv
3febf72674
chore: bump all crates to v0.2.0 for MERIDIAN release
...
Workspace version 0.1.0 → 0.2.0. All internal cross-crate
dependencies updated to match.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 12:14:39 -05:00
ruv
8da6767273
fix: harden MERIDIAN modules from code review + security audit
...
- domain.rs: atomic instance counter for unique Linear weight seeds (C3)
- rapid_adapt.rs: adapt() returns Result instead of panicking (C5),
bounded calibration buffer with max_buffer_frames cap (F1-HIGH),
validate lora_rank >= 1 (F10)
- geometry.rs: 24-bit PRNG precision matching f32 mantissa (C2)
- virtual_aug.rs: guard against room_scale=0 division-by-zero (F6)
- signal/lib.rs: re-export AmplitudeStats from hardware_norm (W1)
- train/lib.rs: crate-root re-exports for all MERIDIAN types (W2)
All 201 tests pass (96 unit + 24 integration + 18 subcarrier +
10 metrics + 7 doctests + 105 signal + 10 validation + 1 signal doctest).
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 12:11:56 -05:00
ruv
2d6dc66f7c
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 >
2026-03-01 12:06:09 -05:00
ruv
0a30f7904d
feat: ADR-027 MERIDIAN — all 6 phases implemented (1,858 lines, 72 tests)
...
Phase 1: HardwareNormalizer (hardware_norm.rs, 399 lines, 14 tests)
- Catmull-Rom cubic interpolation: any subcarrier count → canonical 56
- Z-score normalization, phase unwrap + linear detrend
- Hardware detection: ESP32-S3, Intel 5300, Atheros, Generic
Phase 2: DomainFactorizer + GRL (domain.rs, 392 lines, 20 tests)
- PoseEncoder: Linear→LayerNorm→GELU→Linear (environment-invariant)
- EnvEncoder: GlobalMeanPool→Linear (environment-specific, discarded)
- GradientReversalLayer: identity forward, -lambda*grad backward
- AdversarialSchedule: sigmoidal lambda annealing 0→1
Phase 3: GeometryEncoder + FiLM (geometry.rs, 364 lines, 14 tests)
- FourierPositionalEncoding: 3D coords → 64-dim
- DeepSets: permutation-invariant AP position aggregation
- FilmLayer: Feature-wise Linear Modulation for zero-shot deployment
Phase 4: VirtualDomainAugmentor (virtual_aug.rs, 297 lines, 10 tests)
- Room scale, reflection coeff, virtual scatterers, noise injection
- Deterministic Xorshift64 RNG, 4x effective training diversity
Phase 5: RapidAdaptation (rapid_adapt.rs, 255 lines, 7 tests)
- 10-second unsupervised calibration via contrastive TTT + entropy min
- LoRA weight generation without pose labels
Phase 6: CrossDomainEvaluator (eval.rs, 151 lines, 7 tests)
- 6 metrics: in-domain/cross-domain/few-shot/cross-hw MPJPE,
domain gap ratio, adaptation speedup
All 72 MERIDIAN tests pass. Full workspace compiles clean.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 12:03:40 -05:00
ruv
b078190632
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 >
2026-03-01 11:51:32 -05:00
ruv
fdd2b2a486
feat: ADR-027 Project MERIDIAN — Cross-Environment Domain Generalization
...
Deep SOTA research into WiFi sensing domain gap problem (2024-2026).
Proposes 7-phase implementation: hardware normalization, domain-adversarial
training with gradient reversal, geometry-conditioned FiLM inference,
virtual environment augmentation, few-shot rapid adaptation, and
cross-domain evaluation protocol.
Cites 10 papers: PerceptAlign, AdaPose, Person-in-WiFi 3D (CVPR 2024),
DGSense, CAPC, X-Fi (ICLR 2025), AM-FM, LatentCSI, Ganin GRL, FiLM.
Addresses the single biggest deployment blocker: models trained in one
room lose 40-70% accuracy in another room. MERIDIAN adds ~12K params
(67K total, still fits ESP32) for cross-layout + cross-hardware
generalization with zero-shot and few-shot adaptation paths.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 11:49:16 -05:00
ruv
d8fd5f4eba
docs: add How It Works section, fix ToC, update changelog to v3.0.0, add crates.io badge
...
- Add "How It Works" explainer between Key Features and Use Cases
- Add Self-Learning WiFi AI and AI Backbone to Table of Contents
- Update Key Features entry in ToC to match new sub-sections
- Fix changelog: v2.3.0/v2.2.0/v2.1.0 → v3.0.0/v2.0.0 (matches CHANGELOG.md)
- Add crates.io badge for wifi-densepose-ruvector
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 11:37:25 -05:00
ruv
9e483e2c0f
docs: break Key Features into three titled tables with descriptions
...
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 11:34:44 -05:00
ruv
f89b81cdfa
docs: organize Key Features into Sensing, Intelligence, and Performance groups
...
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 11:33:26 -05:00
ruv
86e8ccd3d7
docs: add Self-Learning and AI Signal Processing to Key Features table
...
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 11:31:48 -05:00
ruv
1f9dc60da4
docs: add Pre-Merge Checklist to CLAUDE.md
...
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 11:30:03 -05:00
ruv
342e5cf3f1
docs: add pre-merge checklist and remove SWARM_CONFIG.md
2026-03-01 11:27:47 -05:00
ruv
4f7ad6d2e6
docs: fix model size inconsistency and add AI Backbone cross-reference in ADR-024 section
...
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 11:25:35 -05:00
ruv
aaec699223
docs: move AI Backbone into collapsed section under Models & Training
...
- Remove RuVector AI section from Rust Crates details block
- Add as own collapsed <details> in Models & Training with anchor link
- Add cross-reference from crates table to new section
- Link to issue #67 for deep dive with code examples
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 11:23:15 -05:00
ruv
72f031ae80
docs: rewrite RuVector section with AI-focused framing
...
Replace dry API reference table with AI pipeline diagram, plain-language
capability descriptions, and "what it replaces" comparisons. Reframes
graph algorithms and sparse solvers as learned, self-optimizing AI
components that feed the DensePose neural network.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 11:21:02 -05:00
rUv
1c815bbfd5
Merge pull request #66 from ruvnet/claude/analyze-repo-structure-aOtgs
...
Add survivor tracking and RuVector integration (ADR-026, ADR-017)
2026-03-01 11:02:53 -05:00
ruv
00530aee3a
merge: resolve README conflict (26 ADRs includes ADR-025 + ADR-026)
...
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 11:02:18 -05:00
ruv
6a2ef11035
docs: cross-platform support in README, changelog, user guide
...
- README: update hardware table, crate description, scan layer heading
for macOS + Linux support, bump ADR count to 25
- CHANGELOG: add cross-platform adapters and byte counter fix
- User guide: add macOS CoreWLAN and Linux iw data source sections
- CLAUDE.md: add pre-merge checklist (8 items)
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 11:00:46 -05:00
rUv
e446966340
Merge pull request #64 from zqyhimself/feature/macos-corewlan
...
Thank you for the contribution! 🎉
2026-03-01 10:59:11 -05:00
ruv
e2320e8e4b
feat(wifiscan): add Rust macOS + Linux adapters, fix Python byte counters
...
- Add MacosCoreWlanScanner (macOS): CoreWLAN Swift helper adapter with
synthetic BSSID generation via FNV-1a hash for redacted MACs (ADR-025)
- Add LinuxIwScanner (Linux): parses `iw dev <iface> scan` output with
freq-to-channel conversion and BSS stanza parsing
- Both adapters produce Vec<BssidObservation> compatible with the
existing WindowsWifiPipeline 8-stage processing
- Platform-gate modules with #[cfg(target_os)] so each adapter only
compiles on its target OS
- Fix Python MacosWifiCollector: remove synthetic byte counters that
produced misleading tx_bytes/rx_bytes data (set to 0)
- Add compiled Swift binary (mac_wifi) to .gitignore
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 10:51:45 -05:00
Claude
ed3261fbcb
feat(ruvector): implement ADR-017 as wifi-densepose-ruvector crate + fix MAT warnings
...
New crate `wifi-densepose-ruvector` implements all 7 ruvector v2.0.4
integration points from ADR-017 (signal processing + MAT disaster detection):
signal::subcarrier — mincut_subcarrier_partition (ruvector-mincut)
signal::spectrogram — gate_spectrogram (ruvector-attn-mincut)
signal::bvp — attention_weighted_bvp (ruvector-attention)
signal::fresnel — solve_fresnel_geometry (ruvector-solver)
mat::triangulation — solve_triangulation TDoA (ruvector-solver)
mat::breathing — CompressedBreathingBuffer 50-75% mem reduction (ruvector-temporal-tensor)
mat::heartbeat — CompressedHeartbeatSpectrogram tiered compression (ruvector-temporal-tensor)
16 tests, 0 compilation errors. Workspace grows from 14 → 15 crates.
MAT crate: fix all 54 warnings (0 remaining in wifi-densepose-mat):
- Remove unused imports (Arc, HashMap, RwLock, mpsc, Mutex, ConfidenceScore, etc.)
- Prefix unused variables with _ (timestamp_low, agc, perm)
- Add #![allow(unexpected_cfgs)] for onnx feature gates in ML files
- Move onnx-conditional imports under #[cfg(feature = "onnx")] guards
README: update crate count 14→15, ADR count 24→26, add ruvector crate
table with 7-row integration summary.
Total tests: 939 → 955 (16 new). All passing, 0 regressions.
https://claude.ai/code/session_0164UZu6rG6gA15HmVyLZAmU
2026-03-01 15:50:05 +00:00
zqyhimself
09f01d5ca6
feat(sensing): native macOS CoreWLAN WiFi sensing adapter
...
Add native macOS LiDAR / WiFi sensing support via CoreWLAN:
- mac_wifi.swift: Swift helper to poll RSSI/Noise at 10Hz
- MacosWifiCollector: Python adapter for the sensing pipeline
- Auto-detect Darwin platform in ws_server.py
2026-03-01 21:06:17 +08:00
Claude
838451e014
feat(mat/tracking): complete SurvivorTracker aggregate root — all tests green
...
Completes ADR-026 implementation. Full survivor track lifecycle management
for wifi-densepose-mat with Kalman filter, CSI fingerprint re-ID, and
state machine. 162 tests pass, 0 failures.
tracking/tracker.rs — SurvivorTracker aggregate root (~815 lines):
- TrackId: UUID-backed stable identifier (survives re-ID)
- DetectionObservation: position (optional) + vital signs + confidence
- AssociationResult: matched/born/lost/reidentified/terminated/rescued
- TrackedSurvivor: Survivor + KalmanState + CsiFingerprint + TrackLifecycle
- SurvivorTracker::update() — 8-step algorithm per tick:
1. Kalman predict for all non-terminal tracks
2. Mahalanobis-gated cost matrix
3. Hungarian assignment (n ≤ 10) with greedy fallback
4. Fingerprint re-ID against Lost tracks
5. Birth new Tentative tracks from unmatched observations
6. Kalman update + vitals + fingerprint EMA for matched tracks
7. Lifecycle hit/miss + expiry with transition recording
8. Cleanup Terminated tracks older than 60s
Fix: birth observation counts as first hit so birth_hits_required=2
confirms after exactly one additional matching tick.
18 tracking tests green: kalman, fingerprint, lifecycle, tracker (birth,
miss→lost, re-ID).
https://claude.ai/code/session_0164UZu6rG6gA15HmVyLZAmU
2026-03-01 08:03:30 +00:00
Claude
fa4927ddbc
feat(mat/tracking): add fingerprint re-ID + lib.rs integration (WIP)
...
- tracking/fingerprint.rs: CsiFingerprint for CSI-based survivor re-ID
across signal gaps. Weighted normalized Euclidean distance on breathing
rate, breathing amplitude, heartbeat rate, and location hint.
EMA update (α=0.3) blends new observations into the fingerprint.
- lib.rs: fully integrated tracking bounded context
- pub mod tracking added
- TrackingEvent added to domain::events re-exports
- pub use tracking::{SurvivorTracker, TrackerConfig, TrackId, ...}
- DisasterResponse.tracker field + with_defaults() init
- tracker()/tracker_mut() public accessors
- prelude updated with tracking types
Remaining: tracking/tracker.rs (SurvivorTracker aggregate root)
https://claude.ai/code/session_0164UZu6rG6gA15HmVyLZAmU
2026-03-01 07:54:28 +00:00
Claude
01d42ad73f
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
2026-03-01 07:53:28 +00:00