feat(onboard/parity): onboard_project 编排本体与接入报告,处置独立审查(P8d) #39
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/agent-client-parity-p8d"
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?
做了什么
P8d:一键接入编排本体
onboard::apply与报告onboard::report(MCP / Tauri 投影归 P8e,生产入口mcp_inject::plan_onboarding/mcp_inject::onboard_project),并处置独立审查的 10 条发现。onboard_project依次检查:同一项目已有接入在跑则返回 busy;预检不过返回 failed;未确认返回 refused;然后在接入写锁内重新解析登记、重算计划、核对 digest 与阻断项,不过则 refused。以上分支都零写入。通过后在写锁内按依赖执行写入,释放写锁后再跑 git_hooks(lefthook install)、L1、L0。某步失败只阻断依赖它的步骤,整体记 partial,不自动回滚。written_files、repo_changes(限定在项目根,分出onboard_files与other_changes)、HEAD 不变断言、只针对接入文件的建议提交信息,以及 next_actions(commit / Gitea 建仓并注明默认公开 / CI / 飞轮 / 工具链 / lefthook / Codex 信任 / 重启 DSH GUI / Claude trust / 重开会话)。root、bypass_permissions(可按项目取消)、codex_trust、next_actions、skipped。选项skip_targets允许人对手写同名条目或共享项目键逐项选「跳过」(设计 §4 C1)。mcp_inject事件,诊断里的注入状态随之更新;apply_onboarding_pack改为#[tauri::command(async)]。project-context.yaml、commands.ts(L1 Cell 增 dep、Cause 增 dependency)、AGENTS.md架构速查已同步。自验
cargo test(src-tauri):402 passed / 0 failed / 6 ignored,编译 0 warning;pnpm typecheck通过。onboard::apply用临时 git 仓库、in-memory 或文件 DB、MemoryCredentialStore,以及假的适配器 / 宿主 / lefthook 执行器 / 定位器 / HTTP。卡片 acceptance ①–⑨ 逐条有用例。审查后新增或加强的用例:.codex/config.toml:计划里 codex 步是 apply,报告如实记 applied;shim 失败时的 blocked 文案如实。审查处置(独立只读审查 6c69aa2,fix_then_merge,10 条)
skip_targets,只有 manual_entry / shared_key 可跳过,进 digest,被跳过的一端记 skippedwritten_files、onboard_files/other_changes,限定项目根;建议提交信息与 commit 提示只针对接入文件inject_event纯函数,有单测)ClientAdapter::project_config_file,codex 步状态与文案如实;测试替身改为读写真实文件改断言报备:report 单测 head_check 中原断言「只改 a.txt 就给收敛提交信息」,改为「a.txt 不是接入文件 → 不给接入提交信息、计入其他改动;列入本次写入才给」。这是按审查 ③ 有意收窄提交建议的语义。其余断言只做了加强。
没验什么
with_onboard_deps、SystemOnboardHost(每次重读端口)、mcp_inject::onboard_project补写日志这一行,都依赖真实凭据存储、用户目录与连接池。delete_project_registration的加锁顺序。真实remove_project_mcp_locked里 claude CLI 与 Credential Manager 的清理没跑。.cmd分支只在 Windows 上测过。.claude/settings.json)另有未提交改动时,这些改动会随该文件一起进入 onboard_files(known_limits ⑪)。on_project_root_changed的迁移线程收敛(known_limits ⑥)。🤖 Generated with Claude Code