fix(coexist): 新炼境接管项目文件后,旧炼境的模板分发、蓝图规则同步与 buff 轮询跳过该项目 #47

Merged
lanrtop merged 1 commits from fix/files-managed-guard into master 2026-10-06 12:08:05 +08:00
Owner

为什么

共存期新旧炼境会来回覆盖同一批托管文件(AGENTS.md、CLAUDE.md、lian-jing 技能、CONVENTIONS、任务卡)。新炼境(lian-jing-next)接管某个项目时,会在 .lian-jing/context.json 写 files_managed_by="lian-jing-next";旧炼境需要据此跳过该项目。设计见 lian-jing 仓库 docs/tasks/2026-10-06-file-distribution-design.md §4。

改了什么(+86 行)

  • mcp_inject.rs:files_managed_by_next(root) 守卫(只读;文件缺失或不合法时视为未接管)
  • 三处入口遇到已接管项目即跳过:dispatch_templates_with、sync_blueprint_rules_with、buff check_project
  • 身份合并写(write_canonical_context_with)本来就保留未知字段,加测试锁定接管标记不会被抹掉

agent 自验

  • cargo test --lib:417 passed,0 failed
  • 新增 3 条测试:files_managed_by_next_guard_reads_context_and_survives_identity_rewrite、dispatch_skips_projects_managed_by_next、sync_skips_projects_managed_by_next

没验什么

  • buff check_project 的调用点没有单测(它需要 AppHandle),与另两处共用同一个守卫函数
  • 没有构建 release、也没有在运行中的旧炼境里观察一个 buff 周期——要等合并、重装之后,在 enterprise 接管试点时验证

human_verify

  • 合并后重装旧炼境;enterprise 接管后观察一个 buff 周期,托管文件的哈希保持不变

🤖 Generated with Claude Code

## 为什么 共存期新旧炼境会来回覆盖同一批托管文件(AGENTS.md、CLAUDE.md、lian-jing 技能、CONVENTIONS、任务卡)。新炼境(lian-jing-next)接管某个项目时,会在 `.lian-jing/context.json` 写 `files_managed_by="lian-jing-next"`;旧炼境需要据此跳过该项目。设计见 lian-jing 仓库 `docs/tasks/2026-10-06-file-distribution-design.md` §4。 ## 改了什么(+86 行) - `mcp_inject.rs`:`files_managed_by_next(root)` 守卫(只读;文件缺失或不合法时视为未接管) - 三处入口遇到已接管项目即跳过:`dispatch_templates_with`、`sync_blueprint_rules_with`、buff `check_project` - 身份合并写(`write_canonical_context_with`)本来就保留未知字段,加测试锁定接管标记不会被抹掉 ## agent 自验 - `cargo test --lib`:417 passed,0 failed - 新增 3 条测试:`files_managed_by_next_guard_reads_context_and_survives_identity_rewrite`、`dispatch_skips_projects_managed_by_next`、`sync_skips_projects_managed_by_next` ## 没验什么 - buff `check_project` 的调用点没有单测(它需要 AppHandle),与另两处共用同一个守卫函数 - 没有构建 release、也没有在运行中的旧炼境里观察一个 buff 周期——要等合并、重装之后,在 enterprise 接管试点时验证 ## human_verify - 合并后重装旧炼境;enterprise 接管后观察一个 buff 周期,托管文件的哈希保持不变 🤖 Generated with [Claude Code](https://claude.com/claude-code)
lanrtop added 1 commit 2026-10-06 07:12:53 +08:00
共存期两边会来回覆盖同一批托管文件(AGENTS.md、CLAUDE.md、lian-jing 技能、CONVENTIONS、任务卡)。
新炼境(lian-jing-next)接管某项目时在 .lian-jing/context.json 写入 files_managed_by="lian-jing-next";
旧炼境据此跳过:dispatch_templates_with、sync_blueprint_rules_with、buff check_project。
身份合并写(write_canonical_context_with)本就保留未知字段,测试锁定接管标记不会被自己抹掉。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lanrtop merged commit d18df0ca88 into master 2026-10-06 12:08:05 +08:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: lanrtop/dev-manager-tauri#47
No description provided.