ACTIVITY-WP-0044-T02: read freshness-run.v1 results[] from rmgr
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Build and Publish Container Image / build-and-push (push) Successful in 1m6s

The repo-manager runner reports per-repository rows under results[], not
receipts[]; the projection counted nothing against the real output.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 692292@bnt-lap001
Assistant-Session: 89c7d8e8-e1b3-47eb-9411-a0ab227fca2f
This commit is contained in:
tegwick 2026-10-04 13:18:33 +02:00
parent d6eb788578
commit b2c6c56132
3 changed files with 29 additions and 10 deletions

View file

@ -156,11 +156,13 @@ def normalize_operation_result(operation_id: str, raw: Any) -> dict[str, Any]:
"script_exit_code": exit_code,
}
if operation_id == "repo_manager_freshness":
receipts = result.get("receipts")
# repo-manager.freshness-run.v1 reports one row per attempted repository
# under "results"; dry-run rows carry only a planned action, no outcome.
results = result.get("results")
outcomes = {name: 0 for name in REPO_MANAGER_FRESHNESS_OUTCOMES}
if isinstance(receipts, list):
for receipt in receipts:
outcome = receipt.get("outcome") if isinstance(receipt, dict) else None
if isinstance(results, list):
for row in results:
outcome = row.get("outcome") if isinstance(row, dict) else None
if outcome in outcomes:
outcomes[outcome] += 1
exit_code = result.get("exit_code", 0)
@ -171,7 +173,7 @@ def normalize_operation_result(operation_id: str, raw: Any) -> dict[str, Any]:
"apply": bool(result.get("apply")),
"limit": _safe_count(result.get("limit")),
"max_seconds": _safe_count(result.get("max_seconds")),
"receipt_count": len(receipts) if isinstance(receipts, list) else 0,
"result_count": len(results) if isinstance(results, list) else 0,
"outcomes": outcomes,
"exit_code": exit_code,
}