diff --git a/custodian_cli.py b/custodian_cli.py index 56b7fe6..361a1ec 100644 --- a/custodian_cli.py +++ b/custodian_cli.py @@ -560,10 +560,16 @@ def cmd_status(_args: argparse.Namespace) -> None: print(f"API: {health.get('status', '?')} DB: {health.get('db', '?')}") summary = _api_get("/state/summary") t = summary["totals"] - print(f"Topics: {t['topics']['active']} active") - print(f"Workstreams: {t['workstreams']['active']} active, {t['workstreams']['blocked']} blocked") - print(f"Tasks: {t['tasks']['in_progress']} in-progress, {t['tasks']['todo']} todo, {t['tasks']['blocked']} blocked") - print(f"Decisions: {t['decisions']['open']} open, {t['decisions']['escalated']} escalated") + topics = t.get("topics", {}) + workplans = t.get("workplans") or t.get("workstreams", {}) + tasks = t.get("tasks", {}) + decisions = t.get("decisions", {}) + print(f"API base: {API_BASE}") + print(f"Topics: {topics.get('active', 0)} active") + print(f"Workplans: {workplans.get('active', 0)} active, {workplans.get('blocked', 0)} blocked") + # Task statuses are wait|todo|progress|done|cancel (see workplan-convention.md). + print(f"Tasks: {tasks.get('progress', 0)} in-progress, {tasks.get('todo', 0)} todo, {tasks.get('wait', 0)} waiting") + print(f"Decisions: {decisions.get('open', 0)} open, {decisions.get('escalated', 0)} escalated") blocking = summary.get("blocking_decisions", []) if blocking: print(f"\nBlocking decisions ({len(blocking)}):")