From 3fa21c8d3ca33637d81c9d7849a45f9826007ac4 Mon Sep 17 00:00:00 2001 From: banteg <4562643+banteg@users.noreply.github.com> Date: Mon, 29 Dec 2025 03:09:22 +0400 Subject: [PATCH] refactor: use textwrap.shorten for field truncation --- .../src/codex_telegram_bridge/exec_render.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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 a57fa2f..1c52757 100644 --- a/codex_telegram_bridge/src/codex_telegram_bridge/exec_render.py +++ b/codex_telegram_bridge/src/codex_telegram_bridge/exec_render.py @@ -1,6 +1,7 @@ from __future__ import annotations import re +import textwrap from collections import deque from dataclasses import dataclass, field from textwrap import indent @@ -20,6 +21,9 @@ MAX_PROGRESS_CHARS = 300 def one_line(text: str) -> str: return " ".join(text.split()) +def shorten_field(text: str, max_len: int) -> str: + return textwrap.shorten(one_line(text), width=max_len, placeholder="…") + def truncate(text: str, max_len: int) -> str: return one_line(text)[:max_len] @@ -44,7 +48,7 @@ def format_header(elapsed_s: float, turn: Optional[int], label: str) -> str: def format_command(command: str) -> str: - command = truncate(command, MAX_CMD_LEN) + command = shorten_field(command, MAX_CMD_LEN) return f"`{command}`" @@ -55,7 +59,7 @@ def format_query(query: str) -> str: def format_paths(paths: list[str]) -> str: rendered = [] for path in paths: - rendered.append(f"`{truncate(path, MAX_PATH_LEN)}`") + rendered.append(f"`{shorten_field(path, MAX_PATH_LEN)}`") return ", ".join(rendered)