docs(blueprint/agent): 收口双项目原生 MCP 验收

Rules-Applied: R03,R08,R10,R13
This commit is contained in:
lanrtop 2026-09-23 04:19:08 +09:00
parent 4c113e24bd
commit 42bb0a068a
3 changed files with 7 additions and 6 deletions

View File

@ -484,9 +484,9 @@ modules:
name: Agent 访问可靠性 name: Agent 访问可靠性
area: infra area: infra
status: in_progress status: in_progress
progress: 89 progress: 96
updated: 2026-09-23 updated: 2026-09-23
note: "A1-A8 已闭环;A9 已通过双项目 scoped HTTP、越界拒绝及完全退出 unavailable 验证,等待关闭窗口托盘、新任务、UI 与正式安装版 autostart human_verify。" note: "A1-A9 的 Agent 路径已闭环:关闭开发态窗口后托盘 MCP 仍可用,炼境与 Enterprise 新 Codex 任务均原生发现 scoped 工具。仅余设置页视觉与正式安装版 autostart human_verify。"
position: [2750, 950] position: [2750, 950]
edges: edges:

View File

@ -2,7 +2,7 @@
id: agent-access-reliability id: agent-access-reliability
name: Agent 访问可靠性 name: Agent 访问可靠性
status: in_progress status: in_progress
progress: 89 progress: 96
--- ---
## 设计决策:Agent Access Reliability v1 ## 设计决策:Agent Access Reliability v1
@ -145,13 +145,13 @@ Codex / Claude 项目
- acceptance: "[cargo test] 旧 unscoped Codex 配置重跑 onboarding → 报 legacy/upgrade_hint 且不覆盖手工同名 server;新配置指向当前 project_id 的 scoped URL;[Skill] MCP 缺失时按 configured→reachable→reload 顺序降级,不猜测状态或要求复制凭证。" - acceptance: "[cargo test] 旧 unscoped Codex 配置重跑 onboarding → 报 legacy/upgrade_hint 且不覆盖手工同名 server;新配置指向当前 project_id 的 scoped URL;[Skill] MCP 缺失时按 configured→reachable→reload 顺序降级,不猜测状态或要求复制凭证。"
- done_note: "verify_onboarding 已区分 scoped ready、旧 /mcp legacy 与错误项目;炼境托管块可幂等迁移到 scoped URL,手工同名 server 仍拒绝覆盖。接入包与私有插件 Skill 均采用 configured→reachable→reload;相关回归及 Rust 全量 176/176 通过。" - done_note: "verify_onboarding 已区分 scoped ready、旧 /mcp legacy 与错误项目;炼境托管块可幂等迁移到 scoped URL,手工同名 server 仍拒绝覆盖。接入包与私有插件 Skill 均采用 configured→reachable→reload;相关回归及 Rust 全量 176/176 通过。"
### 🔵 A9. 炼境与 Enterprise 消费者端到端验收 ### ✅ A9. 炼境与 Enterprise 消费者端到端验收
- status: in_progress - status: done
- complexity: M - complexity: M
- depends: A7. Agent 连接状态与自启动 UI 投影, A8. 项目作用域配置迁移与 Skill 降级指引 - depends: A7. Agent 连接状态与自启动 UI 投影, A8. 项目作用域配置迁移与 Skill 降级指引
- files: .blueprint/modules/agent-access-reliability.md, .blueprint/manifest.yaml, docs/ai-context/agent-button-system.md - files: .blueprint/modules/agent-access-reliability.md, .blueprint/manifest.yaml, docs/ai-context/agent-button-system.md
- acceptance: "agent_verify: [HTTP MCP] 炼境与 Enterprise scoped endpoint 分别握手 → 只读取本项目状态,跨项目调用被拒绝;关闭窗口保留托盘后仍可调用,完全退出后 readiness=unavailable;新 Codex 任务重载后核心工具可见。human_verify: 用户在两个项目各打开一次新任务,均无需手工提供 project_id 或凭证即可读取自身状态。" - acceptance: "agent_verify: [HTTP MCP] 炼境与 Enterprise scoped endpoint 分别握手 → 只读取本项目状态,跨项目调用被拒绝;关闭窗口保留托盘后仍可调用,完全退出后 readiness=unavailable;新 Codex 任务重载后核心工具可见。human_verify: 用户在两个项目各打开一次新任务,均无需手工提供 project_id 或凭证即可读取自身状态。"
- progress_note: "真实开发实例已只监听 127.0.0.1;炼境与 Enterprise scoped endpoint 均完成 initialize、tools/list、get_delivery_status,返回各自 project_id;跨项目读取和 scoped 全局写工具均返回 scope_violation。两项目 managed config 已经各自 scoped inject_mcp 迁移;完全退出后确认 27190 无 LISTENING。待新任务、关闭窗口保留托盘、UI 与正式安装版 autostart human_verify。" - done_note: "真实开发实例仅监听 127.0.0.1;炼境与 Enterprise scoped endpoint 均完成 initialize、tools/list、get_delivery_status,跨项目读取和 scoped 全局写工具返回 scope_violation;完全退出后 27190 unavailable。用户关闭窗口但保留托盘后,进程与 health 仍存活、26 个 scoped tools 可见且 get_delivery_status 可调用。新建的炼境任务 01a0ca89-8162-7010-8447-7468fce0a8a3 与 Enterprise 任务 01a0ca8a-1ef0-7d41-8eb7-afbf23185805 均产生原生 lian-jing/get_delivery_status MCP tool marker,分别绑定 dev-manager-tauri 与 d248554e-582d-4131-9e16-43ece91cd203,未使用 shell/手写 HTTP/本地文件兜底。"
## 执行顺序 ## 执行顺序

View File

@ -133,6 +133,7 @@ acceptance 是 agent 自验的唯一判断依据,必须是可执行断言:
- readiness 分为 `configured → reachable → handshake → tools_ready → reload_required`。配置存在不等于当前任务已加载;停在哪层,就只修哪一层。 - readiness 分为 `configured → reachable → handshake → tools_ready → reload_required`。配置存在不等于当前任务已加载;停在哪层,就只修哪一层。
- `.lian-jing/context.json` 是项目身份唯一来源;Skill 和插件不复制项目身份、Gitea 凭证或 MCP 实现。 - `.lian-jing/context.json` 是项目身份唯一来源;Skill 和插件不复制项目身份、Gitea 凭证或 MCP 实现。
- Windows 登录自启动只服务正式安装版,默认关闭且由用户主动启用;debug 和 `target/release` 直接运行明确拒绝注册。single-instance 继续保证同一时间只有一个炼境实例。 - Windows 登录自启动只服务正式安装版,默认关闭且由用户主动启用;debug 和 `target/release` 直接运行明确拒绝注册。single-instance 继续保证同一时间只有一个炼境实例。
- 日常开发优先运行 `pnpm tauri dev`,Agent 直接消费同一 loopback MCP;正式安装包只在安装、自启动、升级或发布里程碑做一次验收,不作为每次提交的前置条件。
- 开发炼境前先从托盘完全退出正式安装版;不得把正式版与 `pnpm tauri dev` 并行运行。single-instance 是运行时兜底,不替代这一开发约定。 - 开发炼境前先从托盘完全退出正式安装版;不得把正式版与 `pnpm tauri dev` 并行运行。single-instance 是运行时兜底,不替代这一开发约定。
- updater 是独立的发布能力,不属于自启动或 readiness 的完成条件。 - updater 是独立的发布能力,不属于自启动或 readiness 的完成条件。