diff --git a/.planning/create-conversation-async/findings.md b/.planning/create-conversation-async/findings.md new file mode 100644 index 0000000..52159c3 --- /dev/null +++ b/.planning/create-conversation-async/findings.md @@ -0,0 +1,9 @@ +# 发现 +已暴露工具描述只强调持久会话用途。requestReply 参数原文:若为 true,会在新对话完成本轮输出后把回复写回来源对话,并继续触发来源对话运行。默认 false。 +该描述未说明创建调用立即返回、禁止 sleep/轮询、来源会话可结束当前轮次。代码索引 home-cc-web 为 ready。 + +实现 createMcpConversation 同步创建并投递消息后返回,未阻塞等待;requestReply=true 且无首条消息会返回 reply_requires_initial_message;send_message 已说明立即返回但 create 未说明。已有 scripts/ccweb-message-reply-unit.js 与 scripts/regression.js 创建回传集成覆盖。 + +回传由 deliverCrossConversationReply 完成;来源仍 running 时返回 false,保持 ready,来源完成轮次后 flush 再投递。循环 sleep 会持续占着 running,导致自动回传延迟。用户只要默认不轮询且允许显式例外,不改运行时行为。 + +用户再次指出“默认异步等待”可能被误读成参数控制的阻塞方式。修订明确 requestReply 控制回传订阅,是否轮询由模型遵循提示词与用户要求决定。 diff --git a/.planning/create-conversation-async/progress.md b/.planning/create-conversation-async/progress.md new file mode 100644 index 0000000..10e4223 --- /dev/null +++ b/.planning/create-conversation-async/progress.md @@ -0,0 +1,14 @@ +# 完成记录 +- 已按用户要求仅修改 ccweb_create_conversation 主说明和 requestReply 参数说明。 +- 明确默认异步、不轮询,保留用户指定轮询的例外。 +- 明确 false 不自动回传,true 自动回传并触发来源继续运行,两者调用均立即返回。 +- node --check lib/ccweb-mcp-server.js 通过。 +- timeout 60s node scripts/ccweb-message-reply-unit.js 通过。 +- git diff --check 通过;独立只读审查通过。 +- 没有更改业务逻辑、默认值、返回值,没有创建真实会话或发送消息;未重启运行服务。已有会话的旧工具定义不会因文件修改自动更新。 +- 规范复盘:本次属已有异步契约说明补全,无需新增通用规范。 + +## 2026-09-17 后续交付 +用户授权重启并重新打包、提交推送全部修改。PM2 已确认 ccweb online,进程 4186290,重启计数 70,启动时间 2026-09-17T13:19:07.223Z。正在重新生成 baseline 发布包。 + +发布验证通过:7 个入口文件语法检查通过;baseline 可执行文件 MCP initialize 与 tools/list 通过,tools/list 已验证包含新回传提示;压缩包 137 项、43904045 字节,SHA256 为 9289fddd83ce4feb542a6c02e17e047665846360a80d03d05376ea1dc35d4648。重启后的 HTTP 请求返回 200。按用户要求不再代码审计。 diff --git a/.planning/create-conversation-async/task_plan.md b/.planning/create-conversation-async/task_plan.md new file mode 100644 index 0000000..fc2d4b7 --- /dev/null +++ b/.planning/create-conversation-async/task_plan.md @@ -0,0 +1,22 @@ +# 修复创建会话异步等待提示 +目标:按用户最新要求,只修正 ccweb_create_conversation 提示词,明确“除非用户指定,否则默认不轮询等待回复,而是异步等待”。 +1. 核验工具提示词和异步回复链路 — completed +2. 修正创建会话的异步交互契约 — completed +3. 补充并运行相关回归验证 — completed +4. 核对生效条件并整理交付 — completed +边界:只改 lib/ccweb-mcp-server.js 的 description 和 requestReply description;不改功能、不改默认值、不扩展返回值、不新增测试、不重启服务。 +验收:description 保留用户明确指定轮询的例外;false 表示不自动回传,true 表示完成后回传并触发来源继续运行;两者创建调用均立即返回;true 必须携带 initialMessage。使用现有单测、语法检查与导出提示词检查验证。 +工具限制:当前没有 update_plan 工具,以同文案文件计划与 CSV 同步状态。 +错误记录:早期工具调用有格式与未打印输出问题,已改为 await tools + text;没有据此变更代码。用户明确缩小范围后取消任何绝对禁止轮询要求。 + +## 2026-09-17 后续澄清 +用户接受推荐措辞:启用 requestReply 后,默认由系统异步回传结果;除非用户明确要求轮询,否则不主动轮询等待。 +1. 按推荐措辞更新两处工具说明 — completed +2. 核验提示词与现有检查并收尾 — completed +仍仅修改两处说明,保持默认 false 和业务逻辑。 + +## 2026-09-17 打包交付 +按用户要求重新打包、提交全部修改并推送,不再代码审计。 +1. 生成 CentOS 7 baseline 发布包 — completed +2. 验证发布产物并整理全部修改 — completed +3. 提交全部修改并推送远端 — in_progress diff --git a/.trellis/tasks/09-16-create-conversation-async/check.jsonl b/.trellis/tasks/09-16-create-conversation-async/check.jsonl new file mode 100644 index 0000000..ebe03bc --- /dev/null +++ b/.trellis/tasks/09-16-create-conversation-async/check.jsonl @@ -0,0 +1,2 @@ +{"file":".trellis/spec/backend/quality-guidelines.md","reason":"后端质量约定"} +{"file":".planning/create-conversation-async/findings.md","reason":"工具契约与回传链路证据"} diff --git a/.trellis/tasks/09-16-create-conversation-async/implement.jsonl b/.trellis/tasks/09-16-create-conversation-async/implement.jsonl new file mode 100644 index 0000000..ebe03bc --- /dev/null +++ b/.trellis/tasks/09-16-create-conversation-async/implement.jsonl @@ -0,0 +1,2 @@ +{"file":".trellis/spec/backend/quality-guidelines.md","reason":"后端质量约定"} +{"file":".planning/create-conversation-async/findings.md","reason":"工具契约与回传链路证据"} diff --git a/.trellis/tasks/09-16-create-conversation-async/prd.md b/.trellis/tasks/09-16-create-conversation-async/prd.md new file mode 100644 index 0000000..9513e33 --- /dev/null +++ b/.trellis/tasks/09-16-create-conversation-async/prd.md @@ -0,0 +1,10 @@ +# 修复创建会话异步等待提示 +目标:按用户最新要求,只修正 ccweb_create_conversation 提示词,明确“启用 requestReply 后,由系统异步回传结果;除非用户明确要求轮询,否则不主动轮询等待”。 +1. 核验工具提示词和异步回复链路 — completed +2. 修正创建会话的异步交互契约 — completed +3. 补充并运行相关回归验证 — completed +4. 核对生效条件并整理交付 — completed +边界:只改 lib/ccweb-mcp-server.js 的 description 和 requestReply description;不改功能、不改默认值、不扩展返回值、不新增测试、不重启服务。 +验收:description 保留用户明确指定轮询的例外;false 表示不自动回传,true 表示完成后回传并触发来源继续运行;两者创建调用均立即返回;true 必须携带 initialMessage。使用现有单测、语法检查与导出提示词检查验证。 +工具限制:当前没有 update_plan 工具,以同文案文件计划与 CSV 同步状态。 +错误记录:早期工具调用有格式与未打印输出问题,已改为 await tools + text;没有据此变更代码。用户明确缩小范围后取消任何绝对禁止轮询要求。 diff --git a/.trellis/tasks/09-16-create-conversation-async/task.json b/.trellis/tasks/09-16-create-conversation-async/task.json new file mode 100644 index 0000000..db6194b --- /dev/null +++ b/.trellis/tasks/09-16-create-conversation-async/task.json @@ -0,0 +1,26 @@ +{ + "id": "create-conversation-async", + "name": "create-conversation-async", + "title": "修复创建会话异步等待提示", + "description": "", + "status": "completed", + "dev_type": null, + "scope": null, + "package": null, + "priority": "P2", + "creator": "shiyue", + "assignee": "shiyue", + "createdAt": "2026-09-16", + "completedAt": "2026-09-17", + "branch": null, + "base_branch": "main", + "worktree_path": null, + "commit": null, + "pr_url": null, + "subtasks": [], + "children": [], + "parent": null, + "relatedFiles": [], + "notes": "", + "meta": {} +} diff --git a/dist-exe/cc-web-bun-linux-x64-baseline.tar.gz b/dist-exe/cc-web-bun-linux-x64-baseline.tar.gz index 1328e4b..6cd949d 100644 Binary files a/dist-exe/cc-web-bun-linux-x64-baseline.tar.gz and b/dist-exe/cc-web-bun-linux-x64-baseline.tar.gz differ diff --git a/lib/ccweb-mcp-server.js b/lib/ccweb-mcp-server.js index 35b4e2e..467ad49 100644 --- a/lib/ccweb-mcp-server.js +++ b/lib/ccweb-mcp-server.js @@ -128,7 +128,7 @@ const TOOLS = [ }, { name: 'ccweb_create_conversation', - description: '创建一个新的 ccweb 持久对话。Agent 固定继承来源对话,不作为参数指定;只用于需要在会话列表中长期追踪、后续可继续对话的工作流;一次性并行研究应优先使用子代能力。', + description: '创建一个新的 ccweb 持久对话。Agent 固定继承来源对话,不作为参数指定;只用于需要在会话列表中长期追踪、后续可继续对话的工作流;一次性并行研究应优先使用子代能力。工具调用会立即返回。启用 requestReply 后,默认由系统异步回传结果;除非用户明确要求轮询,否则不主动轮询等待。', inputSchema: { type: 'object', properties: { @@ -152,7 +152,7 @@ const TOOLS = [ }, requestReply: { type: 'boolean', - description: '可选。若为 true,会在新对话完成本轮输出后把回复写回来源对话,并继续触发来源对话运行。默认 false。', + description: '可选。控制是否自动回传结果,默认 false:结果留在新对话,不自动回传;true:新对话完成本轮输出后,系统自动把回复写回来源对话并触发其继续运行,必须同时提供 initialMessage。两种情况下本调用都立即返回。启用回传后,除非用户明确要求轮询,否则由系统异步回传结果,无需主动轮询。', }, }, additionalProperties: false, diff --git a/重新打包并提交推送 TO DO list.csv b/重新打包并提交推送 TO DO list.csv new file mode 100644 index 0000000..3fa5714 --- /dev/null +++ b/重新打包并提交推送 TO DO list.csv @@ -0,0 +1,4 @@ +id,item,status,done_at,notes +1,生成 CentOS 7 baseline 发布包,DONE,2026-09-17T21:25:32+08:00,Bun baseline 发布包已生成,语法检查通过,重启后 HTTP 200 +2,验证发布产物并整理全部修改,DONE,2026-09-17T21:26:52+08:00,发布包 MCP smoke、压缩包内容、校验和均通过 +3,提交全部修改并推送远端,IN_PROGRESS,,