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
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
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