Private
Public Access
fix(chronology): skip **Status:**/**Track ID:**/**Track:**/**>** metadata lines in summary extraction
This commit is contained in:
@@ -79,9 +79,16 @@ def extract_summary(folder_path: Path) -> str:
|
|||||||
continue
|
continue
|
||||||
for line in text.splitlines():
|
for line in text.splitlines():
|
||||||
stripped = line.strip()
|
stripped = line.strip()
|
||||||
if not stripped or stripped.startswith("#"):
|
if not stripped:
|
||||||
continue
|
continue
|
||||||
return _truncate_to_25_words(_first_sentence(stripped))
|
if stripped.startswith("#"):
|
||||||
|
continue
|
||||||
|
if stripped.startswith(">"):
|
||||||
|
continue
|
||||||
|
bare = stripped.lstrip(">").strip()
|
||||||
|
if bare.startswith("**Status:**") or bare.startswith("**Track ID:**") or bare.startswith("**Track:**"):
|
||||||
|
continue
|
||||||
|
return _truncate_to_25_words(_first_sentence(bare))
|
||||||
return "Imported from archive (no spec)"
|
return "Imported from archive (no spec)"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -35,4 +35,11 @@ def test_summary_extraction_truncates_to_25_words(tmp_path: Path) -> None:
|
|||||||
result: str = extract_summary(tmp_path)
|
result: str = extract_summary(tmp_path)
|
||||||
expected: str = " ".join(["word"] * 25) + "\u2026"
|
expected: str = " ".join(["word"] * 25) + "\u2026"
|
||||||
assert result == expected
|
assert result == expected
|
||||||
assert result.endswith("\u2026")
|
assert result.endswith("\u2026")
|
||||||
|
|
||||||
|
|
||||||
|
def test_summary_extraction_skips_status_metadata_line(tmp_path: Path) -> None:
|
||||||
|
spec_content: str = "# Title\n\n**Status:** Spec approved 2026-06-19\n\nReal description of the work.\n"
|
||||||
|
(tmp_path / "spec.md").write_text(spec_content, encoding="utf-8")
|
||||||
|
result: str = extract_summary(tmp_path)
|
||||||
|
assert result == "Real description of the work."
|
||||||
Reference in New Issue
Block a user