Files
cc-web/.planning/2026-08-26-standard-javascript-session/findings.md

2.0 KiB
Raw Blame History

标准 JavaScript 会话编排发现

Requirements

  • 提供 @ccweb/session,支持 getCurrentConversationId、createConversation、sendMessage、selectSemanticBranch、getLastMessage。
  • 脚本位于当前来源对话 cwd 下 .ccweb/scripts/,只允许 .js,目录使用 ESM。
  • MCP 提供 create/write/run/get_run/stop 以及 ccweb_javascript_session_api manifest。
  • 异步脚本通过 runId 查询;主动 stop 不插入来源消息;异常结束向来源对话插入通知。

Research Findings

  • lib/ccweb-mcp-server.js 已有 HTTP MCP 客户端,使用 CC_WEB_MCP_URL、CC_WEB_MCP_TOKEN、CC_WEB_SOURCE_SESSION_ID。
  • server.js 的 /api/internal/mcp 会鉴权后调用 callInternalMcpTool。
  • 现有会话入口为 createMcpConversation、sendCrossConversationMessage 和 handleCodexAppSteerMessage。
  • Codex App 完成路径 handleCodexAppTurnComplete 会持久化 assistant 消息并完成跨会话回复;需要复用其完成点实现脚本等待。
  • killProcess 与 handleCodexAppAbortSession 可作为停止行为的参考,但脚本子进程需要独立 PID/日志/状态管理。
  • codebase-memory 项目 home-cc-web 索引状态为 ready(7740 nodes/17835 edges)。

Technical Decisions

Decision Rationale
脚本包通过本地 node_modules/@ccweb/session 注入 Node ESM 对裸包名解析稳定,不依赖不可靠的 NODE_PATH
脚本运行凭据按 runId 绑定 避免把全局内部 MCP token 长期暴露给用户脚本
日志追加落盘,get_run 分段读取 支持用户确认的无限输出,同时保护 MCP 响应大小
判断器一次性只读 Codex App turn 不污染目标会话、工作区和普通 MCP 能力

Issues Encountered

Issue Resolution
根目录计划属于此前 hooks 验证任务 使用 scoped plan,保留原有计划文件

Resources

  • server.js
  • lib/ccweb-mcp-server.js
  • lib/codex-app-server-client.js
  • .codex/skills/planning-with-files/