Calibration qualification can accept an always-absent model without an occupied sensitivity control
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 94.4k
- Forks
- 12.5k
- Avg merge
- 21h 27m
- Merged PRs (30d)
- 43
Description
A completed empty-room calibration can pass startup-baseline promotion while failing every known-occupied control. The promotion result therefore cannot establish occupancy qualification.
MEASURED on a Mac Catalyst app with its bundled arm64 sensing-server at dbf47886289b344fff8c399d5ff17c4cdf3b4da3 (PR #1936, based on #1903), four ESP32-C6 sources, 2026-09-16:
- Empty capture finalized with 19 baseline eigenvalues, active 256-subcarrier grid, no missing contributors.
- Learned residual threshold: 47.9984.
- Bootstrap promotion: 12/12 samples empty; baseline stored on disk.
- Subsequent operator-labelled phases: sitting 0/865 calibrated-present, walking 0/927, sitting 0/786. Raw heuristic reported presence; raw output is not ground truth.
The operator-labelled walking control falsifies sensitivity. A detector that always returns zero trivially satisfies an empty-only check. Disturbed-baseline threshold inflation is a plausible mechanism addressed separately by #1917; this issue concerns the missing qualification control regardless of the mechanism.
Important contract distinction: stored bootstrap models intentionally have negative-only authority. This is not a request to grant them positive presence or vitals authority. Keep bootstrap storage/background checks separate from a claim that the explicit field calibration is qualified for occupancy.
Suggested acceptance:
- An always-absent model fails occupancy qualification against a known-occupied, operator-labelled held-out phase.
- Pair sensitivity with a sufficiently long independent empty phase and report sample durations, false alarms and missed detections separately.
- Match the exact boot/session/model/binding identity and require fresh CSI from the radio actually scored; refuse cached/stale evidence.
- The Mac UI must distinguish stored bootstrap baseline from occupancy-qualified field calibration.
- Include real app/server contract fixtures; schema literals and mocked frames alone do not establish producer/consumer compatibility.
Related: #1917, #1936, #1940. No production/fleet accuracy claim is made from this installation.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the calibration qualification and bootstrap-promotion path across the sensing server and Mac Catalyst UI, then inspect the app/server contract fixtures and the related issues #1917, #1936, and #1940. Add an operator-labelled held-out occupied phase alongside an independent empty phase, verify fresh boot/session/model/binding identity, and confirm the UI distinguishes stored bootstrap baselines from occupancy-qualified calibration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design, desktop, embedded-iot, testing
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100