From 26fa96a3533947efa6c99b7f1d50e87b84f6a79c Mon Sep 17 00:00:00 2001 From: banteg <4562643+banteg@users.noreply.github.com> Date: Mon, 29 Dec 2025 03:05:43 +0400 Subject: [PATCH] feat: render reasoning as italics --- .../src/codex_telegram_bridge/exec_render.py | 5 +++++ codex_telegram_bridge/tests/test_exec_render.py | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/codex_telegram_bridge/src/codex_telegram_bridge/exec_render.py b/codex_telegram_bridge/src/codex_telegram_bridge/exec_render.py index 3556cab..0ad7972 100644 --- a/codex_telegram_bridge/src/codex_telegram_bridge/exec_render.py +++ b/codex_telegram_bridge/src/codex_telegram_bridge/exec_render.py @@ -90,6 +90,9 @@ def extract_numeric_id(item_id: Optional[object], fallback: Optional[int] = None def attach_id(item_id: Optional[int], line: str) -> str: return f"[{item_id if item_id is not None else '?'}] {line}" +def format_reasoning(text: str) -> str: + return f"_{one_line(text)}_" + def format_item_action_line(etype: str, item: dict[str, Any]) -> str | None: match (item["type"], etype): @@ -113,6 +116,8 @@ def format_item_action_line(etype: str, item: dict[str, Any]) -> str | None: def format_item_completed_line(item: dict[str, Any]) -> str | None: match item["type"]: + case "reasoning": + return format_reasoning(item["text"]) case "web_search": query = format_query(item["query"]) return f"{STATUS_DONE} searched: {query}" diff --git a/codex_telegram_bridge/tests/test_exec_render.py b/codex_telegram_bridge/tests/test_exec_render.py index 6af42a4..387c92b 100644 --- a/codex_telegram_bridge/tests/test_exec_render.py +++ b/codex_telegram_bridge/tests/test_exec_render.py @@ -28,8 +28,10 @@ def test_render_event_cli_sample_stream() -> None: assert out == [ "thread started", "turn started", + "[0] _**Searching for README files**_", "[1] ▸ running: `bash -lc ls`", "[1] ✓ ran: `bash -lc ls` (exit 0)", + "[2] _**Checking repository root for README**_", "assistant:", " Yep — there’s a `README.md` in the repository root.", "turn completed", @@ -50,4 +52,3 @@ def test_progress_renderer_renders_progress_and_final() -> None: assert "running:" not in final assert "ran:" not in final assert final.endswith("answer") -