From 2a7956e515b019eeda00529daa9e0d5590057c23 Mon Sep 17 00:00:00 2001 From: Jeffrey Phillips Freeman Date: Thu, 2 Apr 2026 22:04:03 +0000 Subject: [PATCH] fix(session): add name field and summary section to session list JSON output - Add name field to each session entry in JSON output - Add summary section with total, most_recent, oldest, total_messages, storage fields - Move total from top-level into summary section - Most recent/oldest show session name if available, otherwise truncated ID - Storage field is placeholder (0 KB) pending actual storage calculation implementation Fixes #1508 --- src/cleveragents/cli/commands/session.py | 26 ++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/cleveragents/cli/commands/session.py b/src/cleveragents/cli/commands/session.py index e8b32d9a8..d742c3823 100644 --- a/src/cleveragents/cli/commands/session.py +++ b/src/cleveragents/cli/commands/session.py @@ -123,20 +123,42 @@ def _session_summary_dict(session: Session) -> OrderedDict[str, Any]: def _session_list_dict(sessions: list[Session]) -> dict[str, Any]: - """Build the list output with summary stats.""" + """Build the list output with summary stats per spec.""" items = [] for s in sessions: items.append( { "id": s.session_id, + "name": s.name or None, "actor": s.actor_name or "(none)", "messages": s.message_count, "updated": s.updated_at.isoformat(), } ) + + # Build summary section per spec + total_messages = sum(s.message_count for s in sessions) + + # Find most recent and oldest sessions + if sessions: + sorted_sessions = sorted(sessions, key=lambda x: x.updated_at, reverse=True) + most_recent = sorted_sessions[0].name or sorted_sessions[0].session_id[:8] + oldest = sorted_sessions[-1].name or sorted_sessions[-1].session_id[:8] + else: + most_recent = None + oldest = None + + summary = { + "total": len(sessions), + "most_recent": most_recent, + "oldest": oldest, + "total_messages": total_messages, + "storage": "0 KB", # Placeholder - actual storage calculation not implemented + } + return { "sessions": items, - "total": len(sessions), + "summary": summary, } -- 2.52.0