fix(session): add name field and summary section to session list JSON output #1574
@@ -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,
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user