docs(resource/broker): 记录 R11 客户端试点验收
真实 Codex CLI 经临时 scoped MCP 完成非秘密 readiness、跨项目拒绝与模拟 PR;明确审批门槛及未验证边界。 Rules-Applied: R02,R03
This commit is contained in:
parent
7ae547e1f6
commit
c2b4c30f50
@ -492,10 +492,10 @@ modules:
|
|||||||
- id: project-resource-broker
|
- id: project-resource-broker
|
||||||
name: 项目资源与凭证代办
|
name: 项目资源与凭证代办
|
||||||
area: infra
|
area: infra
|
||||||
status: in_progress
|
status: done
|
||||||
progress: 90
|
progress: 100
|
||||||
updated: 2026-09-26
|
updated: 2026-09-26
|
||||||
note: "R1–R10 的合成路径已验证;R11 隔离客户端试点进行中,不启动第二个日常 Tauri 实例或接管真实生产密钥。"
|
note: "R1–R11 的合成路径和真实 Codex CLI 客户端试点已验证;真实用户凭证迁移、正式版 UI 与生产链路未验证,未启动第二个日常 Tauri 实例。"
|
||||||
position: [3000, 950]
|
position: [3000, 950]
|
||||||
|
|
||||||
edges:
|
edges:
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
---
|
---
|
||||||
id: project-resource-broker
|
id: project-resource-broker
|
||||||
name: 项目资源与凭证代办
|
name: 项目资源与凭证代办
|
||||||
status: in_progress
|
status: done
|
||||||
progress: 90
|
progress: 100
|
||||||
---
|
---
|
||||||
|
|
||||||
## 概述
|
## 概述
|
||||||
@ -68,15 +68,16 @@ progress: 90
|
|||||||
|
|
||||||
## 任务拆解
|
## 任务拆解
|
||||||
|
|
||||||
### 🔵 R11 — 隔离真实客户端试点宿主
|
### ✅ R11 — 隔离真实客户端试点宿主
|
||||||
- status: in_progress
|
- status: done
|
||||||
- complexity: M
|
- complexity: M
|
||||||
- files: src-tauri/src/mcp_server.rs, .blueprint/modules/project-resource-broker.md, .blueprint/manifest.yaml
|
- files: src-tauri/src/mcp_server.rs, .blueprint/modules/project-resource-broker.md, .blueprint/manifest.yaml
|
||||||
- depends: R10
|
- depends: R10
|
||||||
- acceptance: "agent_verify: [cargo test --ignored] isolated_scoped_mcp_client_pilot → 仅用内存数据库、随机合成 Windows 凭证与 127.0.0.1 模拟 Gitea 启动临时 scoped MCP;收到一笔有界 PR 请求后断言模拟端收到 token、测试退出时凭证清理。[cargo test] R10 继续断言 readiness 无明文与跨项目调用拒绝。[CLI] cargo test、git diff --check 通过。human_verify: Codex/Claude 客户端实际连接临时 scoped URL,依次调用 readiness、跨项目拒绝与模拟 PR,客户端会话只见非秘密状态和 PR 结果、不见 token;日常应用和真实数据库未被修改。"
|
- acceptance: "agent_verify: [cargo test --ignored] isolated_scoped_mcp_client_pilot → 仅用内存数据库、随机合成 Windows 凭证与 127.0.0.1 模拟 Gitea 启动临时 scoped MCP;收到一笔有界 PR 请求后断言模拟端收到 token、测试退出时凭证清理。[cargo test] R10 继续断言 readiness 无明文与跨项目调用拒绝。[CLI] cargo test、git diff --check 通过。human_verify: Codex/Claude 客户端实际连接临时 scoped URL,依次调用 readiness、跨项目拒绝与模拟 PR,客户端会话只见非秘密状态和 PR 结果、不见 token;日常应用和真实数据库未被修改。"
|
||||||
- human_verify: pending(需实际客户端连接临时测试宿主;普通 HTTP 回归不能代替)
|
- human_verify: "Codex CLI 独立模型会话已实际连接临时 scoped URL:readiness 仅返回 configured/not_configured,跨项目调用返回 scope_violation,审批后的模拟 PR 返回 #43;会话输出不含 token。未启动第二个日常 Tauri 实例或打开真实用户数据库。"
|
||||||
- verification: "2026-09-26:ignored Rust fixture 与独立协议进程三轮验收,完成 initialize/tools/list/readiness、跨项目拒绝与模拟 PR,返回编号 43 且不含 token;测试正常退出断言 Windows 合成凭证与临时项目目录清理。Codex CLI 以一次性 `-c` 覆盖识别临时 scoped URL;直接 `-C` 临时目录时因项目尚未受信任仍读取既有配置。完整 cargo test 211 passed、2 ignored;typecheck、前端 6 tests、git diff --check 通过。"
|
- verification: "2026-09-26:ignored Rust fixture 与独立协议进程三轮验收;随后 Codex CLI 真实模型会话以一次性 `-c` 覆盖连接同一合成 scoped MCP,依次调用 readiness、跨项目拒绝和模拟 PR。默认非交互 approval=never 阻止 PR;单次 `--approve-for-me` 开启审批后,mock Gitea 返回 #43 且模型结果不含 token。fixture exit 0,断言 Windows 合成凭证与临时目录清理。完整 cargo test 211 passed、2 ignored;typecheck、前端 6 tests、git diff --check 通过;R11 push CI 成功。"
|
||||||
- unverified: "Codex/Claude 模型会话实际工具调用与会话无明文终验;强制终止测试进程时 Drop 不保证执行,可能留下无生产权限的随机合成 Windows 凭证;不触碰真实用户数据库或凭证。"
|
- unverified: "真实用户数据库/凭证迁移、正式安装版 UI、真实 Gitea PR/生产部署均未测试;强制终止测试进程时 Drop 不保证执行,可能留下无生产权限的随机合成 Windows 凭证;同一 Windows 用户下不提供强进程隔离。"
|
||||||
|
- retrospective: "【复盘】隔离真实客户端试点宿主|任务类型: MCP工具|复杂度: M|实际轮数: 2轮(预估 2 轮)|是否返工: 是|返工原因: Codex CLI 非交互 approval=never 会拒绝写工具,即使客户端可读取 scoped readiness|有效策略: 先确认临时 URL 仅指向内存 fixture 与 mock Gitea,再以一次性审批模式完成真实模型调用,并在正常测试退出时断言清理|遗留风险: 真正的日常 UI 与真实旧数据迁移仍未验证;强制终止时合成 WinCred 可能残留|auto_applied_rules: R02,R03|rule_effectiveness: R02=有效,R03=有效"
|
||||||
|
|
||||||
### ✅ R10 — scoped MCP 合成 PR 端到端回归
|
### ✅ R10 — scoped MCP 合成 PR 端到端回归
|
||||||
- status: done
|
- status: done
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user