Save The Tree implementation and acceptance work in progress

Preserve production code, regression fixtures, audio assets and provenance, test infrastructure, and the original-completion plan and progress ledger. Final game and Windows acceptance remain pending; excluded local artifacts and native experiments are not part of this snapshot.
This commit is contained in:
Takeshi
2026-10-11 15:58:00 +09:00
parent 39f6068461
commit b84bade045
235 changed files with 495831 additions and 312 deletions
@@ -1,4 +1,5 @@
extends SceneTree
const FixtureCleanup := preload("res://tests/helpers/ui_audio_fixture_cleanup.gd")
## Candidate only, not compiled/executed. Normal construction, staff, save and
## load controls are exercised; the sole money fixture is an explicitly labelled
## ledger spend at 23:59 using existing valid accounts/category. No tuning edits.
@@ -131,7 +132,11 @@ func run() -> void:
var button: Button = main.staff_candidate_buttons.get(&"heroine_anri")
expect(button != null and button.is_visible_in_tree() and not button.disabled and button.text == "無料で加入","normal staff pane offers already-approved free Anri despite unrelated debt")
if button == null:
main.queue_free()
var early_cleanup: Dictionary = await FixtureCleanup.free_owner_and_wait(self, main)
if not bool(early_cleanup.get(&"passed", false)):
push_error("Approved free unique UI ordinary owner cleanup failed: %s" % str(early_cleanup))
quit(96)
return
quit(failures)
return
var before: Dictionary = runtime.create_snapshot()
@@ -158,7 +163,10 @@ func run() -> void:
await process_frame
await RenderingServer.frame_post_draw
expect(root.get_texture().get_image().save_png(capture) == OK,"rendered named character and unpaid HUD captured")
main.queue_free()
await process_frame
var cleanup: Dictionary = await FixtureCleanup.free_owner_and_wait(self, main)
if not bool(cleanup.get(&"passed", false)):
push_error("Approved free unique UI ordinary owner cleanup failed: %s" % str(cleanup))
quit(96)
return
print("APPROVED_FREE_UNIQUE_UI phase=%s checks=%d failures=%d" % ["read" if "--read" in OS.get_cmdline_user_args() else "write",checks,failures])
quit(failures)