81 lines
3.4 KiB
Markdown
81 lines
3.4 KiB
Markdown
# 任务计划:ccweb_list_conversations children scope
|
||
|
||
## 目标
|
||
|
||
为 `ccweb_list_conversations` 增加兼容默认行为的 `scope: "all" | "children"`,让来源对话能查询自己通过 MCP 创建的持久子对话,并同步提示词、schema、回归测试和文档。
|
||
|
||
## 当前阶段
|
||
|
||
已完成
|
||
|
||
## 阶段
|
||
|
||
### 阶段 1:核对现有接口、提示词、回归覆盖与工作树重叠
|
||
|
||
- [x] 核对服务端列表实现、两处工具 schema、README 和回归入口
|
||
- [x] 审查工作树中与本任务重叠的既有改动并保留其语义
|
||
- **状态:** complete
|
||
|
||
### 阶段 2:为 children scope 编写失败回归断言
|
||
|
||
- [x] 新增省略 `scope` 与显式 `all` 返回完全一致的兼容断言
|
||
- [x] 新增 `children` 只匹配 `kind === 'mcp'` 且来源 ID 为当前调用上下文的直接子会话断言
|
||
- [x] 新增非法 `scope` 保守回退 `all` 的服务端断言
|
||
- [x] 先运行定向回归,确认新断言在实现前失败
|
||
- **状态:** complete
|
||
|
||
### 阶段 3:实现列表过滤与双端 MCP schema/描述
|
||
|
||
- [x] 按 `createdFrom.kind === 'mcp'` 与来源会话 ID 过滤
|
||
- [x] 更新 stdio MCP 与 Codex App 工具描述、参数 schema
|
||
- **状态:** complete
|
||
|
||
### 阶段 4:更新 README 文档与规划记录
|
||
|
||
- [x] 记录 `scope` 默认值、children 语义和适用边界
|
||
- [x] 同步发现、决策与进度
|
||
- **状态:** complete
|
||
|
||
### 阶段 5:运行定向及完整回归验证
|
||
|
||
- [x] 运行语法检查,并定向覆盖列表实现、stdio MCP schema 与 Codex App 工具描述
|
||
- [x] 在 60 秒超时约束下运行完整回归
|
||
- **状态:** complete
|
||
|
||
### 阶段 6:审查差异、清理临时清单并完成交付
|
||
|
||
- [x] 检查差异只追加本任务语义且未覆盖用户改动
|
||
- [x] 将 CSV 全部推进为 DONE 后清理
|
||
- [x] 保留 `.planning/2026-08-11-ccweb-list-children-scope/` 作为长期任务记录
|
||
- **状态:** complete
|
||
|
||
## 关键问题
|
||
|
||
1. `children` 是否仅包含 `createdFrom.kind === 'mcp'` 的直接子对话?
|
||
2. 默认省略 `scope` 时是否完全保持当前全量列表行为?
|
||
3. 过滤应在 limit 之前还是之后执行?
|
||
4. 返回结构是否需要新增父子字段,还是只改变列表集合?
|
||
|
||
## 决策
|
||
|
||
| 决策 | 理由 |
|
||
|------|------|
|
||
| `scope` 默认 `all` | 保持现有调用完全兼容 |
|
||
| `children` 仅返回当前来源直接通过 MCP 创建的会话 | 与用户提出的“我曾创建的子对话”语义一致,排除 branch 与孙级会话 |
|
||
| 非法 `scope` 在服务实现中回退 `all` | schema enum 会拦截正常 MCP 调用;内部兼容入口保持保守且不破坏旧行为 |
|
||
| 先过滤、再排序、再应用 limit | 避免全局热门会话占满 limit 后漏掉子对话 |
|
||
| 不在父会话维护 children 数组 | 现有子会话 `createdFrom` 已是权威数据,避免双写一致性问题 |
|
||
|
||
## 遇到的错误
|
||
|
||
| 错误 | 尝试 | 解决方式 |
|
||
|------|------|----------|
|
||
| 项目内 `/home/cc-web/.codex/skills/todo-list-csv/SKILL.md` 不存在 | 1 | 使用会话公布的有效路径 `/home/hdzx/.codex/skills/todo-list-csv/SKILL.md` |
|
||
| `codebase-memory-mcp` 连续返回 `Transport closed` | 3 | 停止重复调用,基于此前已确认入口降级为本地 `rg/sed/git diff` |
|
||
|
||
## 约束
|
||
|
||
- 保留工作树中其他对话已存在的 `server.js`、`lib/ccweb-mcp-server.js`、`scripts/regression.js` 改动。
|
||
- 测试命令最大超时 60 秒。
|
||
- 不重启服务;若后续确有必要,先按项目规则检查其他运行中对话。
|