Files
cc-web/.planning/subagent-card-metadata/findings.md
2026-07-15 15:00:58 +08:00

2.9 KiB
Raw Blame History

发现记录

  • 前端 collabAgentStateEntries 已读取 label/title/name 和 description/summary/message。
  • 当前渲染层仅把任务提示词和结果简介写入 DOM title,卡片正文没有显示简介。
  • 真实 Codex App spawnAgent 记录通常提供 prompt,但 agentsStates 在启动时为空,完成时 name 常为线程 ID。
  • 当前 mergeCollabAgentTools 只保留一个全局 prompt,需要把各次 spawn 的 prompt 写入对应代理状态。
  • 工作树开始时干净;已有 .planning/codex-app-worker-timeout 和根目录规划文件,不能覆盖。
  • Trellis 前端规范目前大多是模板,因此实施以现有 public/app.js / public/style.css 约定和回归测试为主要依据。
  • 原 Trellis 当前任务是 00-bootstrap-guidelines,本任务结束后需要恢复。
  • 样式集中在 public/style.css 的 .collab-agent-* 区块;需补齐 min-width: 0 / max-width: 100% 收缩链,并为新增简介采用两行 clamp。
  • 回归入口是 scripts/regression.js 的 Codex App 子代理端到端段;现有测试验证事件链但未覆盖标题/简介展示语义。
  • mock 已提供两个子代理及不同 name/role/summary,可扩展为通用名称 + 不同 prompt,验证前端合并不串任务上下文。
  • 计划复审通过;实现范围保持前端与回归测试,不改后端协议、不重启服务。
  • 独立质量检查发现 UUID 正则仅覆盖 v1-v5,会漏掉 UUID v7;需要改为通用 UUID 形状判断。
  • 静态源码契约不足以证明多 spawn 行为;需要提取并执行实际纯函数源码,覆盖独立 prompt 与 wait/close 保留。
  • 后续状态会携带归一化空标题字段;合并时只有新状态含可读标题才允许覆盖旧标题。
  • 归一化 entry.label 可能由 prompt 派生,必须携带 hasReadableSourceTitle 标记区分协议标题和派生标题。
  • 当前真实会话持久化数据只剩一个 receiverThreadIds: [] / agentsStates: {} 的 wait 工具,说明不能只依赖同 ID 的历史工具快照。
  • closedCollabAgentIds 只能标记已知 ID 的状态;需要额外缓存 ccweb_mcp_child_agent_update.child 的最后结构化状态,才能在空 wait/close 载荷中重建卡片。
  • 当前工作树另有“放开图片数量限制”改动,涉及 CHANGELOG.md、README*.md、public/app.js、server.js、scripts/regression.js,本修复必须限制在不重叠代码区并避免格式化整文件。
  • 独立复核确认实时缓存修复后,renderMessages() 会清空缓存;若历史只有空 close/wait,刷新仍退化为工具 ID。
  • 服务端 updatePersistedCcwebMcpChildTool 只按 child.spawnToolId 查找工具;真实会话缺少该 spawn 工具时返回 null,未把 child 状态写入历史。
  • 后端兜底应只选择最近的 collab_agent_tool_call,不得把 child 合并进普通工具。