2.4 KiB
M32 Page View Architecture — Recovery Pilot Audit
Scope
The OUT-004 Recovery page was extracted from entry_shell.gd into the
UI-only ABGRecoveryPageView, mounted through ABGPageContext, and wired to
the existing ABGRecoveryPageController/BattleService boundary through
named back and commit intents. No gameplay, Save, localization, input or
visual design semantics were changed.
Source-bound evidence
| Check | Attempt / source | Result |
|---|---|---|
| View contract | m32-recovery-view-contract-source-bound-v3 / 088f46be6993a35769756a4d617e2f2be19d00af |
PASS; ABG_M32_RECOVERY_VIEW_CONTRACT_OK exactly once; strict diagnostics 0 |
| DEV-5 candidate | m32-dev5-candidate / 088f46be6993a35769756a4d617e2f2be19d00af |
PASS; 24 normal frames; parsed touch; strict diagnostics 0; archive SHA-256 44408a88d7a1d9cc415313e82e51a79d59a33db4ab316a44f231402c65793082 |
| MVP first-cycle audit | m32-mvp-audit / 088f46be6993a35769756a4d617e2f2be19d00af |
PASS; ABG_MVP_FIRST_CYCLE_AUDIT_OK exactly once; 128 normal 100% frames; zh_CN/en; required landscape fixtures; strict diagnostics 0; archive SHA-256 412c66705ca4a1eacb28ed407a1fb23fe2fe4d1467e6b14746e9ae7002b25375 |
The focused normal-render attempt is
m32-recovery-capture/20260825T134356Z-67822. Its four Recovery images are
byte-identical to the pre-migration M30 baseline images from
m30-mvp-audit/20260825T114228Z-51617 at:
760x360,zh_CN844x390,en1280x720,zh_CN1280x720,en
Each comparison reported same_bytes=true, bbox=None, and zero changed
pixels. This is an equivalence check, not a new visual authority or Owner
acceptance gate.
Boundary audit
ABGRecoveryPageViewimports only presentation/foundation UI resources and emits explicit intents.- The View has no
BattleService, Save, compatibility-facade orcurrent_screendependency. ABGEntryShellremains the composition root and translates intents with a deferred connection so page transitions do not free a locked Godot node.ABGRecoveryPageControllerandBattleServiceremain the authorities for ViewData validation, mutation, receipts and persistence.
Remaining scope
M32 closes only the Recovery pilot. The remaining page construction in
entry_shell.gd is intentionally not claimed as migrated. Future page
extractions require their own bounded step and focused equivalence evidence.