feat: support MCP elicitation and rebuild release

This commit is contained in:
shiyue
2026-08-24 17:39:41 +08:00
parent dd233a40e8
commit bd20a79d4b
69 changed files with 8978 additions and 13 deletions

View File

@@ -0,0 +1,13 @@
# Gitea MCP 失败链路发现
- 当前宿主机 `command -v gitea-mcp` 无输出;server.js 已有命令存在性检查,
缺失时抛出稳定错误码 `gitea_mcp_not_found`。
- runner 在命令检查后创建/复用 Codex App 会话,再通过
`thread/start.config.mcp_servers.gitea` 注入 stdio MCP;当前没有独立的 MCP
initialize 预检。
- Codex App `thread/start` 请求超时为 60 秒;如果 MCP 子进程存在但启动后立即
退出,任务可能等待较久或只在 app-server 事件出现后才失败。
- 队列异常终态会发送一次 `giteabot: 任务失败:...`;正常流程只发送起始的
`giteabot: 已收到`,最终正文由 MCP/REST 兜底负责。
- 当前工作区存在大量其他代理未提交改动,本轮只改动与 MCP 失败链路直接相关的
文件和独立测试/文档,禁止 reset 或覆盖无关变更。

View File

@@ -0,0 +1,9 @@
# Gitea MCP 失败链路进度
## 记录
- 2026-08-24:建立本轮持久化计划;确认服务已由 PM2 `ccweb` 在线运行,未执行重启。
- 2026-08-24:确认缺失命令已有快速失败,但命令存在且 stdio 握手失败仍缺少预检。
- 2026-08-24:计划审查指出必须单独验收失败回执只发送一次、三类故障分流、线程级注入保持不变和不自动安装;已补入计划。
- 2026-08-24:新增 `lib/gitea-mcp-probe.js`,在启动 Codex App 前发送 MCP `initialize`,对启动失败、握手错误和超时返回稳定错误码。
- 2026-08-24:新增 `fixtures/gitea-workflow/mock-gitea-mcp.js` 与 `scripts/gitea-mcp-probe-unit.js`,预检成功、错误响应、进程退出、超时和命令不存在场景通过。

View File

@@ -0,0 +1,27 @@
# Gitea MCP 失败链路收尾计划
## 目标
让 Gitea Workflow 在官方 `gitea-mcp` 缺失、无法启动或 stdio 握手失败时,
在有限时间内结束任务并发送一次可见失败回执;正常 MCP 链路保持线程级注入,
不引入 Docker 依赖、不修改用户未授权的部署配置。
## 步骤
- [in_progress] 核对当前 Gitea runner、Codex App 启动和回执结算链路
- [pending] 增加 gitea-mcp stdio 预检与有限超时错误分类
- [pending] 增加针对缺失、启动失败、握手失败的独立回归断言,并验证每类只发一次 giteabot 失败回执
- [pending] 同步中文文档和运行配置说明,明确线程级注入与不自动安装约束
- [pending] 运行静态检查、单测、Webhook 回归并核对运行状态
## 错误记录
| 错误 | 尝试 | 处理 |
|---|---:|---|
| 全局技能路径不存在 | 1 | 改用项目内 `.codex/skills/planning-with-files` 与用户目录 `todo-list-csv` |
## 决策
- 不自动安装外部二进制;安装属于外部系统变更,需用户明确确认。
- 预检只验证命令可执行和 MCP initialize 响应,不记录 Token 或完整 stderr。
- Gitea Workflow 任务失败回执仍统一使用 `giteabot:` 前缀。