feat(onboarding): git-workflow ��֧��������Ϊ���Ӷȸ�֪ v1.3.0 #1

Open
lanrtop wants to merge 3 commits from feat/onboarding-pack into master
Showing only changes of commit 8b85f49234 - Show all commits

View File

@ -444,8 +444,9 @@ mod tests {
assert_eq!(agents_r.action, "skipped");
// 态二(旧版本):把版本改旧 + 块外加用户内容 → updated块升级、用户内容保留
let agents_tpl_ver = extract_managed_block(TMPL_AGENTS).and_then(block_version).unwrap();
let old = agents
.replace("version=\"1.2.0\"", "version=\"1.0.0\"")
.replacen(&format!("version=\"{agents_tpl_ver}\""), "version=\"1.0.0\"", 1)
.replace("## 项目概况", "## 项目概况
")
@ -458,11 +459,29 @@ mod tests {
let agents_r = r3.iter().find(|t| t.name == "AGENTS.md").unwrap();
assert_eq!(agents_r.action, "updated");
let upgraded = std::fs::read_to_string(base.join("AGENTS.md")).unwrap();
assert!(upgraded.contains("version=\"1.2.0\""), "块应升级到模板版本");
assert!(upgraded.contains(&format!("version=\"{agents_tpl_ver}\"")), "块应升级到模板版本");
assert!(upgraded.contains("我的项目说明"), "块外用户内容(前)须保留");
assert!(upgraded.contains("用户自加的章节"), "块外用户内容(后)须保留");
assert_eq!(upgraded.matches(MANAGED_START).count(), 1, "只有一个管理块");
// git-workflow 版本升级验证v1.2.0 存量项目重跑后块升级,块外内容不动
let gw_tpl_ver = extract_managed_block(TMPL_GIT_WORKFLOW).and_then(block_version).unwrap();
let gw_path = base.join("docs/ai-context/git-workflow.md");
let gw_content = std::fs::read_to_string(&gw_path).unwrap();
// 把写入的最新版本改旧,模拟存量 1.2.0 项目
let gw_old = gw_content
.replacen(&format!("version=\"{gw_tpl_ver}\""), "version=\"1.2.0\"", 1)
+ "\n## 项目自加章节\n旧有内容\n";
std::fs::write(&gw_path, &gw_old).unwrap();
let r_gw = dispatch_templates(pp);
let gw_r = r_gw.iter().find(|t| t.name == "docs/ai-context/git-workflow.md").unwrap();
assert_eq!(gw_r.action, "updated", "git-workflow 旧版本应触发 updated");
let gw_upgraded = std::fs::read_to_string(&gw_path).unwrap();
assert!(gw_upgraded.contains(&format!("version=\"{gw_tpl_ver}\"")), "git-workflow 块应升级到模板版本");
assert!(gw_upgraded.contains("功能性改动"), "新分支策略关键词应出现在升级后文件中");
assert!(gw_upgraded.contains("项目自加章节"), "块外用户内容须保留");
assert_eq!(gw_upgraded.matches(MANAGED_START).count(), 1, "只有一个管理块");
// 态三:存量文件无标记 → appended原内容保留在上方
std::fs::write(base.join("AGENTS.md"), "# 手写的 AGENTS