feat: overhaul task board and cross-conversation workflows
This commit is contained in:
48
.trellis/tasks/08-11-unify-ccweb-message-reply/info.md
Normal file
48
.trellis/tasks/08-11-unify-ccweb-message-reply/info.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# 技术设计:统一 ccweb 消息回传接口
|
||||
|
||||
## 数据流
|
||||
|
||||
```text
|
||||
MCP 工具 Schema
|
||||
↓ replyMode
|
||||
内部 dispatcher
|
||||
↓ one_way / expectReply
|
||||
sendCrossConversationMessage
|
||||
├─ one_way → 目标运行,结果留在目标
|
||||
└─ return_and_continue
|
||||
↓ pending(requestId + originalRequest)
|
||||
目标完成 → ready → 来源空闲
|
||||
↓
|
||||
写回展示消息 + 带关联信息的隐藏续跑消息
|
||||
```
|
||||
|
||||
## 建议模块边界
|
||||
|
||||
- `lib/ccweb-mcp-server.js`
|
||||
- 继续作为正式工具定义的单一来源。
|
||||
- 导出 reply mode 常量;send schema 复用这些常量。
|
||||
- 不再公开 request-reply definition。
|
||||
- `server.js`
|
||||
- dynamic tools 从已导入的 `CCWEB_MCP_TOOLS` 按白名单筛选并添加 namespace。
|
||||
- dispatcher 保留旧别名。
|
||||
- 发送、pending、目标提示和来源续跑接入 reply mode。
|
||||
|
||||
## 兼容边界
|
||||
|
||||
- 新 Schema:`replyMode` 必填。
|
||||
- 旧 `send_message`:内部缺省归一为 `one_way`。
|
||||
- 旧 `request_reply`:内部固定归一为 `return_and_continue`。
|
||||
- 旧 MCP/dynamic 客户端:隐藏 allowlist 接受 `ccweb_request_reply`,但工具列表不公开。
|
||||
- 旧 pending 数据:`originalRequest` 缺失时来源提示显示明确占位,不失败。
|
||||
|
||||
## 测试策略
|
||||
|
||||
先补失败断言,再实现:
|
||||
|
||||
1. 共享定义:send schema 必填 replyMode、enum 正确、旧工具不公开。
|
||||
2. `one_way`:目标提示标注不自动回传,不创建 requestId。
|
||||
3. `return_and_continue`:创建 requestId,目标提示禁止手工回传,来源收到结果并自动续跑。
|
||||
4. 来源续跑:包含 requestId、目标信息、原始请求、完整性判断指令。
|
||||
5. 兼容别名:内部 `ccweb_request_reply` 仍建立回传。
|
||||
6. 隐藏入口:正式 MCP tools/call 与旧 dynamic call 接受旧名,tools/list 不包含旧名。
|
||||
7. 双路径一致:正式 MCP 和 dynamic tools 的 send definition 深度一致(namespace 除外)。
|
||||
Reference in New Issue
Block a user