feat(adr-017): Complete all 7 ruvector integrations across signal and MAT crates

All ADR-017 integration points now implemented:

--- wifi-densepose-signal ---

1. subcarrier_selection.rs — ruvector-mincut: mincut_subcarrier_partition
   uses DynamicMinCut to dynamically partition sensitive/insensitive
   subcarriers via O(n^1.5 log n) graph bisection. Tests: 8 passed.

2. spectrogram.rs — ruvector-attn-mincut: gate_spectrogram applies
   self-attention (Q=K=V, configurable lambda) over STFT time frames
   to suppress noise/multipath interference. Tests: 2 added.

3. bvp.rs — ruvector-attention: attention_weighted_bvp uses
   ScaledDotProductAttention for sensitivity-weighted BVP aggregation
   across subcarriers (vs uniform sum). Tests: 2 added.

4. fresnel.rs — ruvector-solver: solve_fresnel_geometry estimates
   unknown TX-body-RX geometry from multi-subcarrier Fresnel observations
   via NeumannSolver. Regularization scaled to inv_w_sq_sum * 0.5 for
   guaranteed convergence (spectral radius = 0.667). Tests: 10 passed.

--- wifi-densepose-mat ---

5. localization/triangulation.rs — ruvector-solver: solve_tdoa_triangulation
   solves multi-AP TDoA positioning via 2×2 NeumannSolver normal equations
   (Cramer's rule fallback). O(1) in AP count. Tests: 2 added.

6. detection/breathing.rs — ruvector-temporal-tensor: CompressedBreathingBuffer
   uses TemporalTensorCompressor with tiered quantization for 50-75%
   CSI amplitude memory reduction (13.4→3.4-6.7 MB/zone). Tests: 2 added.

7. detection/heartbeat.rs — ruvector-temporal-tensor: CompressedHeartbeatSpectrogram
   stores per-bin TemporalTensorCompressor for micro-Doppler spectrograms
   with hot/warm/cold tiers. Tests: 1 added.

Cargo.toml: ruvector deps optional in MAT crate (feature = "ruvector"),
enabled by default. Prevents --no-default-features regressions.
Pre-existing MAT --no-default-features failures are unrelated (api/dto.rs
serde gating, pre-existed before this PR).

Test summary: 144 MAT lib tests + 91 signal tests = all passed.
cargo check wifi-densepose-mat (default features): 0 errors.
cargo check wifi-densepose-signal: 0 errors.

https://claude.ai/code/session_01BSBAQJ34SLkiJy4A8SoiL4
This commit is contained in:
Claude
2026-02-28 16:22:39 +00:00
parent cca91bd875
commit 18170d7daf
11 changed files with 446 additions and 19 deletions

View File

@@ -3,20 +3,20 @@
"startedAt": "2026-02-28T15:54:19.353Z",
"workers": {
"map": {
"runCount": 48,
"successCount": 48,
"runCount": 49,
"successCount": 49,
"failureCount": 0,
"averageDurationMs": 1.2708333333333333,
"lastRun": "2026-02-28T15:58:19.175Z",
"nextRun": "2026-02-28T16:13:19.176Z",
"averageDurationMs": 1.2857142857142858,
"lastRun": "2026-02-28T16:13:19.194Z",
"nextRun": "2026-02-28T16:28:19.195Z",
"isRunning": false
},
"audit": {
"runCount": 43,
"runCount": 44,
"successCount": 0,
"failureCount": 43,
"failureCount": 44,
"averageDurationMs": 0,
"lastRun": "2026-02-28T16:05:19.081Z",
"lastRun": "2026-02-28T16:20:19.184Z",
"nextRun": "2026-02-28T16:15:19.082Z",
"isRunning": false
},
@@ -27,7 +27,7 @@
"averageDurationMs": 0,
"lastRun": "2026-02-28T16:03:19.360Z",
"nextRun": "2026-02-28T16:18:19.361Z",
"isRunning": false
"isRunning": true
},
"consolidate": {
"runCount": 23,
@@ -131,5 +131,5 @@
}
]
},
"savedAt": "2026-02-28T16:08:19.369Z"
"savedAt": "2026-02-28T16:20:19.184Z"
}

View File

@@ -1,5 +1,5 @@
{
"timestamp": "2026-02-28T15:58:19.170Z",
"timestamp": "2026-02-28T16:13:19.193Z",
"projectRoot": "/home/user/wifi-densepose",
"structure": {
"hasPackageJson": false,
@@ -7,5 +7,5 @@
"hasClaudeConfig": true,
"hasClaudeFlow": true
},
"scannedAt": 1772294299171
"scannedAt": 1772295199193
}