From b4c26db14b451b8091099d97c7c9a930bddffedf Mon Sep 17 00:00:00 2001 From: R-sh Date: Fri, 10 Jul 2026 18:35:07 -0400 Subject: [PATCH] Fix ordered-list spacing in TUI markdown renderer --- .../tui/renderers/agent_message_renderer.py | 2 +- tests/test_agent_message_renderer.py | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 tests/test_agent_message_renderer.py diff --git a/strix/interface/tui/renderers/agent_message_renderer.py b/strix/interface/tui/renderers/agent_message_renderer.py index c43628045..d08453b06 100644 --- a/strix/interface/tui/renderers/agent_message_renderer.py +++ b/strix/interface/tui/renderers/agent_message_renderer.py @@ -104,7 +104,7 @@ def _apply_markdown_styles(text: str) -> Text: # noqa: PLR0912 result.append_text(_process_inline_formatting(line[2:])) elif len(line) > 2 and line[0].isdigit() and line[1:3] in (". ", ") "): result.append(line[0] + ". ", style="#22c55e") - result.append_text(_process_inline_formatting(line[2:])) + result.append_text(_process_inline_formatting(line[3:])) elif line.strip() in ("---", "***", "___"): result.append("─" * 40, style="#22c55e") else: diff --git a/tests/test_agent_message_renderer.py b/tests/test_agent_message_renderer.py new file mode 100644 index 000000000..81b939845 --- /dev/null +++ b/tests/test_agent_message_renderer.py @@ -0,0 +1,33 @@ +"""Tests for the agent message TUI renderer.""" + +from __future__ import annotations + +from importlib.util import module_from_spec +from importlib.util import spec_from_file_location +from pathlib import Path + + +def _load_module() -> object: + module_path = Path(__file__).resolve().parents[1] / "strix" / "interface" / "tui" / "renderers" / "agent_message_renderer.py" + spec = spec_from_file_location("agent_message_renderer", module_path) + assert spec is not None + assert spec.loader is not None + module = module_from_spec(spec) + spec.loader.exec_module(module) + return module + + +_MODULE = _load_module() +_apply_markdown_styles = _MODULE._apply_markdown_styles + + +def test_ordered_list_dot_marker_uses_single_space() -> None: + assert _apply_markdown_styles("1. Hello").plain == "1. Hello" + + +def test_ordered_list_paren_marker_uses_single_space() -> None: + assert _apply_markdown_styles("2) World").plain == "2. World" + + +def test_bullet_marker_remains_single_spaced() -> None: + assert _apply_markdown_styles("- Item").plain == "• Item"