fix(session): add name field and summary section to session list JSON output #1574

Merged
freemo merged 1 commits from fix/session-list-json-output-missing-name-summary into master 2026-04-02 22:04:40 +00:00
+24 -2
View File
@@ -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,
}