mirror of
https://github.com/ruvnet/RuView.git
synced 2026-10-22 06:32:35 -05:00
--privacy-mode was declared in the MQTT arg group and read only by the MQTT publisher, so /api/v1/sensing/latest, /api/v1/pose/current, the /ws/sensing and /api/v1/stream/pose streams and recordings kept serving pose keypoints (and heart/breathing rate when vitals are published). - Move --privacy-mode (env RUVIEW_PRIVACY_MODE) out of MqttArgs to a top-level server flag. Spelling and env var are unchanged. The MQTT config takes its value from the server flag. - Add privacy_filter: one key filter for vital_signs, HR/BR leaves, enhanced_breathing, keypoints, pose_keypoints and joints_m. - REST: middleware strips those keys from every JSON response on the HTTP and WS ports. Unparseable JSON is withheld with a 500. - WebSocket: /ws/sensing frames and /api/v1/stream/pose messages are filtered; the pose physics assessment is withheld. - /api/v1/pose/current?view=both|refined returns 403 privacy_mode. - Recordings write filtered frames. - Default (flag off) behaviour is unchanged; the middleware is a no-op. Fixes #2094 Co-Authored-By: claude-flow <ruv@ruv.net>