Files
aetherbound-guild/docs/runtime/M32_PAGE_VIEW_ARCHITECTURE_VISUAL_AUDIT.md
T

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_CN
  • 844x390, en
  • 1280x720, zh_CN
  • 1280x720, 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

  • ABGRecoveryPageView imports only presentation/foundation UI resources and emits explicit intents.
  • The View has no BattleService, Save, compatibility-facade or current_screen dependency.
  • ABGEntryShell remains the composition root and translates intents with a deferred connection so page transitions do not free a locked Godot node.
  • ABGRecoveryPageController and BattleService remain 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.