diff --git a/scripts/langchain/issue_formatter.py b/scripts/langchain/issue_formatter.py
index ed6256f4..d3074680 100755
--- a/scripts/langchain/issue_formatter.py
+++ b/scripts/langchain/issue_formatter.py
@@ -286,6 +286,29 @@ def _formatted_output_valid(text: str) -> bool:
return all(section in text for section in required)
+def _select_code_fence(text: str) -> str:
+ runs = [len(match.group(0)) for match in re.finditer(r"`+", text)]
+ fence_len = max(3, max(runs, default=0) + 1)
+ return "`" * fence_len
+
+
+def _append_raw_issue_section(formatted: str, issue_body: str) -> str:
+ raw = issue_body.strip()
+ if not raw:
+ return formatted
+ marker = "Original Issue"
+ if marker in formatted:
+ return formatted
+ fence = _select_code_fence(raw)
+ details = (
+ "\n\n\n"
+ "Original Issue
\n\n"
+ f"{fence}text\n{raw}\n{fence}\n"
+ " "
+ )
+ return f"{formatted.rstrip()}{details}\n"
+
+
def format_issue_body(issue_body: str, *, use_llm: bool = True) -> dict[str, Any]:
if not issue_body:
issue_body = ""
@@ -306,13 +329,14 @@ def format_issue_body(issue_body: str, *, use_llm: bool = True) -> dict[str, Any
content = getattr(response, "content", None) or str(response)
formatted = content.strip()
if _formatted_output_valid(formatted):
+ formatted = _append_raw_issue_section(formatted, issue_body)
return {
"formatted_body": formatted,
"provider_used": provider,
"used_llm": True,
}
- formatted = _format_issue_fallback(issue_body)
+ formatted = _append_raw_issue_section(_format_issue_fallback(issue_body), issue_body)
return {
"formatted_body": formatted,
"provider_used": None,