feat(pchome): close freshness and multi-market decision gaps

This commit is contained in:
ogt
2026-07-10 21:22:42 +08:00
parent 9125afc8a7
commit 107d8ed797
19 changed files with 1179 additions and 85 deletions

View File

@@ -189,7 +189,7 @@ def test_competitor_review_queue_is_canonical_unit_price_handoff():
assert "AI 單位價" in daily_template
assert "competitor_intel.review_queue" in daily_template
assert "chart_data.competitor_coverage" in growth_template
assert "coverage.decision_support_rate" in growth_template
assert "coverage.match_rate" in growth_template
assert "coverage.decision_ready_rate" in growth_template
assert "coverage.decision_support_rate" in growth_template
assert "coverage.catalog_comparable_count" in growth_template
@@ -367,6 +367,7 @@ def test_competitor_review_reasons_prefer_json_payload_labels():
assert envelope["recommended_action"]["requires_hitl"] is False
assert envelope["recommended_action"]["owner"] == "AI Agent"
assert envelope["recommended_action"]["ai_exception_mode"] == "machine_verifiable_auto_resolution"
assert envelope["recommended_action"]["requires_ai_exception"] is True
assert envelope["recommended_action"]["action"] == "verify_or_reject_identity"
assert any(evidence["metric"] == "reasons" for evidence in envelope["evidence"])
assert any(evidence["metric"] == "identity_evidence" for evidence in envelope["evidence"])
@@ -505,11 +506,13 @@ def test_review_decision_brief_is_shared_by_openclaw_and_ppt():
brief = summarize_review_decision_envelopes([item], limit=5)
assert brief["hitl_count"] == 0
assert brief["ai_exception_count"] == 1
assert brief["auto_execute_blocked_count"] == 1
assert brief["severity_counts"]
assert brief["data_quality_counts"] == {"complete": 1}
assert "AI 確認身份後採用同款" in brief["text"]
assert "HITL" not in brief["text"]
assert "AI例外" in brief["text"]
assert "DDAO4C-A79050612" in brief["text"]
repo_source = (ROOT / "services" / "competitor_intel_repository.py").read_text(encoding="utf-8")