Conversation
|
Independent latest-head review at a4e8f0c: no actionable findings. Reviewer checked lifecycle, bounds, privacy, BlueR API semantics and evidence wording; independently passed all 15 probe tests. Native CI and hardware gates remain pending. |
Greptile SummarySummaryThis change adds an opt-in Linux BLE verifier that checks a probe response and sends a receipt. One blocking issue remains: verifier cleanup can disconnect a BLE connection established by another local client. Confidence Score: 4/5Not merge-safe: the verifier can terminate another local client's active BLE session and must be corrected before merging. One confirmed blocking functional issue remains. Files Needing Attention: tools/linux-ble-probe/src/verify.rs
What T-Rex did
Prompt To Fix All With AI### Issue 1
tools/linux-ble-probe/src/verify.rs:167-172
**Disconnects another client**
The initial connection-state check does not establish ownership. Another local client can connect after that check and before this verifier attempts its own connection; if the verifier connection then fails, this device-wide `Disconnect` tears down the other client's active BLE session. Only disconnect a connection this invocation established as its own.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Reviews (1): Last reviewed commit: "feat: add public Linux probe receipt ver..." | Re-trigger Greptile |
| if !matches!( | ||
| timeout(Duration::from_secs(5), device.disconnect()).await, | ||
| Ok(Ok(())) | ||
| ) { | ||
| return Err("Verifier cleanup was not confirmed; check the selected test connection."); | ||
| } |
There was a problem hiding this comment.
The initial connection-state check does not establish ownership. Another local client can connect after that check and before this verifier attempts its own connection; if the verifier connection then fails, this device-wide Disconnect tears down the other client's active BLE session. Only disconnect a connection this invocation established as its own.
Artifacts
- The focused simulation asserts the production call ordering and models the interleaving where cleanup disconnects another local client's connection.
- The baseline run shows cleanup disconnecting a connection established by the verifier itself.
- The interleaved run shows another client connecting after the initial check and being disconnected by verifier cleanup.
- The recorded focused test output shows the verifier frame tests pass while no ownership-cleanup behavior is covered.
Ran code and verified through T-Rex
Prompt To Fix With AI
This is a comment left during a code review.
Path: tools/linux-ble-probe/src/verify.rs
Line: 167-172
Comment:
**Disconnects another client**
The initial connection-state check does not establish ownership. Another local client can connect after that check and before this verifier attempts its own connection; if the verifier connection then fails, this device-wide `Disconnect` tears down the other client's active BLE session. Only disconnect a connection this invocation established as its own.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
Closes #718
Summary
Add opt-in --verify mode for a separate Linux adapter/host: validate probe status, receive and reassemble only the fixed public response, then send a fixed harmless receipt. Server counts exact receipts without retaining contents. No pairing, credentials, input, radio-power changes or arbitrary writes. Setup/exchange/cleanup are bounded and already-connected targets rejected. Record S26 evidence and remaining linux-support sequence.
Validation
Remaining gates
User cannot currently provide a second adapter/host and independent second client. Physical round-trip and subscriber isolation remain unqualified. Fixed receipts are spoofable cooperative markers, not authentication or isolation proofs. Android notification receipt remains a separate test. Secure pairing must remain disabled until the security gate passes. Further runtime/storage development can proceed with fakes and disabled capabilities. PR targets linux-support; no merge or release performed.