fix: shared MCP truncate() crashes on None/non-string tool output (#1605)

This commit is contained in:
Afonso Coutinho
2026-06-03 00:35:54 +01:00
committed by GitHub
parent 6df0f5e6df
commit 0d25dfb5f4
2 changed files with 31 additions and 0 deletions

View File

@@ -13,6 +13,10 @@ SEARCH_TIMEOUT = 30
def truncate(text: str, limit: int = MAX_OUTPUT_CHARS) -> str:
"""Truncate text to *limit* characters with a suffix note."""
if not isinstance(text, str):
# Tool output is occasionally None or a non-string; len(None) would
# raise. Coerce so this shared helper never crashes a tool response.
text = "" if text is None else str(text)
if len(text) > limit:
return text[:limit] + f"\n... (truncated, {len(text)} chars total)"
return text