diff --git a/docs/design/13-toolchain-and-dev-workflow.md b/docs/design/13-toolchain-and-dev-workflow.md index f359b83..e6493d6 100644 --- a/docs/design/13-toolchain-and-dev-workflow.md +++ b/docs/design/13-toolchain-and-dev-workflow.md @@ -1469,9 +1469,9 @@ CI workflow 和 Webhook 中的用户标识是 Git 用户名,Mail API 需要 Ag | zhangfei | zhangfei-dev | | jiangwei | jiangwei-infra | | simayi | simayi-challenger | -| pangtong | pangtong-fujunshi | -| guanyu | guanyu-dev | -| zhaoyun | zhaoyun-data | +| pangtong-fujunshi | pangtong-fujunshi | +| guanyu-dev | guanyu-dev | +| zhaoyun-data | zhaoyun-data | daemon Webhook 模块中维护此映射表。 @@ -1506,7 +1506,7 @@ daemon Webhook 模块中维护此映射表。 | D2 | 提示词独立模板文件 | 模板和代码分离,改文案不改代码,可审查可扩展 | | D3 | 中枢是 daemon 内模块 | 要访问 Blackboard 创建 Task,共享进程。用独立路由模块(`toolchain_routes.py`)保持职责清晰 | | D4 | 同步处理 | 事件处理很轻(解析+模板填充+创建Task),远在 Gitea 5秒超时内。复杂事件未来用 asyncio.create_task | -| D5 | Agent ID ≠ Gitea 用户名,需要映射表 | Gitea 注册用户名是短名(zhangfei),Agent ID 是长名(zhangfei-dev)。§4.4 的 `to_agent_id()` 内建 `GIT_TO_AGENT` 映射字典(见 §15.7) | +| D5 | Agent ID = Gitea 用户名,直用 | 姜维确认:Gitea 注册用户名就是完整 Agent ID(zhangfei-dev / simayi-challenger 等),短名已删除。`to_agent_id()` 直用,不需要映射表 | | D6 | CI/部署通知也走事件中枢 | 统一入口,不走 workflow 直接调 Mail API。CI workflow 写 PR comment → Gitea 触发 issue_comment Webhook → 中枢处理 | --- @@ -1843,19 +1843,9 @@ HANDLERS = { ### 4.4 共用函数 ```python -# Git 用户名 → Agent ID 映射(与 §15.7 一致) -GIT_TO_AGENT = { - "pangtong": "pangtong-fujunshi", - "zhangfei": "zhangfei-dev", - "simayi": "simayi-challenger", - "guanyu": "guanyu-dev", - "zhaoyun": "zhaoyun-data", - "jiangwei": "jiangwei-infra", -} - def to_agent_id(gitea_username: str) -> str: - """Gitea 用户名 → Agent ID(通过映射表)""" - return GIT_TO_AGENT.get(gitea_username, gitea_username) + """Gitea 用户名 → Agent ID。已确认一致,直用。""" + return gitea_username def create_mail_task(to: str, title: str, text: str, meta: dict) -> str: """创建 Mail Task(from=system, type=inform) @@ -1987,8 +1977,8 @@ CI workflow 已有 `notify-on-failure` job(ci.yml),当前格式: | # | 项 | 状态 | 结论 | |---|------|------|------| -| 1 | Agent Gitea 用户名映射 | ✅ 已确认 | 不一致(zhangfei ≠ zhangfei-dev),已内建映射表 | -| 2 | Gitea Webhook secret | 待姜维确认 | 签名算法已确认为 HMAC-SHA256 | +| 1 | Agent Gitea 用户名映射 | ✅ 姜维已确认 | 一致(用户名就是完整 Agent ID),直用,不需要映射表 | +| 2 | Gitea Webhook secret | ✅ 姜维已确认 | 已配置,secret 有值,当前 active: false(实现后启用)。签名算法 HMAC-SHA256 | | 3 | CI workflow PR comment | ✅ 已有 | ci.yml 已有 notify-on-failure job 写 PR comment,格式为 `❌ **CI 失败**...`,需改为 `[CI]` 前缀 | | 4 | `from=system` 走内部函数 | ✅ 已确定 | 走内部函数(和 mail_notify.py 一致),不走 HTTP API | | 5 | PR changed_files | ✅ 已确认 | payload 只有 changed_files 数量,文件列表需额外调用 `GET /repos/{owner}/{repo}/pulls/{number}/files` |