feat(awooop): classify callback trace gaps
All checks were successful
CD Pipeline / tests (push) Successful in 1m33s
Code Review / ai-code-review (push) Successful in 12s
CD Pipeline / build-and-deploy (push) Successful in 3m32s
CD Pipeline / post-deploy-checks (push) Successful in 1m33s

This commit is contained in:
Your Name
2026-05-25 21:32:37 +08:00
parent f52fdebe0a
commit 32e172ed8b
7 changed files with 159 additions and 7 deletions

View File

@@ -681,6 +681,8 @@ def test_list_callback_replies_response_preserves_callback_evidence() -> None:
"outbound_reply_markup_missing_trace_ref_latest_sent_at": (
datetime(2026, 5, 18, 7, 40, 0)
),
"outbound_reply_markup_trace_ref_gap_status": "recent_backlog",
"outbound_reply_markup_trace_ref_gap_next_action": "watch_24h_decay",
"outbound_reply_markup_missing_incident_ref_top_prefixes": [
{
"prefix": "silence",
@@ -755,6 +757,12 @@ def test_list_callback_replies_response_preserves_callback_evidence() -> None:
assert dumped["summary"][
"outbound_reply_markup_missing_trace_ref_latest_sent_at"
] == "2026-05-18T07:40:00"
assert dumped["summary"]["outbound_reply_markup_trace_ref_gap_status"] == (
"recent_backlog"
)
assert dumped["summary"]["outbound_reply_markup_trace_ref_gap_next_action"] == (
"watch_24h_decay"
)
assert dumped["summary"][
"outbound_reply_markup_missing_incident_ref_top_prefixes"
][0] == {
@@ -856,6 +864,10 @@ def test_callback_reply_audit_summary_marks_missing_snapshots() -> None:
assert summary["outbound_reply_markup_missing_trace_ref_latest_sent_at"] == (
datetime(2026, 5, 25, 8, 42, 22)
)
assert summary["outbound_reply_markup_trace_ref_gap_status"] == "active_gap"
assert summary["outbound_reply_markup_trace_ref_gap_next_action"] == (
"inspect_recent_outbound_source_refs"
)
assert summary[
"outbound_reply_markup_missing_incident_ref_recent_24h_total"
] == 3
@@ -949,6 +961,10 @@ def test_callback_reply_audit_summary_marks_mixed_legacy_snapshots_partial() ->
assert summary["outbound_reply_markup_missing_trace_ref_latest_sent_at"] == (
datetime(2026, 5, 25, 12, 13, 1)
)
assert summary["outbound_reply_markup_trace_ref_gap_status"] == "recent_backlog"
assert summary["outbound_reply_markup_trace_ref_gap_next_action"] == (
"watch_24h_decay"
)
assert summary["outbound_reply_markup_missing_trace_ref_top_prefixes"][0][
"recent_24h_total"
] == 23