Fix compact summary regex replacement

This commit is contained in:
wuyang6
2026-07-07 21:21:19 +08:00
parent da8b63443b
commit f5f98688dd
2 changed files with 7 additions and 1 deletions
+1 -1
View File
@@ -238,7 +238,7 @@ def format_compact_summary(summary: str) -> str:
content = match.group(1).strip() content = match.group(1).strip()
formatted = re.sub( formatted = re.sub(
r'<summary>[\s\S]*?</summary>', r'<summary>[\s\S]*?</summary>',
f'Summary:\n{content}', lambda _: f'Summary:\n{content}',
formatted, formatted,
) )
+6
View File
@@ -112,6 +112,12 @@ class TestFormatCompactSummary(unittest.TestCase):
self.assertNotIn('Line 1', formatted) self.assertNotIn('Line 1', formatted)
self.assertIn('Final summary', formatted) self.assertIn('Final summary', formatted)
def test_summary_content_keeps_regex_backslashes_literal(self) -> None:
raw = r'<summary>Regex examples: \s+ and \1 should stay literal.</summary>'
formatted = format_compact_summary(raw)
self.assertIn(r'\s+', formatted)
self.assertIn(r'\1', formatted)
class TestGetCompactUserSummaryMessage(unittest.TestCase): class TestGetCompactUserSummaryMessage(unittest.TestCase):
"""Tests for the post-compact user message builder.""" """Tests for the post-compact user message builder."""