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,10 @@
# Gitea Workflow 核心模块发现
- PRD 位于 `docs/gitea-workflow/PRD.md`,当前只确认了需求基线,`ARCHITECTURE.md` 尚不存在。
- 现有 Node 项目使用 CommonJS,核心业务模块集中在 `lib/`,测试多为 `scripts/*-unit.js` 的直接执行脚本。
- `server.js` 体量很大,本轮应新增独立文件并避免直接改写入口。
- 当前工作区已有用户未提交改动和多个 Gitea 规划文件,需避免覆盖。
- `home-cc-web` 的 codebase-memory 索引状态为 `ready`(6760 节点、15125 边);整体由 `server`、`app`、`task-board`、`codex` 等包组成,本轮新增模块可独立放入 `lib/`。
- 项目无测试框架脚本,单元测试惯例是 `node scripts/*-unit.js` 直接执行并使用 Node 内置 `assert`。
- 当前并行实现已形成两层契约:`gitea-workflow-domain/store/queue/service` 是可复用领域与 Webhook 编排层;`gitea-workflow-core.js` 保留轻量兼容服务并补充 turn/配置脱敏/审计 API。server.js 当前通过 `gitea-workflow-service.js` 注入 `setRunner` 与 `enqueueNormalizedTask`,不需要复制状态机。
- 生产 runner 仍依赖 Gitea host/token、`gitea-mcp` 可执行文件、工作区 clone/fetch 和 Codex App 回执查询;这些属于集成配置/外部依赖,不在本轮单元测试中连接真实 Gitea。

View File

@@ -0,0 +1,11 @@
# Gitea Workflow 核心模块进度
## Log
- 已读取项目 AGENTS、规划技能、PRD 与现有 lib/test 风格。
- 已确认本轮使用独立 `lib/gitea-workflow-*.js` 文件和独立单元测试脚本。
- 已新增 `gitea-workflow-domain.js`、`gitea-workflow-store.js`、`gitea-workflow-queue.js`、`gitea-workflow-service.js`;并补齐现有 `gitea-workflow-core.js` 的 turn、配置脱敏、规范化任务入队和 server runner 挂接契约。
- 核心单测从 6 项扩展为 7 项,覆盖验签、mention/Bot 过滤、delivery 去重、持久化恢复、并发队列、MCP 配置和 `enqueueNormalizedTask`。
- 已通过 `node --check`、核心单测、Webhook 回归、工作区单测、管理 API 单测和 `npm run regression`。
- 已补充 `expectedVersion` 乐观并发校验,旧状态写入会返回 `version_conflict`,并将资源 `resourceKey` 对齐为 `<repoKey>:<kind>:<number>`。
- 已清理本轮 server smoke 产生的临时 `config/gitea-*` 状态与空工作区锁目录,避免运行态文件混入交付。

View File

@@ -0,0 +1,21 @@
# Gitea Workflow 核心领域模块实施计划
## Goal
在不重写 `server.js` 的前提下,为 Gitea Webhook 工作流新增可独立使用的核心领域模块,覆盖配置模型、仓库/会话/turn 状态、持久化、delivery 去重、仓库串行队列、重启恢复与审计事件,并提供测试或可调用接口。
## Status
- [x] 读取现有代码与 PRD/架构约束
- [x] 实现领域模型、状态机与配置规范化
- [x] 实现持久化、去重、队列与重启恢复
- [x] 实现审计记录与可调用服务接口
- [x] 补充测试并完成静态/运行验证
- [x] 汇总接口契约、修改文件与未决集成点
## Errors Encountered
| 错误 | 尝试 | 处理 |
|---|---:|---|
| 全局 planning-with-files 路径不存在 | 1 | 改用项目内 `.codex/skills/planning-with-files` |
| `todo-list-csv` 技能文件未发现 | 1 | 手工创建同等格式的任务 CSV |