Fix regressions in roster-only suites from A06/A07/P14-03
The formal collector's roster includes 46 suites the Makefile never ran; the first formal attempt stopped on test_required_kitchen and a sweep found: - v15 MIMI purchase saves could not be written once Runtime saves carried mana_reserve (P06-01): the format detector now validates that section and excludes it before the unchanged v15 allowlist, like special_peeping_rooms. - test_required_kitchen's legacy14 exact-load comparison now maps the two approved migrations (fresh A06 reserve at the restored boundary, elevator snapshot v1->v2) after checking each against its contract, in Runtime key order; every other byte must still match. - test_runtime_defense_autonomy allowed Mana to change only by the A06 flow. - test_p08_normal_placement_ops expects 25 palette slots (two warps); its suite-policy pin is updated with flags unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
40364345ab
commit
83b170a4c7
@@ -1055,6 +1055,12 @@ static func _snapshot_package_format(snapshot: Dictionary) -> int:
|
||||
# Keep PurchaseQuotePlansV2's exact original allowlist and all format rules.
|
||||
runtime_data = runtime_data.duplicate()
|
||||
runtime_data.erase(&"special_peeping_rooms")
|
||||
if runtime_data.has(&"mana_reserve"):
|
||||
# A06 finite reserve: validate the section, then keep the exact original
|
||||
# v15 purchase allowlist unchanged, as for the peeping-room extension.
|
||||
if not preload("res://scripts/mana/mana_reserve_cycle.gd").new().restore_snapshot(runtime_data[&"mana_reserve"]): return -1
|
||||
runtime_data = runtime_data.duplicate()
|
||||
runtime_data.erase(&"mana_reserve")
|
||||
if version >= 1 and version <= 14:
|
||||
return -1 if PurchaseQuoteV2.has_history(runtime_data) else FORMAT_VERSION
|
||||
if version != 15: return -1
|
||||
|
||||
Reference in New Issue
Block a user