Files
cc-web/.planning/2026-08-11-ccweb-list-children-scope/task_plan.md

3.4 KiB
Raw Blame History

任务计划:ccweb_list_conversations children scope

目标

为 ccweb_list_conversations 增加兼容默认行为的 scope: "all" | "children",让来源对话能查询自己通过 MCP 创建的持久子对话,并同步提示词、schema、回归测试和文档。

当前阶段

已完成

阶段

阶段 1:核对现有接口、提示词、回归覆盖与工作树重叠

  • 核对服务端列表实现、两处工具 schema、README 和回归入口
  • 审查工作树中与本任务重叠的既有改动并保留其语义
  • 状态: complete

阶段 2:为 children scope 编写失败回归断言

  • 新增省略 scope 与显式 all 返回完全一致的兼容断言
  • 新增 children 只匹配 kind === 'mcp' 且来源 ID 为当前调用上下文的直接子会话断言
  • 新增非法 scope 保守回退 all 的服务端断言
  • 先运行定向回归,确认新断言在实现前失败
  • 状态: complete

阶段 3:实现列表过滤与双端 MCP schema/描述

  • 按 createdFrom.kind === 'mcp' 与来源会话 ID 过滤
  • 更新 stdio MCP 与 Codex App 工具描述、参数 schema
  • 状态: complete

阶段 4:更新 README 文档与规划记录

  • 记录 scope 默认值、children 语义和适用边界
  • 同步发现、决策与进度
  • 状态: complete

阶段 5:运行定向及完整回归验证

  • 运行语法检查,并定向覆盖列表实现、stdio MCP schema 与 Codex App 工具描述
  • 在 60 秒超时约束下运行完整回归
  • 状态: complete

阶段 6:审查差异、清理临时清单并完成交付

  • 检查差异只追加本任务语义且未覆盖用户改动
  • 将 CSV 全部推进为 DONE 后清理
  • 保留 .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 秒。
  • 不重启服务;若后续确有必要,先按项目规则检查其他运行中对话。