The configure_csi_collection method was still referencing the old
mock_data_generator dict directly instead of delegating to the
MockCSIGenerator instance from the testing module. This completes the
ADR-011 mock isolation by ensuring all mock CSI configuration flows
through v1/src/testing/mock_csi_generator.py.
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
- .github/workflows/verify-pipeline.yml: CI that verifies pipeline
determinism and checks for np.random in production code
- ui/components/body-model.js: Three.js 3D human body model with
24 DensePose body parts mapped to 3D geometry
- v1/requirements-lock.txt: Minimal pinned dependencies for verification
- v1/src/api/dependencies.py: Fix mock auth returns with proper errors
- v1/src/core/router_interface.py: Additional mock mode cleanup
- v1/src/services/pose_service.py: Further mock elimination in service
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
Commodity Sensing Module (ADR-013):
- sensing/rssi_collector.py: Real Linux WiFi RSSI collection from
/proc/net/wireless and iw commands, with SimulatedCollector for testing
- sensing/feature_extractor.py: FFT-based spectral analysis, CUSUM
change-point detection, breathing/motion band power extraction
- sensing/classifier.py: Rule-based presence/motion classification
with confidence scoring and multi-receiver agreement
- sensing/backend.py: Common SensingBackend protocol with honest
capability reporting (PRESENCE + MOTION only for commodity)
Proof of Reality Bundle (ADR-011):
- data/proof/generate_reference_signal.py: Deterministic synthetic CSI
with known breathing (0.3 Hz) and walking (1.2 Hz) signals
- data/proof/sample_csi_data.json: Generated reference signal
- data/proof/verify.py: One-command pipeline verification with SHA-256
- data/proof/expected_features.sha256: Expected output hash
Three.js Visualization:
- ui/components/scene.js: 3D scene setup with OrbitControls
Mock Isolation:
- testing/mock_pose_generator.py: Mock pose generation moved out of
production pose_service.py
- services/pose_service.py: Cleaned mock paths
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
- core/router_interface.py: Replace placeholder _collect_real_csi_data()
with explicit RuntimeError directing users to hardware setup docs
- hardware/router_interface.py: Replace np.random.rand() in
_parse_csi_response() with RouterConnectionError requiring real parser
- testing/: New isolated module for mock data generation (moved out of
production code paths per ADR-011)
- sensing/: Initialize commodity sensing module (ADR-013)
No production code path returns random data. Mock mode requires explicit
opt-in via WIFI_DENSEPOSE_MOCK=true environment variable.
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
- csi_processor.py: Replace np.random.rand(10) Doppler placeholder with
real temporal phase-difference FFT extraction from CSI history buffer.
Returns zeros (not random) when insufficient history frames available.
- csi_extractor.py: Replace np.random.rand() fallbacks in ESP32 and
Atheros parsers with proper data parsing (ESP32) and explicit error
raising (Atheros). Add CSIExtractionError for clear failure reporting
instead of silent random data substitution.
These are the two most critical mock eliminations identified in ADR-011.
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714