feat: re-echo condensed user prompt in chat log
Shows user input as a compact one-liner ("You: prompt text") instead of
a full panel. Multi-line input is collapsed to the first line with a
"(+N lines)" suffix, and long lines are truncated at 120 chars.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -44,9 +44,22 @@ if TYPE_CHECKING:
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
def render_user_message(content: str) -> Panel:
|
||||
"""Render a user message as a styled panel."""
|
||||
return Panel(content, title="You", border_style="cyan", expand=False)
|
||||
def render_user_message(content: str) -> Text:
|
||||
"""Render a condensed user prompt as a single styled line.
|
||||
|
||||
Multi-line input is collapsed to the first line with a line count suffix.
|
||||
Long single lines are truncated.
|
||||
"""
|
||||
lines = content.splitlines()
|
||||
first = lines[0] if lines else content
|
||||
max_len = 120
|
||||
if len(first) > max_len:
|
||||
first = first[:max_len] + "…"
|
||||
suffix = f" (+{len(lines) - 1} lines)" if len(lines) > 1 else ""
|
||||
text = Text()
|
||||
text.append("You: ", style="bold cyan")
|
||||
text.append(first + suffix, style="cyan")
|
||||
return text
|
||||
|
||||
|
||||
def render_assistant_message(content: str) -> Panel:
|
||||
@@ -223,8 +236,8 @@ def print_success(message: str) -> None:
|
||||
|
||||
|
||||
def print_user_message(content: str) -> None:
|
||||
"""Print a user message in a styled panel."""
|
||||
console.print(Panel(content, title="You", border_style="cyan", expand=False))
|
||||
"""Print a condensed user prompt line."""
|
||||
console.print(render_user_message(content))
|
||||
|
||||
|
||||
def print_assistant_message(content: str) -> None:
|
||||
|
||||
Reference in New Issue
Block a user