diff --git a/ai.memory/project_review_agent_impl.md b/ai.memory/project_review_agent_impl.md index 46dbda1..d3a8966 100644 --- a/ai.memory/project_review_agent_impl.md +++ b/ai.memory/project_review_agent_impl.md @@ -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)。