feat(onboard/parity): 客户端适配器注册表与三端结构化注入结果,onboard 模块投影无关适应度测试(P8b、A1a) #33
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/agent-client-parity-p8"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
做了什么(agent-client-parity P8b + architecture-evolution A1a)
一键接入(P8)编排的前置卡:Claude local 与 DSH 托管块的成败原来只写日志,
inject_mcp笼统回「已配置 Codex 与 Claude」,失败会被报成成功(设计风险 R4)。src-tauri/src/onboard/:ClientId、ClientOutcome、ClientReport、ClientAdapter(detect / static_status / apply)与registry();适应度测试onboard_module_is_projection_free机器校验本体不依赖 Tauri、不直接取连接池(A1a)。mcp_inject(需要其私有辅助函数),注册表反向接入;注入经registry()逐端 apply,新增inject_project_mcp_report;inject_project_mcp签名与「Codex 托管块失败即整体失败」语义不变。sync_claude_local、ensure_dsh_patch抽出依赖注入版,每条分支返回结构化结果,日志类别与文案不变;upsert_codex_mcp_config返回 converged / applied / manual_kept。verify_onboarding(MCP)附加clients只读三端状态,不计入 checks、不影响 pass;inject_mcp回执逐端列出实际结果。docs/ai-context/project-context.yaml,AGENTS.md 架构速查补src-tauri/src/onboard/。设计文档:
docs/tasks/2026-10-03-p8-onboarding-oneclick-design.md。用户以 /goal 授权按推荐方向代为推进,本卡按设计推荐项实现。行为变化(有意为之,设计 R5)
.codex/config.toml已手写[mcp_servers.lian-jing]时,由整体报错改为 Codex 记 manual_kept,Claude 与 DSH 照常接入。inject_project_mcp仍返回 Err。自验
cargo test:295 passed / 0 failed / 5 ignored(新增 9 条)。claude_sync_maps_every_branch_to_an_outcome:假 CLI 覆盖 converged×2 / unavailable×3 / applied / failed×3(含回滚调用序列 get→remove→add-json→add-json)/ refreshed / removed / other_project / manual_kept / needs_human。static_outcomes_are_read_only_judgments、dsh_patch_reports_not_installed_applied_converged_and_manual_kept(临时 DSH 目录,手写条目不被覆盖)、adapters_skip_control_plane_and_wsl_without_touching_disk。没验什么
inject_mcp,第二次三端都是 converged、耗时 <1 秒、四个项目文件 mtime 不变——须在合并后、运行中的炼境(tauri dev)重编译生效时实测,所以 P8b 卡暂为 🔵,实测通过后再标 ✅。run_claude_cli)。src/lib/commands.ts无对应 command),pnpm typecheck未跑。🤖 Generated with Claude Code
独立审查 agent 只读审查 d1b9b05(未发现死锁、重入或崩溃),十条发现处置: - Claude apply:无全局配置且找不到 CLI 记 not_installed,与 DSH、static 同口径 - 手写条目保留(manual_kept)时补日志:DSH 照原文案,Codex 带 project_id - 「MCP 配置注入成功」移到三端收敛之后,Codex 失败时改记 warn「注入失败」, 诊断不再把失败显示成成功 - 控制面 Claude 静态判定:遮蔽全局注册的残留 local 条目报 missing - 嵌套项目:根目录是 git 根时只认等于根目录的键,否则取最具体的键 - 适应度测试改为递归;registry() 注明适配器暂寄 mcp_inject 的传递依赖 - 状态名对齐设计:skipped 改为 not_applicable{control_plane|wsl} 与 deferred - 只读判定:读失败与 YAML 解析失败报 unavailable,Codex 块与手写同名表并存、 标记错序报 needs_human,DSH 块外手写报 manual_kept;client_static_status 改用 与注入同源的 project_root - 修正「目录不存在」假阳性用例,补 hard_failure、inject 回执、apply 映射、 clients 不影响 pass 的测试;cargo test 300 passed,两处变异验证失败如期 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>