diff --git a/src/agentic_cli/mcp/context7.py b/src/agentic_cli/mcp/context7.py index 4de4240..9c5ff1a 100644 --- a/src/agentic_cli/mcp/context7.py +++ b/src/agentic_cli/mcp/context7.py @@ -100,10 +100,14 @@ def to_markdown(self) -> str: if document.summary: detail_lines.append(f"Summary: {document.summary.strip()}") elif document.content: - preview = document.content.strip().splitlines()[0] - if len(preview) > 160: - preview = preview[:157] + "..." - detail_lines.append(f"Preview: {preview}") + stripped_content = document.content.strip() + if stripped_content: + preview_lines = stripped_content.splitlines() + if preview_lines: + preview = preview_lines[0] + if len(preview) > 160: + preview = preview[:157] + "..." + detail_lines.append(f"Preview: {preview}") if document.source: detail_lines.append(f"Source: {document.source}") if document.metadata: diff --git a/tests/test_mcp_context7.py b/tests/test_mcp_context7.py index ed0d39d..d9ace34 100644 --- a/tests/test_mcp_context7.py +++ b/tests/test_mcp_context7.py @@ -132,6 +132,22 @@ def fake_timestamped_dir(prefix: str) -> Path: assert dummy_client.closed is False +def test_docs_markdown_omits_preview_for_whitespace_content() -> None: + """Whitespace-only content does not produce a preview entry.""" + + response = Context7DocsResponse( + package="example@1.0.0", + library=Context7Library(id="example", name="Example"), + documents=[ + Context7Document(title="Doc", content=" \n\n "), + ], + ) + + markdown = response.to_markdown() + + assert "Preview:" not in markdown + + def test_run_docs_requires_configuration(capsys) -> None: """If Context7 is not configured the command exits early."""