docs(memory): 记录基座 TCP 路径的主线程阻塞约束与分帧规则

This commit is contained in:
gjm committed 2026-10-14 15:49:49 +08:00
1 parent 4167ea033f
commit c021d7ae39
1 file changed
+7
+7
View File
@@ -85,6 +85,13 @@ type: project
DLL 代理写锁改为 `ScopedDocumentWriteLock` RAII)。**插件作者无需自行 try/catch**,
但仍不要在异常路径上留下副作用。新增/改动工具后跑 `verify_mcp_fault_injection.py` 回归。
**同一根因的另一面:阻塞。** 工具响应由 **AutoCAD 主线程**发送
(`WndProc` → `ExecuteTaskInMainThread` → `SendAll`),所以发送路径也必须有时限——
`accept` 时同时设了 `SO_RCVTIMEO`/`SO_SNDTIMEO`(各 5s),否则慢客户端能把 CAD 的 UI 线程卡死。
分帧规则:`\n` 优先,其次「暂时无更多数据、且累积内容已是完整 JSON」(兼容不发 `\n` 的旧客户端);
**不要再引入基于等待时长的分帧判定**(旧的 150ms select 探测会把分片间隔大的大报文误截断)。
回归脚本:`verify_mcp_tcp_hardening.py`。
## 验证结论(2026-10-13 实测通过)
- `verify_mcp_frame.py` 4/4 PASS(换行分帧 / >2KB 报文不截断 / string id 原样回显 / 通知不回包 / isError)。