Optimization:
- Cache mean phase per frame in ring buffer for O(1) Doppler access
- Sliding window (last 64 frames) instead of full history traversal
- Doppler FFT: 253.9us -> 44.9us per frame (5.7x faster)
- Full pipeline: 719.2us -> 254.2us per frame (2.8x faster)
Trust kill switch:
- ./verify: one-command proof replay with SHA-256 hash verification
- Enhanced verify.py with source provenance, feature inspection, --audit
- Makefile with verify/verify-verbose/verify-audit targets
- New hash: 0b82bd45e836e5a99db0494cda7795832dda0bb0a88dac65a2bab0e949950ee0
Benchmark fix:
- NN inference_bench.rs uses MockBackend instead of calling forward()
which now correctly errors when no weights are loaded
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
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
- 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