docs: MCP.md 校准 + spec 实测与终审偏离记录
- 工具表:scan_devices 返回形状 data.devices=[{name,address,rssi}];
device_status 注明触发连接守候且刷新空闲计时(周期轮询阻止 idle 断开)
- 启动参数表新增 --allowed-hosts;Windows 部署段同步(含 421 说明)
- 连接行为节:重连覆盖面改为传输层异常全家
- spec 末尾加「实测与终审偏离记录」:5 码契约(DEVICE_DISCONNECTED 未 emit)、
mac 解析顺序修正(启动 --mac > 自动扫描记住,工具面无 mac 参数)、
异常面适配、熠管家 Windows 实测结论与 421 修复
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
1 parent
4819715c4d
commit
e8feb2d34a
2 files changed
+32
-5
No files matched your search
@@ -122,3 +122,26 @@ mac 解析顺序:工具参数 > 启动 `--mac` > 自动扫描首个 NRF-(并
|
||||
- 多设备并发(单适配器串行已够;mac 参数可切换设备)
|
||||
- MCP resources/prompts(本期只 tools)
|
||||
- Windows 服务化、Linux 硬件实测(后续迭代)
|
||||
|
||||
## 实测与终审偏离记录(2026-07-30)
|
||||
|
||||
实现与终审后对原设计的偏离,逐条留痕:
|
||||
|
||||
- **错误码实为 5 码**:`DEVICE_DISCONNECTED` 未 emit——操作中途掉线被
|
||||
DeviceManager 的"重连+重试一次"吸收,重试仍败按 `BLE_ERROR` 上报;工具面
|
||||
始终只看到最终失败,无法区分"中途掉过线"。契约保留 5 码:
|
||||
`INVALID_PARAM` / `DEVICE_NOT_FOUND` / `CONNECT_TIMEOUT` / `BLE_ERROR` /
|
||||
`INTERNAL`。
|
||||
- **mac 解析顺序修正**:实际为"启动 `--mac` > 自动扫描首个 `NRF-` 前缀并记住",
|
||||
工具面无 mac 参数(原设计的"工具参数 > …"未实现;多设备切换靠重启服务器
|
||||
换 `--mac`,归入 YAGNI 多设备并发)。
|
||||
- **异常面适配真实硬件**:全部测试 fake 原来只抛英文 `transports.base.
|
||||
TransportError`;真实 bleak 路径抛的是中文 `transports.local.TransportError`
|
||||
(与 base 同名但互不继承)与**未包装**的 `BleakError`(如 `Not connected`)。
|
||||
终审后 MCP 层捕获面扩为异常全家(两个 TransportError + BleakError + OSError
|
||||
+ asyncio.TimeoutError),错误码按类型优先、消息(中英文)次之映射。
|
||||
- **2026-07-30 熠管家 Windows 实测**:stdio 全链路通过(scan → connect →
|
||||
set_time → upload_image 15000+15000 字节 → set_mode image0;远程无法目视
|
||||
确认上屏)。HTTP 模式 LAN Host 被 mcp DNS 重绑定防护 421——已修:新增
|
||||
`--allowed-hosts`(逗号分隔 Host 白名单,`TransportSecuritySettings`
|
||||
实现,mcp 1.29.0 实测 API 与设计一致),Windows 部署文档同步更新。
|
||||
Reference in new issue
Block a user