fix(cli): correct session show rich output Session Summary panel field labels and fields
CI / lint (push) Waiting to run
CI / typecheck (push) Waiting to run
CI / security (push) Waiting to run
CI / quality (push) Waiting to run
CI / unit_tests (push) Waiting to run
CI / integration_tests (push) Waiting to run
CI / e2e_tests (push) Waiting to run
CI / coverage (push) Blocked by required conditions
CI / benchmark-regression (push) Blocked by required conditions
CI / benchmark-publish (push) Waiting to run
CI / build (push) Waiting to run
CI / docker (push) Blocked by required conditions
CI / helm (push) Waiting to run
CI / status-check (push) Blocked by required conditions

Reviewed and APPROVED. Closes #3040.
This commit was merged in pull request #3302.
This commit is contained in:
2026-04-05 21:12:13 +00:00
committed by Forgejo
3 changed files with 19 additions and 4 deletions
+8
View File
@@ -45,6 +45,14 @@ Feature: Session CLI commands
When I run session CLI show with a valid session ID
Then the session CLI show should succeed
And the session CLI output should contain "Session Summary"
And the session CLI output should contain "ID:"
And the session CLI output should contain "Actor:"
And the session CLI output should contain "Messages:"
And the session CLI output should contain "Created:"
And the session CLI output should contain "Updated:"
And the session CLI output should contain "Automation:"
And the session CLI output should not contain "Session ID:"
And the session CLI output should not contain "Namespace:"
Scenario: Show session with JSON format
Given there is a mocked session with messages
+7
View File
@@ -490,6 +490,13 @@ def step_output_contains(context: Context, text: str) -> None:
)
@then('the session CLI output should not contain "{text}"')
def step_output_not_contains(context: Context, text: str) -> None:
assert text not in context.result.output, (
f"Expected '{text}' NOT in output, but it was found:\n{context.result.output}"
)
@then("the session CLI output should be valid JSON")
def step_output_valid_json(context: Context) -> None:
try:
+4 -4
View File
@@ -370,16 +370,16 @@ def show(
typer.echo(format_output(dict(data), fmt))
return
# Session summary panel — spec-compliant field labels
# Session summary panel — field order per spec: ID, Actor, Messages,
# Created, Updated, Automation (docs/specification.md §agents session show)
details = (
f"[bold]ID:[/bold] {session.session_id}\n"
f"[bold]Actor:[/bold] {session.actor_name or '(none)'}\n"
f"[bold]Messages:[/bold] {session.message_count}\n"
f"[bold]Created:[/bold] {session.created_at.strftime('%Y-%m-%d %H:%M')}\n"
f"[bold]Updated:[/bold] {session.updated_at.strftime('%Y-%m-%d %H:%M')}"
f"[bold]Updated:[/bold] {session.updated_at.strftime('%Y-%m-%d %H:%M')}\n"
f"[bold]Automation:[/bold] {session.automation or '(none)'}"
)
if session.automation is not None:
details += f"\n[bold]Automation:[/bold] {session.automation}"
console.print(Panel(details, title="Session Summary", expand=False))
# Recent messages