🐛 fix(sync): keep agents block blank lines

This commit is contained in:
csh 2026-01-26 09:34:44 +08:00
parent ea00d43bb8
commit 6efd637119
2 changed files with 26 additions and 0 deletions

View File

@ -518,7 +518,9 @@ def render_agents_block(langs: list[str]) -> list[str]:
langs_line = "".join(entries) if entries else "" langs_line = "".join(entries) if entries else ""
lines = [ lines = [
"<!-- playbook:agents:start -->", "<!-- playbook:agents:start -->",
"",
"请以 `.agents/` 下的规则为准:", "请以 `.agents/` 下的规则为准:",
"",
"- 入口:`.agents/index.md`", "- 入口:`.agents/index.md`",
f"- 语言规则:{langs_line}" if langs_line else "- 语言规则:", f"- 语言规则:{langs_line}" if langs_line else "- 语言规则:",
"<!-- playbook:agents:end -->", "<!-- playbook:agents:end -->",

View File

@ -101,6 +101,30 @@ langs = ["tsl"]
self.assertEqual(result.returncode, 0) self.assertEqual(result.returncode, 0)
self.assertTrue(agents_index.is_file()) self.assertTrue(agents_index.is_file())
def test_sync_standards_agents_block_has_blank_lines(self):
with tempfile.TemporaryDirectory() as tmp_dir:
config_body = f"""
[playbook]
project_root = "{tmp_dir}"
[sync_standards]
langs = ["tsl"]
"""
config_path = Path(tmp_dir) / "playbook.toml"
config_path.write_text(config_body, encoding="utf-8")
result = run_cli("-config", str(config_path))
self.assertEqual(result.returncode, 0)
agents_md = Path(tmp_dir) / "AGENTS.md"
lines = agents_md.read_text(encoding="utf-8").splitlines()
start_idx = lines.index("<!-- playbook:agents:start -->")
end_idx = lines.index("<!-- playbook:agents:end -->")
block = lines[start_idx : end_idx + 1]
self.assertEqual(block[1], "")
bullet_idx = next(i for i, line in enumerate(block) if line.startswith("- "))
self.assertEqual(block[bullet_idx - 1], "")
def test_install_skills(self): def test_install_skills(self):
with tempfile.TemporaryDirectory() as tmp_dir: with tempfile.TemporaryDirectory() as tmp_dir:
target = Path(tmp_dir) / "codex" target = Path(tmp_dir) / "codex"