新增 PChome compact controlled apply readback
Some checks failed
CD Pipeline / deploy (push) Has been cancelled

This commit is contained in:
ogt
2026-07-02 13:28:40 +08:00
parent 99df3b9a76
commit f1795e555d
5 changed files with 376 additions and 4 deletions

View File

@@ -76,6 +76,7 @@ from services.pchome_mapping_backlog_service import (
build_pchome_direct_mapping_candidate_exception_resolution_closeout_package,
build_pchome_direct_mapping_retry_candidate_decision_package,
build_pchome_direct_mapping_retry_candidate_exception_auto_resolution_package,
build_pchome_direct_mapping_retry_candidate_exception_controlled_apply_compact_readback_package,
build_pchome_direct_mapping_retry_candidate_exception_controlled_apply_drift_recovery_package,
build_pchome_direct_mapping_retry_candidate_exception_controlled_apply_drift_verifier_package,
build_pchome_direct_mapping_retry_candidate_exception_controlled_apply_executor_package,
@@ -1446,6 +1447,29 @@ def test_direct_mapping_retry_candidate_exception_controlled_apply_receipt_repla
assert no_drift_recovery["summary"]["recovery_artifact_materialized_count"] == 1
assert no_drift_recovery["post_recovery_artifact_verifier"]["hash_match"] is True
assert no_drift_recovery["safety"]["writes_database"] is False
compact = build_pchome_direct_mapping_retry_candidate_exception_controlled_apply_compact_readback_package(
artifact_root=tmp_path,
run_id=run_id,
engine=engine,
source_receipt_replay=read_only_package,
source_drift_verifier=verifier,
source_drift_recovery=no_drift_recovery,
materialize_artifacts=True,
)
assert compact["result"] == "DIRECT_MAPPING_RETRY_EXCEPTION_CONTROLLED_APPLY_COMPACT_READBACK_VERIFIED"
assert compact["summary"]["target_selector_count"] == 2
assert compact["summary"]["post_apply_readback_pass_count"] == 2
assert compact["summary"]["drift_count"] == 0
assert compact["summary"]["compact_readback_artifact_materialized_count"] == 1
assert compact["summary"]["compact_readback_artifact_hash_match_count"] == 1
assert compact["compact_readback"]["status"] == "completed"
assert compact["compact_readback"]["next_machine_action"] == "keep_monitoring_drift"
assert compact["receipts"]["apply"]["artifact_key"] == "retry_exception_controlled_apply_executor_receipt"
assert compact["receipts"]["replay"]["hash_match"] is True
assert compact["receipts"]["drift"]["hash_match"] is True
assert compact["receipts"]["recovery"]["hash_match"] is True
assert compact["post_compact_artifact_verifier"]["hash_match"] is True
assert compact["safety"]["writes_database"] is False
with engine.begin() as conn:
conn.execute(text("""
UPDATE pchome_product_matches
@@ -1487,6 +1511,22 @@ def test_direct_mapping_retry_candidate_exception_controlled_apply_receipt_repla
assert recovery["post_recovery_artifact_verifier"]["hash_match"] is True
assert recovery["safety"]["writes_database"] is False
assert recovery["safety"]["writes_artifact_count"] == 1
drift_compact = build_pchome_direct_mapping_retry_candidate_exception_controlled_apply_compact_readback_package(
artifact_root=tmp_path,
run_id=run_id,
engine=engine,
source_drift_verifier=drift_package,
source_drift_recovery=recovery,
materialize_artifacts=True,
)
assert drift_compact["result"] == "DIRECT_MAPPING_RETRY_EXCEPTION_CONTROLLED_APPLY_COMPACT_READBACK_DRIFT_REQUIRES_RECOVERY"
assert drift_compact["summary"]["drift_count"] == 1
assert drift_compact["summary"]["drift_recovery_action_count"] == 1
assert drift_compact["compact_readback"]["status"] == "blocked"
assert drift_compact["compact_readback"]["next_machine_action"] == "run_controlled_reapply_check_mode"
assert drift_compact["summary"]["compact_readback_artifact_materialized_count"] == 1
assert drift_compact["post_compact_artifact_verifier"]["hash_match"] is True
assert drift_compact["safety"]["writes_database"] is False
assert call_count["search"] == 2