docs(adr): Add ADR-017 — ruvector integration for signal and MAT crates
ADR-017 documents 7 concrete integration points across wifi-densepose-signal (ADR-014 SOTA algorithms) and wifi-densepose-mat (ADR-001 disaster detection): Signal crate opportunities: 1. subcarrier_selection.rs → ruvector-mincut DynamicMinCut: dynamic O(n^1.5 log n) sensitive/insensitive subcarrier partitioning (vs static O(n log n) sort) 2. spectrogram.rs → ruvector-attn-mincut: self-attention gating over STFT time frames to suppress noise and multipath interference 3. bvp.rs → ruvector-attention: ScaledDotProductAttention for sensitivity-weighted BVP aggregation across subcarriers (replaces uniform sum) 4. fresnel.rs → ruvector-solver: NeumannSolver estimates unknown TX-body-RX geometry from multi-subcarrier Fresnel observations MAT crate opportunities: 5. triangulation.rs → ruvector-solver: O(1) 2×2 Neumann system for multi-AP TDoA survivor localization (vs O(N^3) dense Gaussian elimination) 6. breathing.rs → ruvector-temporal-tensor: tiered compression reduces 13.4 MB/zone breathing buffer to 3.4–6.7 MB (50–75% less) 7. heartbeat.rs → ruvector-temporal-tensor: per-frequency-bin tiered storage for micro-Doppler spectrograms with hot/warm/cold access tiers Also fixes ADR-002 dependency strategy: replaces non-existent crate names (ruvector-core, ruvector-data-framework, ruvector-consensus, ruvector-wasm at "0.1") with the verified published v2.0.4 crates per ADR-016. https://claude.ai/code/session_01BSBAQJ34SLkiJy4A8SoiL4
This commit is contained in:
@@ -128,29 +128,39 @@ crates/wifi-densepose-rvf/
|
||||
|
||||
### Dependency Strategy
|
||||
|
||||
**Verified published crates** (crates.io, all at v2.0.4 as of 2026-02-28):
|
||||
|
||||
```toml
|
||||
# In Cargo.toml workspace dependencies
|
||||
[workspace.dependencies]
|
||||
ruvector-core = { version = "0.1", features = ["hnsw", "sona", "gnn"] }
|
||||
ruvector-data-framework = { version = "0.1", features = ["rvf", "witness", "crypto"] }
|
||||
ruvector-consensus = { version = "0.1", features = ["raft"] }
|
||||
ruvector-wasm = { version = "0.1", features = ["edge-runtime"] }
|
||||
ruvector-mincut = "2.0.4" # Dynamic min-cut, O(n^1.5 log n) graph partitioning
|
||||
ruvector-attn-mincut = "2.0.4" # Attention + mincut gating in one pass
|
||||
ruvector-temporal-tensor = "2.0.4" # Tiered temporal compression (50-75% memory reduction)
|
||||
ruvector-solver = "2.0.4" # NeumannSolver — O(√n) Neumann series convergence
|
||||
ruvector-attention = "2.0.4" # ScaledDotProductAttention
|
||||
```
|
||||
|
||||
Feature flags control which RuVector capabilities are compiled in:
|
||||
> **Note (ADR-017 correction):** Earlier versions of this ADR specified
|
||||
> `ruvector-core`, `ruvector-data-framework`, `ruvector-consensus`, and
|
||||
> `ruvector-wasm` at version `"0.1"`. These crates do not exist at crates.io.
|
||||
> The five crates above are the verified published API surface at v2.0.4.
|
||||
> Capabilities such as RVF cognitive containers (ADR-003), HNSW search (ADR-004),
|
||||
> SONA (ADR-005), GNN patterns (ADR-006), post-quantum crypto (ADR-007),
|
||||
> Raft consensus (ADR-008), and WASM runtime (ADR-009) are internal capabilities
|
||||
> accessible through these five crates or remain as forward-looking architecture.
|
||||
> See ADR-017 for the corrected integration map.
|
||||
|
||||
Feature flags control which ruvector capabilities are compiled in:
|
||||
|
||||
```toml
|
||||
[features]
|
||||
default = ["rvf-store", "hnsw-search"]
|
||||
rvf-store = ["ruvector-data-framework/rvf"]
|
||||
hnsw-search = ["ruvector-core/hnsw"]
|
||||
sona-learning = ["ruvector-core/sona"]
|
||||
gnn-patterns = ["ruvector-core/gnn"]
|
||||
post-quantum = ["ruvector-data-framework/crypto"]
|
||||
witness-chains = ["ruvector-data-framework/witness"]
|
||||
raft-consensus = ["ruvector-consensus/raft"]
|
||||
wasm-edge = ["ruvector-wasm/edge-runtime"]
|
||||
full = ["rvf-store", "hnsw-search", "sona-learning", "gnn-patterns", "post-quantum", "witness-chains", "raft-consensus", "wasm-edge"]
|
||||
default = ["mincut-matching", "solver-interpolation"]
|
||||
mincut-matching = ["ruvector-mincut"]
|
||||
attn-mincut = ["ruvector-attn-mincut"]
|
||||
temporal-compress = ["ruvector-temporal-tensor"]
|
||||
solver-interpolation = ["ruvector-solver"]
|
||||
attention = ["ruvector-attention"]
|
||||
full = ["mincut-matching", "attn-mincut", "temporal-compress", "solver-interpolation", "attention"]
|
||||
```
|
||||
|
||||
## Consequences
|
||||
|
||||
Reference in New Issue
Block a user