fix(agents): map consumer receipts into learning loop
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / tests (push) Has been cancelled
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / build-and-deploy (push) Has been cancelled
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / tests (push) Has been cancelled
This commit is contained in:
@@ -1475,6 +1475,110 @@ def test_trace_ledger_uses_controlled_apply_chain_for_auto_repair_receipt_gap():
|
||||
)
|
||||
|
||||
|
||||
def test_consumer_receipts_close_taxonomy_decision_and_learning_gaps():
|
||||
readback = build_runtime_receipt_readback_from_rows(
|
||||
project_id="awoooi",
|
||||
db_read_status="ok",
|
||||
operation_count_rows=[
|
||||
{
|
||||
"operation_type": "ansible_candidate_matched",
|
||||
"status": "success",
|
||||
"total": 2013,
|
||||
"recent": 12,
|
||||
},
|
||||
{
|
||||
"operation_type": "ansible_check_mode_executed",
|
||||
"status": "success",
|
||||
"total": 2013,
|
||||
"recent": 12,
|
||||
},
|
||||
{
|
||||
"operation_type": "ansible_apply_executed",
|
||||
"status": "success",
|
||||
"total": 161,
|
||||
"recent": 0,
|
||||
},
|
||||
{
|
||||
"operation_type": "ansible_learning_writeback_recorded",
|
||||
"status": "success",
|
||||
"total": 122,
|
||||
"recent": 0,
|
||||
},
|
||||
],
|
||||
operation_latest_rows=[],
|
||||
auto_repair_count_rows=[],
|
||||
verifier_count_rows=[
|
||||
{"verification_result": "success", "total": 161, "recent": 0},
|
||||
],
|
||||
km_count_rows=[
|
||||
{"status": "review", "total": 161, "recent": 0},
|
||||
],
|
||||
telegram_count_rows=[
|
||||
{"send_status": "sent", "total": 300, "recent": 16},
|
||||
],
|
||||
executor_log_count_rows=[
|
||||
{"status": "success", "total": 2141, "recent": 12},
|
||||
],
|
||||
log_controlled_writeback_consumer=_log_controlled_writeback_consumer_readback(),
|
||||
)
|
||||
|
||||
assert readback["latest_flow_closure"]["closed"] is False
|
||||
assert readback["latest_failure_classification"]["classification"] == (
|
||||
"no_controlled_apply_observed"
|
||||
)
|
||||
|
||||
taxonomy = readback["log_integration_taxonomy"]
|
||||
assert taxonomy["rollups"]["source_family_count"] == 10
|
||||
assert taxonomy["rollups"]["active_source_family_count"] == 10
|
||||
assert taxonomy["rollups"]["inactive_source_family_count"] == 0
|
||||
quality_by_source = {
|
||||
item["source_family_id"]: item.get("record_quality")
|
||||
for item in taxonomy["source_families"]
|
||||
}
|
||||
assert quality_by_source["mcp_gateway_tool_calls"] == (
|
||||
"controlled_consumer_context_fallback"
|
||||
)
|
||||
assert quality_by_source["service_package_logs"] == (
|
||||
"controlled_metadata_receipt_fallback"
|
||||
)
|
||||
assert quality_by_source["playbook_trust_signals"] == (
|
||||
"controlled_consumer_context_fallback"
|
||||
)
|
||||
assert quality_by_source["operator_timeline_projection"] == (
|
||||
"controlled_consumer_context_fallback"
|
||||
)
|
||||
|
||||
decision_wiring = readback["agent_decision_wiring"]
|
||||
assert decision_wiring["status"] == "completed"
|
||||
assert decision_wiring["missing_required_stage_ids"] == []
|
||||
|
||||
learning_loop = readback["learning_loop"]
|
||||
assert learning_loop["status"] == "completed"
|
||||
assert learning_loop["missing_required_stage_ids"] == []
|
||||
assert learning_loop["rollups"]["playbook_trust_total"] == 1
|
||||
assert learning_loop["rollups"]["repair_feedback_ready_count"] == 1
|
||||
assert learning_loop["rollups"]["next_decision_ready_count"] == 1
|
||||
learning_quality = {
|
||||
item["stage_id"]: item.get("record_quality")
|
||||
for item in learning_loop["stages"]
|
||||
}
|
||||
assert learning_quality["verified_execution_outcome"] == (
|
||||
"aggregate_verifier_receipt_fallback"
|
||||
)
|
||||
assert learning_quality["km_learning_writeback"] == "aggregate_km_receipt_fallback"
|
||||
assert learning_quality["playbook_trust_delta"] == (
|
||||
"controlled_consumer_context_fallback"
|
||||
)
|
||||
|
||||
progress_items = {
|
||||
item["work_item_id"]: item
|
||||
for item in readback["work_item_progress"]["ordered_items"]
|
||||
}
|
||||
assert progress_items["P1-A-ingestion-coverage"]["status"] == "completed"
|
||||
assert progress_items["P1-B-agent-decision-wiring"]["status"] == "completed"
|
||||
assert progress_items["P1-C-learning-loop"]["status"] == "completed"
|
||||
|
||||
|
||||
def test_runtime_receipt_recovery_keeps_partial_live_log_events_visible():
|
||||
readback = build_runtime_receipt_readback_from_rows(
|
||||
project_id="awoooi",
|
||||
|
||||
Reference in New Issue
Block a user