fix(session): add name field and summary section to session list JSON output
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 16s
CI / lint (pull_request) Failing after 17s
CI / helm (pull_request) Successful in 23s
CI / quality (pull_request) Successful in 33s
CI / typecheck (pull_request) Failing after 48s
CI / coverage (pull_request) Has been skipped
CI / security (pull_request) Failing after 49s
CI / benchmark-regression (pull_request) Has been skipped
CI / unit_tests (pull_request) Failing after 1m45s
CI / docker (pull_request) Has been skipped
CI / e2e_tests (pull_request) Failing after 15m18s
CI / integration_tests (pull_request) Failing after 21m5s
CI / status-check (pull_request) Failing after 1s

- 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
This commit is contained in:
2026-04-02 22:04:03 +00:00
parent 48cdcb6ea7
commit 2a7956e515
+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,
}