Revert "feat: BLE Monitoring" (#153)#259
Conversation
There was a problem hiding this comment.
Pull request overview
Reverts the previously introduced BLE monitoring feature across DevFlow (agent, driver, MCP tools, tests, and specs) to prevent macOS app startup crashes caused by CoreBluetooth TCC violations when host apps lack NSBluetoothAlwaysUsageDescription.
Changes:
- Removed BLE monitor implementation and all BLE HTTP/WebSocket endpoints from
Microsoft.Maui.DevFlow.Agent.Core(and platform-specific agent overrides). - Removed BLE APIs from the public
Microsoft.Maui.DevFlow.Driversurface and unregistered BLE MCP tools. - Deleted BLE-related unit tests and removed BLE sections from OpenAPI/AsyncAPI and JSON schemas.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/DevFlow/Microsoft.Maui.DevFlow.Tests/WebViewDriverTests.cs | Removes BLE WebSocket URL unit tests tied to the removed driver API. |
| src/DevFlow/Microsoft.Maui.DevFlow.Tests/BleMonitorTests.cs | Deletes BLE monitor/endpoint/WebSocket coverage tests. |
| src/DevFlow/Microsoft.Maui.DevFlow.Driver/AgentClient.cs | Removes BLE client methods; keeps network WebSocket URL generation. |
| src/DevFlow/Microsoft.Maui.DevFlow.Agent/DevFlowAgentService.cs | Removes platform BLE monitor creation override (no native BLE hookup). |
| src/DevFlow/Microsoft.Maui.DevFlow.Agent/Ble/WindowsBleMonitor.cs | Deletes Windows BLE monitor implementation. |
| src/DevFlow/Microsoft.Maui.DevFlow.Agent/Ble/MacOsBleMonitor.cs | Deletes macOS BLE monitor implementation that initialized CBCentralManager. |
| src/DevFlow/Microsoft.Maui.DevFlow.Agent/Ble/AppleBleMonitor.cs | Deletes iOS/Mac Catalyst BLE monitor implementation. |
| src/DevFlow/Microsoft.Maui.DevFlow.Agent/Ble/AndroidBleMonitor.cs | Deletes Android BLE monitor implementation. |
| src/DevFlow/Microsoft.Maui.DevFlow.Agent.Core/DevFlowAgentService.cs | Removes BLE monitor property/init, endpoints, capabilities advertising, and disposal logic. |
| src/DevFlow/Microsoft.Maui.DevFlow.Agent.Core/BleMonitor.cs | Deletes the core BLE monitor and event model. |
| src/Cli/Microsoft.Maui.Cli/DevFlow/Mcp/Tools/BleTools.cs | Deletes MCP BLE tools. |
| src/Cli/Microsoft.Maui.Cli/DevFlow/Mcp/McpServerHost.cs | Unregisters BLE MCP tool group. |
| docs/DevFlow/spec/schemas/device.json | Removes BLE schema definitions (status/events/types). |
| docs/DevFlow/spec/schemas/agent-capabilities.json | Removes device.ble capability entry. |
| docs/DevFlow/spec/openapi.yaml | Removes BLE REST/WebSocket endpoints from the published API spec. |
| docs/DevFlow/spec/asyncapi.yaml | Removes BLE event stream channel/spec. |
Expert Code Review — PR #259Methodology: 3 independent reviewers with adversarial consensus Result: 2 findings (both minor) · 1 posted inline, 1 listed below (outside diff) All 3 reviewers confirmed this revert is clean and complete — all BLE source files, platform monitors, MCP tools, API specs, schemas, driver methods, and tests are consistently removed with no orphaned code, broken references, or compilation risks. Overflow (findings not posted inline)
Discarded findings
CI status
Test coverageThis revert removes
|
There was a problem hiding this comment.
Expert Code Review: 1 finding posted inline (1 minor). 1 additional finding listed in the summary comment (outside diff). See the lean summary comment for full details.
Generated by Expert Code Review (auto) for issue #259 · ● 12.7M
Reverts #153 (feat: BLE Monitoring).
BLE monitoring causes macOS app crashes on startup due to missing
NSBluetoothAlwaysUsageDescription(CoreBluetooth TCC privacy violation).See #253 for details.