feat(mcp/parity): 三端经稳定 helper 入口连项目专用地址(P1 + P3) #24
@ -516,6 +516,15 @@ modules:
|
||||
note: "目标:子项目在 Claude Code、Codex、DSH 三端都能继续开发。2026-09-30 无头基线探针:Codex 全绿;Claude 与 DSH 连全局 /mcp、看不到开发变量工具;Claude 缺 lian-jing skill。先统一连接地址,再处理认证与 skill 投影,并把探针固化为可重跑检查。"
|
||||
position: [3500, 950]
|
||||
|
||||
- id: architecture-evolution
|
||||
name: 炼境架构演进
|
||||
area: infra
|
||||
status: planned
|
||||
progress: 0
|
||||
updated: 2026-10-01
|
||||
note: "技术栈评估:Tauri v2 + Rust + React/TS 适合管家方针,不换栈。按收益排序的结构改进:A1 本体与投影分离(core crate + CLI,P4/P8 依赖)、A2 前后端类型契约生成、A3 配置文本模板化、A4 MCP 改用官方 rmcp SDK。"
|
||||
position: [3750, 950]
|
||||
|
||||
edges:
|
||||
- from: project-resource-broker
|
||||
to: project-dev-variables
|
||||
@ -854,3 +863,7 @@ edges:
|
||||
- from: project-dev-variables
|
||||
to: agent-client-parity
|
||||
type: dependency
|
||||
# P4 探针固化、P8 一键接入以本体与投影分离(A1 的 CLI 投影)为承载。
|
||||
- from: architecture-evolution
|
||||
to: agent-client-parity
|
||||
type: dependency
|
||||
|
||||
45
.blueprint/modules/architecture-evolution.md
Normal file
45
.blueprint/modules/architecture-evolution.md
Normal file
@ -0,0 +1,45 @@
|
||||
---
|
||||
id: architecture-evolution
|
||||
name: 炼境架构演进
|
||||
status: planned
|
||||
progress: 0
|
||||
---
|
||||
|
||||
## 概述
|
||||
|
||||
2026-10-01 评估结论:现有技术栈(Tauri v2 + Rust + React/TS + SQLite)适合「管家 / agent 客户端兼容层」方针,不换栈。常驻托盘服务、凭据安全、单文件分发、cargo test 快速回归都是 Rust/Tauri 的强项;真正的难点在 Windows 与各客户端自身机制(cmd 引号与 %VAR% 展开、CRLF、Claude 配置作用域、DSH !!js、Node 拒绝直接执行 .cmd),与语言无关。Electron 全 Node 栈(与三家客户端同生态、JSON/YAML 顺手)因常驻内存大、凭据需原生模块且须整体重写而否决;Go、Python 无明显收益。
|
||||
|
||||
本模块收集比「换语言」更影响实现效率的结构性改进,按收益排序。
|
||||
|
||||
## 任务拆解
|
||||
|
||||
### 📋 A1 — 本体与投影分离:core crate + CLI
|
||||
- status: todo
|
||||
- complexity: L(先 /architect 再拆)
|
||||
- files: src-tauri/Cargo.toml(改为 workspace)、新增 core 与 cli crate(实现时定)
|
||||
- acceptance: "agent_verify: [cargo test] 业务逻辑位于不依赖 Tauri 的 core crate;[CLI] 同一 exe 或独立 cli 在炼境界面未运行时可执行 onboard / probe / diagnostics 等命令并返回结构化结果。"
|
||||
- 为什么:核心逻辑写在 Tauri 应用内,炼境不运行时 agent 与脚本无法调用。业务函数已按「连接由调用方注入」编写,拆出成本可控。拆分后 Tauri 界面、MCP 服务、命令行成为同一本体的三个投影,契合「一个本体 + 多个投影」原则;agent-client-parity 的 P4 探针、P8 一键接入可直接做成命令。shim 已在用 exe 的命令行模式(--lianjing-mcp-header),只是尚未系统化。
|
||||
|
||||
### 📋 A2 — 前后端类型契约自动生成
|
||||
- status: todo
|
||||
- complexity: M
|
||||
- files: src-tauri/src/commands/、src/lib/commands.ts
|
||||
- acceptance: "agent_verify: [pnpm typecheck] commands.ts 的参数与返回类型由 Rust 定义生成(tauri-specta 或 ts-rs),新增 command 不再手抄类型;删改 Rust 字段时 typecheck 报出所有受影响处。"
|
||||
- 为什么:现由规则 R01 要求手动同步 commands.ts,易漏;对应四支柱「可推理」。
|
||||
|
||||
### 📋 A3 — 配置文本生成模板化
|
||||
- status: todo
|
||||
- complexity: M
|
||||
- files: src-tauri/src/mcp_inject.rs、src-tauri/resources/
|
||||
- acceptance: "agent_verify: [cargo test] Codex 托管块、DSH 托管块、shim 等由模板(如 minijinja)渲染,并有「渲染结果是合法 YAML/TOML/JSON」测试。"
|
||||
- 为什么:2026-10-01 实现 P1 时在 Rust 中手拼 YAML/JS,出现缩进被字符串续行吞掉、转义少一个反斜杠两个缺陷(均被测试拦下)。模板能从写法上避免这类问题。
|
||||
|
||||
### 📋 A4 — MCP 协议改用官方 Rust SDK(rmcp)
|
||||
- status: todo
|
||||
- complexity: M
|
||||
- files: src-tauri/src/mcp_server.rs、src-tauri/src/mcp_tools.rs
|
||||
- acceptance: "agent_verify: [cargo test + 三端无头探针] 换用 rmcp 后 scoped 路由、敏感读取认证、SSE 与 streamable HTTP 行为不变,三端 A–F 矩阵不回退。"
|
||||
- 为什么:现为手写 JSON-RPC + SSE。各客户端对 MCP 的支持持续演进(streamable HTTP、认证、服务器说明等),自维护协议细节的成本会上升。
|
||||
|
||||
### 附:调用外部进程的 Tauri command 统一 async
|
||||
- 同步 Tauri command 跑在主线程,内部调用 claude CLI 等外部进程会卡界面;agent-client-parity 审查已两次发现此类问题。新增此类 command 默认 async,存量随相关改动迁移,不单独立卡。
|
||||
Loading…
Reference in New Issue
Block a user