修复 Codex MCP type 配置并更新发布包

This commit is contained in:
shiyue
2026-10-08 14:55:58 +08:00
parent caf8947cd9
commit 747771a048
17 changed files with 181 additions and 4 deletions

View File

@@ -0,0 +1,14 @@
# 已知事实
- 接续时 git 工作树干净;本次尚未修改业务源码。
- Codebase Memory 项目 home-cc-web 当前索引 ready。
- 历史定位:CLI 注入在 lib/agent-runtime.js;App 注入在 server.js;Gitea 构造在 lib/gitea-workflow-codex.js。
- 用户更正为 `/home/hdzx/.codex/config.toml`:TOML 可解析,3 个 MCP server 都无顶层 `type`,无需改写。
- 用户要求删除 Codex 出站配置的 type,同时保留旧输入兼容。
- 当前本机 Codex 版本为 0.161.0,不能沿用此前 0.157.1 的版本说法。
- 用户配置服务为 playwright/laya(url)和 fastctx(command),均不含 type。
- 修改前配置 SHA256:fbbdd99bda63d1776cc513d699936bcbb4b8cdc2ef1d913fba5414b7449725f9;交付前核对是否未变。
- 计划复审通过;按 Trellis 约定由实现子代理修改代码与回归,主代理管理用户配置核查和收尾。
- 已记录 Codex MCP 配置出口约定,防止后续再次把内部 type 直接注入线程配置。
- 共享出站函数只复制并删除服务器顶层 type,原对象及嵌套 env.type 保留;CLI 独立省略该参数。
- App 在线程配置返回前统一处理,Gitea thread.config 使用副本而 mcpServer 内部元数据保留。
- 回归已直接检查 CLI 的 ccweb/project 参数及 App 首次 start、resume、重载后的字段存在性,Gitea 检查内部元数据和其他连接字段保留。

View File

@@ -0,0 +1,13 @@
# 进度
- 2026-10-08:接续中断任务,核对工作树、读取跟踪技能、确认代码索引和指定配置可访问性。
- 已建立三步计划与独立任务记录;不重启服务。
- 用户更正配置路径,已确认 3 个 MCP server 无 `type`;完成检查阶段。
- FastCtx 两次中止后已用本机工具核实,未输出敏感配置。
- 已派发实现代理,覆盖 CLI、App 与 Gitea 三个出口;当前本机版本 0.161.0。
- 跟踪文档补丁因上下文不匹配和 PRD 尚不存在失败各一次,已按当前文件状态修正;业务源码未受影响。
- 代码修改完成,独立代码审查通过;补齐 CLI ccweb、App start/resume 的直接断言。
- `timeout 60s npm run regression` 已完成且退出码 0,日志为 `/tmp/ccweb-codex-mcp-type-regression.log`,输出 Regression checks passed。
- Gitea 单元检查及所有修改 JS 的语法检查通过,最后增补的回归和单元文件已再次语法检查;git diff --check 通过。
- 当前仅剩配置指纹复核及本任务 CSV 清理;全程未重启服务。
- 最终核对用户配置指纹未变、3 个服务均无 type;本次 CSV 全部完成并清理,任务收尾。
- 修复位于源文件;未构建发布包、未重启运行进程、未提交或推送。

View File

@@ -0,0 +1,34 @@
# Codex MCP 配置出口省略 type
## 目标
兼容已有 cc-web MCP 配置,在传给 Codex CLI 和 App Server 时省略服务器顶层的 `type`;检查并仅在用户指定 `/home/hdzx/.codex/config.toml` 确有 MCP `type` 时清理。
## 约束
- 不重启、重载或停止 cc-web 服务。
- 保留内部传输类型元数据、旧输入解析以及 command/url/env/认证/超时等连接字段。
- 不清理 disable_response_storage 或其他告警字段,不替换为其他用户的配置。
- 不覆盖其他任务的计划文件,不提交或推送。
## 步骤
1. 核对当前实现、回归覆盖和指定 Codex 用户配置:completed
2. 在 Codex 出站配置中移除 type 并保留旧配置兼容:completed
3. 运行回归检查并清理本次任务跟踪文件:completed
## 验收
- CLI 参数和 App Server thread/start、resume、fork 的 MCP 配置无顶层 type。
- 内置 ccweb、项目 MCP、Gitea MCP 的连接设置仍完整,旧含 type 配置可解析。
- 回归验证明确检查 type 字段不存在,不能只从 command/url 推导类型后断言。
- 指定用户配置当前可读,包含 3 个 MCP server,均无顶层 `type`;保持原文件不变。若后续需修改,在修改前创建同目录时间戳备份,仅改 MCP 段中的 `type`,并对比其他配置值保持不变。
- 执行 `timeout 60s npm run regression`、`timeout 60s node scripts/gitea-workflow-codex-unit.js`,对修改的 JS 运行 `node --check`,并检查 `git diff --check`。
- 验证矩阵:CLI ccweb/project 注入无 `.type`;App start/resume/fork 配置无显式 `type` 且 command/url/env/认证/超时完整;Gitea 线程配置无 `type`,内部类型元数据仍存在;含 `type` 的旧 TOML fixture 仍能解析。
- 完成后只删除本任务创建的临时 CSV;该清理属于用户已要求的任务跟踪流程,不需要重复请求授权。
## 已知限制与错误
- 用户更正路径为 `/home/hdzx/.codex/config.toml`;3 个 MCP server 均无显式 `type`,此项已经满足要求,未改写配置。
- 先前官方文档访问返回 HTTP 403;不重复已失败的 strict-config 子命令实验。
- FastCtx 连续两次调用中止,改用本机工具检查;不输出用户配置值。
## 交付状态
- 源码修复、必要协议断言、全量回归、Gitea 单元、语法和差异检查均通过。
- 用户配置 SHA256 与检查前相同,3 个 MCP 服务均无 type。
- 未重启服务;当前常驻进程尚未加载本次源码改动。