fix: finalize Flow v2 authoritative cutover semantics

This commit is contained in:
plx
2026-08-16 01:58:12 +00:00
parent 213ba6b41b
commit f96b1b3d6e
6 changed files with 73 additions and 8 deletions

View File

@@ -26,6 +26,10 @@ NAMED = {
"RZSOLAR canonical": ("fd221608-e007-4043-a23d-07e0c119a345", "REVIEW_REQUIRED", "REVIEW_RECONSTRUCTED_PROCESS", "review"),
"RZSOLAR duplicate": ("434124fb-ac19-4d78-909a-55761d7e8daa", "REVIEW_REQUIRED", None, "suppressed"),
}
DUPLICATE_CANONICAL = {
"1816a06e-9a69-4a9b-9279-1263156892d3": "dc89a466-db24-401b-bfe9-d47644b2d0c8",
"434124fb-ac19-4d78-909a-55761d7e8daa": "fd221608-e007-4043-a23d-07e0c119a345",
}
def parse_args(argv: list[str] | None = None) -> argparse.Namespace:
@@ -151,11 +155,18 @@ def build_report(
actual_queue = "suppressed" if suppressed else decision.get("operational_queue")
actual_action = decision.get("effective_action")
actual_business = decision.get("business_next_action")
passed = actual_business == expected_business and actual_action == expected_action and actual_queue == expected_queue
duplicate_case = expected_queue == "suppressed"
expected_canonical = DUPLICATE_CANONICAL.get(oid)
canonical_ok = not duplicate_case or decision.get("canonical_opportunity_id") == expected_canonical
passed = ((duplicate_case or actual_business == expected_business)
and actual_action == expected_action and actual_queue == expected_queue and canonical_ok)
named_cases[name] = {"opportunity_id": oid, "expected_business_next_action": expected_business,
"actual_business_next_action": actual_business, "expected_action": expected_action,
"expected_queue": expected_queue, "actual_action": actual_action,
"actual_queue": actual_queue, "passed": passed}
if duplicate_case:
named_cases[name].update({"expected_canonical_opportunity_id": expected_canonical,
"actual_canonical_opportunity_id": decision.get("canonical_opportunity_id")})
fiscal = []
for item in v2_current.values():