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,21 @@
# 发现记录
## 现状
- `docs/gitea-workflow/PRD.md` 与 `ARCHITECTURE.md` 已存在,已约定 MVP 为单
Gitea 实例、`ccweb-bot`、同仓库串行、全局并发 2、线程级 `gitea-mcp`。
- 当前仓库没有 Gitea 业务实现入口;本轮脚本必须测试协议/状态机纯函数,不应
假设或改写 `server.js`。
- `package.json` 只有 `npm run regression`;新增脚本应提供独立 `node` 入口,
便于实现接入阶段先运行夹具回归。
## 交付设计
- `DEPLOYMENT.md`:配置分层、Webhook 反向代理、凭据、目录权限、启动顺序、
健康检查、暂停/恢复、备份恢复、故障处置、日志脱敏和容量基线。
- `TESTING.md`:测试金字塔、fixtures 协议、场景矩阵、故障注入、恢复/重试
断言、MCP `thread/start.config.mcp_servers.gitea` 契约与安全测试。
- `scripts/gitea-webhook-regression.js`:零依赖 Node 脚本,加载 fixtures,
对原始 body 做 HMAC-SHA256 常量时间校验,验证事件过滤、delivery 去重、
队列恢复/并发互斥、回执补发/REST 兜底、线程级 MCP 配置、路径边界以及敏感
信息不泄漏。

View File

@@ -0,0 +1,10 @@
# 进度日志
- 2026-08-24:启用 `todo-list-csv`,建立六步计划和独立清单。
- 2026-08-24:确认 PRD/ARCHITECTURE 已由其他工作流提供,本轮仅新增部署/测试
文档、独立脚本与 fixtures,避免修改业务主逻辑和现有目标文档。
- 2026-08-24:计划审查第一次发现交付范围和测试入口未明确;已修正并复审通过。
- 2026-08-24:新增 `DEPLOYMENT.md`、`TESTING.md`、7 个 JSON fixture 文件和独立
`scripts/gitea-webhook-regression.js`;脚本覆盖 9 个离线场景。
- 2026-08-24:`node --check`、`timeout 60s node scripts/gitea-webhook-regression.js`
和 `git diff --check` 全部通过。

View File

@@ -0,0 +1,30 @@
# Gitea Webhook Agent 文档与回归计划
## 目标
补齐 Gitea Workflow 的部署运维和测试设计文档,并新增不依赖业务实现的
Webhook 协议回归脚本与 fixtures,覆盖验签、事件过滤、队列恢复、回执重试
兜底、MCP 线程配置和安全边界;不修改 `server.js` 主逻辑,也不覆盖其他代理
正在进行的 Gitea 文档或实现改动。
## 步骤
1. 盘点并复核 `docs/gitea-workflow/PRD.md`、`ARCHITECTURE.md`,确认需求覆盖和
与其他代理的修改边界
2. 补齐/校验 PRD 与架构交付基线,并设计部署运维文档固定安全与恢复契约
3. 设计测试文档并建立需求到回归场景覆盖矩阵
4. 新增独立 webhook 回归脚本与 JSON fixtures,固定直接验收入口
5. 运行定向回归、脚本语法检查和差异范围审查
6. 完成文档一致性复核并清理临时清单
## 约束
- 现有 `PRD.md`、`ARCHITECTURE.md` 属于其他代理的工作区:先做只读一致性复核;
只有发现本需求明确缺口且确认不覆盖其改动时才做最小追加,否则在新增文档中
记录已覆盖项和缺口。
- 本轮新增/修改目标为 `docs/gitea-workflow/DEPLOYMENT.md`、`TESTING.md`、
`scripts/gitea-webhook-regression.js` 及 `fixtures/gitea-workflow/*.json`,
并在新增文档中明确引用 PRD/架构路径。
- 独立验收入口固定为:`timeout 60s node scripts/gitea-webhook-regression.js`;
脚本输出每个场景的 PASS/FAIL 与最终汇总,不依赖服务启动或网络。
- 不修改 `server.js` 主逻辑、`lib/`、`public/`、依赖和其他代理的目标文档。