標記 PChome 例外自動解法收據就緒
Some checks failed
CD Pipeline / deploy (push) Has been cancelled

This commit is contained in:
ogt
2026-07-01 20:44:17 +08:00
parent 36d1d5c78d
commit 5f57dfd29c
2 changed files with 17 additions and 1 deletions

View File

@@ -1580,6 +1580,10 @@ def _build_candidate_exception_auto_resolution_artifact(receipt: dict[str, Any])
"writes_database": False,
}
resolver_count = len(resolvers)
retry_search_ready = any(key.endswith("search_expansion") for key in resolvers)
evidence_delta_ready = "named_candidate_evidence_delta" in resolvers
return {
"artifact_id": f"pchome-direct-mapping-exception-resolution-{artifact_hash[:16]}",
"source_receipt_id": receipt.get("receipt_id"),
@@ -1589,7 +1593,15 @@ def _build_candidate_exception_auto_resolution_artifact(receipt: dict[str, Any])
"failure_reasons": failure_reasons,
"machine_actions": next_actions,
"resolvers": resolvers,
"resolution_status": "AUTO_RESOLUTION_PLANNED",
"resolution_status": "AUTO_RESOLUTION_ARTIFACT_READY",
"execution_receipt": {
"resolver_artifact_built": True,
"resolver_count": resolver_count,
"ready_for_retry_search": retry_search_ready,
"ready_for_evidence_delta": evidence_delta_ready,
"writes_database": False,
"persists_candidate": False,
},
"next_package": "direct_mapping_candidate_decision_package_after_retry",
"guardrails": {
"machine_actionable": True,

View File

@@ -452,10 +452,14 @@ def test_direct_mapping_candidate_exception_auto_resolution_builds_machine_artif
assert package["summary"]["unit_basis_search_expansion_count"] == 1
assert package["summary"]["retry_search_action_count"] == 1
assert artifacts[0]["artifact_id"].startswith("pchome-direct-mapping-exception-resolution-")
assert artifacts[0]["resolution_status"] == "AUTO_RESOLUTION_ARTIFACT_READY"
assert artifacts[0]["execution_receipt"]["resolver_artifact_built"] is True
assert artifacts[0]["execution_receipt"]["ready_for_evidence_delta"] is True
assert artifacts[0]["resolvers"]["variant_bundle_discriminator"]["writes_database"] is False
assert artifacts[0]["resolvers"]["named_candidate_evidence_delta"]["resolution"] == "ready_for_retry_search"
assert "unit_basis_search_expansion" in artifacts[1]["resolvers"]
assert any("40ml" in term.lower() for term in artifacts[1]["resolvers"]["unit_basis_search_expansion"]["expanded_search_terms"])
assert artifacts[1]["execution_receipt"]["ready_for_retry_search"] is True
assert artifacts[1]["guardrails"]["can_auto_execute_read_only"] is True
assert package["summary"]["writes_database_count"] == 0
assert package["safety"]["writes_database"] is False