fix: arbitrate on the evidence the builder uses

This commit is contained in:
Abdessamad Derraz committed 2026-09-07 07:02:39 +02:00
1 parent c99e292a4d
commit 1455e0423c
4 files changed
+95 -15

No files matched your search

+9 -7
View File
@@ -797,6 +797,13 @@ def verify_platform(
# The builder settles a destination claimed by both layers; this must read
# the same decision, or the two tools describe different packs.
has_zipped = any(
fe.get("zipped_file")
for sys in config.get("systems", {}).values()
for fe in sys.get("files", [])
)
zip_contents = build_zip_contents_index(db) if has_zipped else {}
slot_overrides: dict[str, str] = {}
if emu_profiles:
base_dest = config.get("base_destination", "")
@@ -810,6 +817,8 @@ def verify_platform(
db,
base_dest,
{str(c) for c in config.get("standalone_cores", [])},
zip_contents,
data_dir_registry,
):
decision = slots.arbitrate(conflict, mode)
if decision.serves_both and decision.winner.local_path:
@@ -818,13 +827,6 @@ def verify_platform(
key = key[len(base_dest) + 1:]
slot_overrides[key] = decision.winner.local_path
has_zipped = any(
fe.get("zipped_file")
for sys in config.get("systems", {}).values()
for fe in sys.get("files", [])
)
zip_contents = build_zip_contents_index(db) if has_zipped else {}
# Build HLE + validation indexes from emulator profiles
profiles = (
emu_profiles