Pace's Problem #3 ("threshold=1.0 means different things on different devices") solved by normalizing the runtime CV against the empty-room baseline CV measured during calibration. norm_cv = current_cv / baseline_cv gates: norm_cv ≥ 3.0 → present_moving norm_cv ≥ 6.0 → active Baseline CV loaded per-node from data/baseline.json (full_broadband_cv_pct). When no calibration loaded, falls back to absolute gates (0.10 / 0.22) that were deployment-tuned earlier — keeps backwards compatibility. Both per-node `amp_node_level` and global `amp_classify_from_latest` use the same normalization. On the operator's deployment with baseline CV ~4 %, the universal 3×/6× gates map to ~12 %/24 % absolute — same numbers the hard-coded thresholds had, but now any-room-portable. |
||
|---|---|---|
| .. | ||
| .claude-flow | ||
| crates | ||
| data | ||
| docs | ||
| examples | ||
| patches/ruvector-crv | ||
| Cargo.lock | ||
| Cargo.toml | ||