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
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:
@@ -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