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
rUv
5124a07965
refactor(rust-port): remove unused once-cell crate ( #58 )
...
refactor(rust-port): remove unused `once-cell` crate
v0.1.0-esp32
2026-03-01 02:36:51 -05:00
Tuan Tran
0723af8f8a
update cargo.lock
2026-03-01 14:30:12 +07:00
Tuan Tran
504875e608
remove unused once-cell package
2026-03-01 14:26:29 +07:00
ruv
ab76925864
docs: Comprehensive CHANGELOG update covering v1.0.0 through v3.0.0
...
Rewrites CHANGELOG.md with detailed entries for every significant
feature, fix, and security patch across all three major versions:
- v3.0.0: AETHER contrastive embedding model (ADR-024), Docker Hub
images, UI port auto-detection fix, Mermaid architecture diagrams,
33 use cases across 4 verticals
- v2.0.0: Rust sensing server, DensePose training pipeline (ADR-023),
RuVector v2.0.4 integration (ADR-016/017), ESP32-S3 firmware
(ADR-018), SOTA signal processing (ADR-014), vital sign detection
(ADR-021), WiFi-Mat disaster module, 7 security patches, Python
sensing pipeline, Three.js visualization
- v1.1.0: Python CSI system, API services, UI dark mode
- v1.0.0: Initial release with core pose estimation
All entries reference specific commit hashes for traceability.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 02:20:52 -05:00
ruv
a6382fb026
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.
2026-03-01 02:15:44 -05:00
ruv
3b72f35306
fix: UI auto-detects server port from page origin ( #55 )
...
The UI had hardcoded localhost:8080 for HTTP and localhost:8765 for
WebSocket, causing "Backend unavailable" when served from Docker
(port 3000) or any non-default port.
Changes:
- api.config.js: BASE_URL now uses window.location.origin instead
of hardcoded localhost:8080
- api.config.js: buildWsUrl() uses window.location.host instead of
hardcoded localhost:8080
- sensing.service.js: WebSocket URL derived from page origin instead
of hardcoded localhost:8765
- main.rs: Added /ws/sensing route to the HTTP server so WebSocket
and REST are reachable on a single port
Fixes #55
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 02:09:23 -05:00
ruv
a0b5506b8c
docs: rename embedding section to Self-Learning WiFi AI
...
Reframe the ADR-024 section header to emphasize AI self-learning and
adaptive optimization rather than technical CSI embedding terminology.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 01:47:21 -05:00
rUv
9bbe95648c
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 #50
2026-03-01 01:44:38 -05:00
ruv
44b9c30dbc
fix: Docker port mismatch — server now binds 3000/3001 as documented
...
The sensing server defaults to HTTP :8080 and WS :8765, but Docker
exposes :3000/:3001. Added --http-port 3000 --ws-port 3001 to CMD
in both Dockerfile.rust and docker-compose.yml.
Verified both images build and run:
- Rust: 133 MB, all endpoints responding (health, sensing/latest,
vital-signs, pose/current, info, model/info, UI)
- Python: 569 MB, all packages importable (websockets, fastapi)
- RVF file: 13 KB, valid RVFS magic bytes
Also fixed README Quick Start endpoints to match actual routes:
- /api/v1/health → /health
- /api/v1/sensing → /api/v1/sensing/latest
- Added /api/v1/pose/current and /api/v1/info examples
- Added port mapping note for Docker vs local dev
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 00:56:41 -05:00
ruv
50f0fc955b
docs: Replace ASCII architecture with Mermaid diagrams
...
Replace the single ASCII box diagram with 3 styled Mermaid diagrams:
1. End-to-End Pipeline — full data flow from WiFi routers through
signal processing (6 stages with ruvector crate labels), neural
pipeline (graph transformer + SONA), vital signs, to output layer
(REST, WebSocket, Analytics, UI). Dark theme with color-coded
subsystem groups.
2. Signal Processing Detail — zoomed-in CSI cleanup pipeline showing
conjugate multiply, phase unwrap, Hampel filter, min-cut partition,
attention gate, STFT, Fresnel, and BVP stages.
3. Deployment Topology — ESP32 mesh (edge) → Rust sensing server
(3 ports) → clients (browser, mobile, dashboard, IoT).
Component table expanded from 7 to 11 entries with crate/module
column linking each component to its source.
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 00:48:57 -05:00
ruv
0afd9c5434
docs: Expand Use Cases into visible intro + 4 collapsed verticals
...
Restructure Use Cases & Applications as a visible section with:
- Intro paragraph + scaling note (always visible)
- "Why WiFi wins" comparison table vs cameras/PIR (always visible)
- 4 collapsed tiers: Everyday (8 use cases), Specialized (9),
Robotics & Industrial (8, new), Extreme (8)
- Each row now includes a Key Metric column
- New robotics section: cobots, AMR navigation, android spatial
awareness, manufacturing, construction, agricultural, drones,
clean rooms
Co-Authored-By: claude-flow <ruv@ruv.net >
2026-03-01 00:45:21 -05:00