5.3 KiB
M42 Contract Choice Page View Visual Audit
Scope and stopping point
M42 extracts the first-cycle Contract Choice page from entry_shell.gd into
the passive ABGContractChoicePageView. The existing framed content-scene
composition, First Windglass Crossing facts, two Company portraits, four
difficulty options, local selection, Confirm/Cancel boundary and normal
100% presentation remain unchanged. This is a structural View migration;
Contract creation, economy, Guild, Market, Hire, Save, localization,
packaging and release semantics were not changed. 130% text scale remains
non-blocking.
Product integration source: 885506f36f0906d09d28d4c89387ea4ad8f80dcb.
Source-bound verification source: da94e8aa1655f7eef513dab8d5ddf8cfbd2389bc.
Visual baseline source: 1eea77927adfabc91f48d18a57bb4fc1d356c940.
Architecture contract
ABGContractChoicePageViewowns the world background/shade, framed content scene,ContractChoiceLayouttree, Company portrait presentation, local difficulty controls, focus and explicitselect_difficulty/confirm/backintents.- The View consumes the copied
ABGContractChoicePageController.snapshot()data and has no service, persistence, content-registry, compatibility facade, route-state or EntryShell dependency. ABGContractChoicePageControllerremains the copied-facts authority for Company/recruit presentation, route facts, starting Coin, Line capacity, Market counts, localized difficulty options and Confirm eligibility.- EntryShell remains the composition root. It translates deferred intents to the existing local selection, return-to-Guild and transaction boundaries.
GuildContractService.create_contractremains the only Contract mutation and receipt authority. Difficulty selection remains local and Cancel creates no receipt.
Verification attempts
All accepted formal attempts used tools/run_test_attempt.py, immutable
source archives, strict diagnostics and owned workspace/process cleanup.
Required markers were checked exactly once.
| Check | Attempt | Result | Evidence archive SHA-256 |
|---|---|---|---|
| View/controller/runtime/route focused regressions + four Contract Choice captures | m42-contract-choice-view-focused/20260826T012727Z-9347 |
PASS; ABG_M42_CONTRACT_CHOICE_VIEW_CONTRACT_OK, ABG_M19_CONTRACT_CHOICE_CONTROLLER_OK, ABG_DEV3_GUILD_OK, ABG_DEV3_MARKET_OK, ABG_DEV3_HIRE_OK, ABG_M09_MARKET_RUNTIME_OK, ABG_M10_RECRUIT_REVIEW_OK and ABG_M19_CONTRACT_CHOICE_CAPTURE_OK exactly once; strict diagnostics 0 |
5267f40bcd81faaa869f9e643c7ba45ae9688170386d4f6fbf946a82834a7c81 |
| DEV-3 candidate | m42-dev3-candidate/20260826T012905Z-10989 |
PASS; ABG_M42_CONTRACT_CHOICE_VIEW_CONTRACT_OK and ABG_DEV3_CANDIDATE_SUITE_OK; 24 normal captures; parsed touch; strict diagnostics 0 |
551ac7447e7e43de4f5763135423d3fac147be5bf5745ba0e34cdbc5efe8fdda |
| Full MVP first-cycle audit | m42-mvp-audit/20260826T013040Z-12739 |
PASS; ABG_M42_CONTRACT_CHOICE_VIEW_CONTRACT_OK and ABG_MVP_FIRST_CYCLE_AUDIT_OK; 128 normal 100% frames across zh_CN/en and 760x360/844x390/1280x720; parsed touch; strict diagnostics 0 |
8070b321fecbe91677261d6130ef082b2849249e8e2c18d26d32af9d6a52948e |
| Immutable M19 baseline capture set | m42-contract-choice-baseline/20260826T011055Z-61940 |
PASS from baseline source 1eea779; ABG_M19_CONTRACT_CHOICE_CONTROLLER_OK, ABG_DEV3_GUILD_OK and ABG_M19_CONTRACT_CHOICE_CAPTURE_OK; four normal captures; strict diagnostics 0 |
be4bd5ea328abde9516b6688cd7e9db3291e239d216c10421c838236f5d52e45 |
Four-fixture visual equivalence
The accepted M19 baseline and the M42 PASS capture were extracted from their
evidence archives and compared byte-for-byte. Every required normal 100%
fixture is byte-identical; decoded pixel differences are zero for all rows.
| Fixture | Baseline SHA-256 | M42 SHA-256 | Comparison |
|---|---|---|---|
760x360 / zh_CN |
9648ead00847ce8b157202a3d678540b6463d2c0fb7fb4adba0dff2eb4a32f01 |
9648ead00847ce8b157202a3d678540b6463d2c0fb7fb4adba0dff2eb4a32f01 |
byte-identical; zero pixel differences |
844x390 / en |
3af5fcb059666fecb91ae31d7d4f0879aca79071a19368b4d53853baf00e1f25 |
3af5fcb059666fecb91ae31d7d4f0879aca79071a19368b4d53853baf00e1f25 |
byte-identical; zero pixel differences |
1280x720 / zh_CN |
4b12f9248ded5ffb0621bda546477451e2b426385f808cf8f4ccfdd5086c83c5 |
4b12f9248ded5ffb0621bda546477451e2b426385f808cf8f4ccfdd5086c83c5 |
byte-identical; zero pixel differences |
1280x720 / en |
7d5b8f358e3255130ec5bfa699cd0f150f5dcdebab16e195c087965a93783db5 |
7d5b8f358e3255130ec5bfa699cd0f150f5dcdebab16e195c087965a93783db5 |
byte-identical; zero pixel differences |
The View preserves the original four difficulty node identities and the same focus/touch targets. No visible Settings control or other pixels were added by the extraction.
Handoff boundary
M42-C verification is complete. Contract Choice is now a passive
ABGContractChoicePageView with explicit deferred intents while Controller,
Contract creation, Guild/Market routes and all gameplay/economy/Save
semantics remain unchanged. M42-D may close only this View extraction;
Guild, Company/Roster, Battle, second-cycle systems/content,
device/package/signing, store and human comprehension/fun gates remain
outside this plan.
ABG M42 CONTRACT CHOICE VIEW PILOT COMPLETE