fix: gate complete AOI tile footprint

This commit is contained in:
OpenAI Codex
2026-09-19 00:00:48 +08:00
parent c03a5ac788
commit fa0d6f265b
2 changed files with 23 additions and 0 deletions

View File

@@ -300,6 +300,7 @@ def main() -> None:
"semantic_backlog": result.get("semantic_backlog"), "semantic_backlog": result.get("semantic_backlog"),
"non_renderable_omissions": result.get("non_renderable_omissions"), "non_renderable_omissions": result.get("non_renderable_omissions"),
"non_renderable_omission_layers": result.get("non_renderable_omission_layers"), "non_renderable_omission_layers": result.get("non_renderable_omission_layers"),
"tile_footprint_contract": result.get("tile_footprint_contract"),
"style_sprite_contract": { "style_sprite_contract": {
"overall": (result.get("style_sprite_contract") or {}).get("overall"), "overall": (result.get("style_sprite_contract") or {}).get("overall"),
"contract_unmatched_count": (result.get("style_sprite_contract") or {}).get("contract_unmatched_count"), "contract_unmatched_count": (result.get("style_sprite_contract") or {}).get("contract_unmatched_count"),

View File

@@ -481,7 +481,27 @@ def finalize_release(
"failure_examples": s52_runtime_failures[:100], "failure_examples": s52_runtime_failures[:100],
} }
tile_enumeration_mode = str(plan.get("tile_enumeration_mode") or "coverage")
tile_footprint_contract = {
"status": "NOT_APPLICABLE",
"mode": tile_enumeration_mode,
"planned_tile_jobs": int(plan["job_count"]),
"pbf_file_count": len(pbf_files),
"report_file_count": len(report_files),
}
if tile_enumeration_mode == "aoi-complete":
tile_footprint_contract["status"] = (
"PASS"
if len(pbf_files) == len(report_files) == int(plan["job_count"])
else "FAIL"
)
failures = [] failures = []
if tile_enumeration_mode == "aoi-complete":
if len(report_files) != int(plan["job_count"]):
failures.append("aoi_complete_report_count_mismatch")
if len(pbf_files) != int(plan["job_count"]):
failures.append("aoi_complete_pbf_count_mismatch")
if hard_gate: if hard_gate:
failures.append("hard_gate_unmapped") failures.append("hard_gate_unmapped")
if encoder_dropped: if encoder_dropped:
@@ -513,6 +533,8 @@ def finalize_release(
"policy_sha256": plan["policy_sha256"], "policy_sha256": plan["policy_sha256"],
"builder_contract_version": plan.get("builder_contract_version"), "builder_contract_version": plan.get("builder_contract_version"),
"production_pipeline_version": plan.get("production_pipeline_version"), "production_pipeline_version": plan.get("production_pipeline_version"),
"tile_enumeration_mode": tile_enumeration_mode,
"tile_footprint_contract": tile_footprint_contract,
"s52": plan.get("s52"), "s52": plan.get("s52"),
"aoi": plan.get("aoi"), "aoi": plan.get("aoi"),
"s52_runtime_contract": s52_runtime_contract, "s52_runtime_contract": s52_runtime_contract,