v2629
ruvnet/RuViewv2629Sep 9, 2026by github-actions[bot]
AI Summary
Fixes a sensing-server bug where physically implausible RSSI sentinel values were incorrectly updating node history and mean RSSI calculations.
Key Highlights
- Fixes RSSI poisoning issue caused by edge-vitals packets without valid flags.
- Adds an `is_plausible_rssi()` guard to filter out invalid values like -1 or -2 dBm.
- Ensures implausible readings fall back to the node's last known-good reading.
- Mirrors the plausibility-filter pattern already present in `update_csi_fps_ema()`.
Full Release Notes
Automated release from CI pipeline **Changes:** fix(sensing-server): don't let edge-vitals sentinel RSSI poison mean_rssi (#1882) The ESP32 edge-vitals packet (0xC511_0002) carries a raw i8 RSSI byte with no "valid" flag. When the edge pipeline hasn't sampled a real reading yet, it has been observed sending near-zero sentinel values (-1, -2 dBm) that are physically implausible for a WiFi link. These were pushed straight into the node's rssi_history and the room's fused mean_rssi, producing a one-tick reading of ~-2 dBm on node 3 while its own CSI path simultaneously showed a real ~-50 dBm signal. Add an is_plausible_rssi() guard (mirroring the existing update_csi_fps_ema() plausibility-filter pattern) so an implausible RSSI falls back to the node's last known-good reading instead of overwriting it. **Docker Image:** `ghcr.io/ruvnet/RuView:00a42d7cda32cb742206593d8fb2f854db41a19e`