7.7 KiB
M44 Company Page View — Source-Bound Visual Audit
Scope and stopping point
M44 extracts the accepted DEV-6 Company Roster and Recruit Detail surfaces
from entry_shell.gd into passive, UI-only Views. The existing framed
composition, four-member list, stable Recruit IDs, selected facts, portraits,
equipment/history presentation, dismissal eligibility, focus order, touch
targets and Guild/Roster return routes remain unchanged.
This is a structural View migration only. Company facts and dismissal rules,
Market/Contract transactions, Save, economy, localization, assets, audio,
packaging and release semantics were not changed. Normal 100% landscape is
the blocking visual scope; the Owner's normal-font rule means 130% text
scale is supplemental and non-blocking.
Product integration source: 19bf1392ce72f744e0fc9de79ef6393d5f165b9b.
Verification/documentation source: 687160dd17c1af8b40163af9a060d7792a0d52a2.
Visual baseline source: 93164c87b845d3f0d6f1b64b6d1b06e7c4b8d66d.
Architecture contract
ABGCompanyRosterPageViewowns only Godot node construction, local formatting, portraits, focus/hit areas and explicit deferred intents:select_recruit,open_detail,dismissandback.ABGRecruitDetailPageViewowns only the Recruit Detail node tree, local formatting, portrait, focus/hit areas and explicitdismiss/backintents.- Both Views consume deep-copied payloads from
ABGCompanyPageController.roster_snapshot()andrecruit_detail_snapshot(). No mutable Company object crosses the View boundary. - EntryShell remains the composition root and application boundary for loading/saving Company state, dismissal review/transactions, selection refresh and route transitions.
- Source contract coverage rejects service, persistence, compatibility,
route-global and EntryShell dependencies in both Views. Historical
.uid,.importandprototype_incremental/files remain untouched.
Source-bound evidence
All formal attempts used tools/run_test_attempt.py with immutable source
archives, owned HOME/cache/TMP/browser roots, strict marker accounting and
complete process-group/workspace cleanup.
| Check | Attempt | Result | Evidence archive SHA-256 |
|---|---|---|---|
| M44-A immutable Company baseline | m44-company-baseline/20260826T032132Z-32104 at 93164c8 |
PASS; M16 controller, DEV-6 roster/detail and eight normal captures; required markers exact once; strict diagnostics 0; parsed touch and owned cleanup |
43028f703434b5fe59a97153635b4a4500623ce7ee317c550c08b74699bcb86d |
| M44 View/controller/runtime focused verification | m44-company-view-focused-final/20260826T042545Z-26176 at 687160d |
PASS; ABG_M44_COMPANY_PAGE_VIEW_CONTRACT_OK, ABG_M16_COMPANY_PAGES_OK, ABG_DEV6_ROSTER_OK, ABG_DEV6_GROWTH_OK, ABG_DEV5_RECOVERY_OK and ABG_M12_OUTCOME_RECOVERY_DOMAIN_OK each exact once; strict diagnostics 0; owned cleanup |
no retained evidence files |
| DEV-6 candidate | m44-dev6-candidate/20260826T041521Z-84708 at 687160d |
BASELINE-KNOWN FAIL at contract_return_test.gd; all earlier DEV-1..6 checks through ABG_DEV6_ROSTER_OK pass, but the candidate terminal is correctly not accepted because M44-I01 remains unresolved outside this plan |
bad91af02d0d669f90daef5118e412bda2c2f0612c54b9c00d5315159699fdaa |
| Full MVP first-cycle audit | m44-mvp-audit/20260826T041658Z-86713 at 687160d |
PASS; ABG_MVP_FIRST_CYCLE_AUDIT_OK exact once; 128 normal 100% frames / 180 evidence files across first-cycle pages; strict diagnostics 0; parsed touch/restart and owned cleanup |
8d574499562a10625b96a3015f5e0b5648756e83c83cad533c7ac2cd859d0155 |
| M44 Company capture set | m44-company-capture-final/20260826T042045Z-21165 at 687160d |
PASS; ABG_M16_COMPANY_CAPTURE_OK exact once; eight frames (Roster + Recruit Detail × four fixtures); strict diagnostics 0; 44px authored touch target and owned cleanup |
00786268880d94fe5573877ec54a5999a0de5f4095f0508df276786aa90a30e5 |
The DEV-6 candidate failure is not a View regression. The immutable M44-A
baseline reproduces the same Contract Return boundary failure in
m44-baseline-contract-return/20260826T040851Z-77954: the accepted Market
surface has no MarketReturnContract control, and the legacy test then
accesses active_contract.contract_return_receipts. M44 keeps Contract
Return Shell-owned and does not widen the Company View migration to repair a
second-cycle issue.
Four-fixture visual equivalence
The M44-A baseline and the M44 Company capture PASS contain the same eight
filenames. Every PNG is byte-identical, and decoded RGBA comparison reports
zero differing pixels (ImageChops bounding box None) at all four required
fixtures/locales.
| Fixture | Baseline SHA-256 | M44 capture SHA-256 | Comparison |
|---|---|---|---|
760x360 / zh_CN / 100% |
8212c55f8c3973382be87cea5ded5e6a01476eda11f9ae5539cb171764aad079 (Roster)5745dc364b8bca13d80c3c27e590904c8274681b98be9746d16e568b91dc7ce6 (Detail) |
8212c55f8c3973382be87cea5ded5e6a01476eda11f9ae5539cb171764aad079 (Roster)5745dc364b8bca13d80c3c27e590904c8274681b98be9746d16e568b91dc7ce6 (Detail) |
byte-identical; zero pixel differences |
844x390 / en / 100% |
6cb8f4ffab1b4a0741e07380184165699031ed093399125565822633289a606c (Roster)2bafe51b80e66863c727c070ffcca10e81cd02f2b8774976f53cc462fedd0e07 (Detail) |
6cb8f4ffab1b4a0741e07380184165699031ed093399125565822633289a606c (Roster)2bafe51b80e66863c727c070ffcca10e81cd02f2b8774976f53cc462fedd0e07 (Detail) |
byte-identical; zero pixel differences |
1280x720 / zh_CN / 100% |
74d9eec56273dd9232a16d612538969ed12f6e9b0163a33b1e7581246c305a3c (Roster)544053fd98b291ddd197f8a69c176f3786696db8189bcb92f7a106016013889e (Detail) |
74d9eec56273dd9232a16d612538969ed12f6e9b0163a33b1e7581246c305a3c (Roster)544053fd98b291ddd197f8a69c176f3786696db8189bcb92f7a106016013889e (Detail) |
byte-identical; zero pixel differences |
1280x720 / en / 100% |
d922a2d9cb798b3fafd3b443ddd94e04c4529298dece9088f13d8d4b28a48ad4 (Roster)f1621e156f97089fbe1044540182955bc50574793e8865a5e7fabfff89cde984 (Detail) |
d922a2d9cb798b3fafd3b443ddd94e04c4529298dece9088f13d8d4b28a48ad4 (Roster)f1621e156f97089fbe1044540182955bc50574793e8865a5e7fabfff89cde984 (Detail) |
byte-identical; zero pixel differences |
No visible pixels were added or removed by the extraction. Stable identity, disabled dismissal states, portraits, engine-rendered values, focus targets and the authored 44px short-screen controls remain equivalent to the baseline.
Boundary audit
show_roster()andshow_recruit_detail()now mount the passive Views after the Controller snapshot is prepared; the former Roster/Detail builders were removed from EntryShell.- Selection updates only the local stable Recruit ID and re-renders through a fresh Controller snapshot. Detail and dismissal intents carry only the stable Recruit ID.
- Last-member and non-Market dismissal guards remain Controller-owned and are truthfully reflected by disabled controls/tooltips.
- Missing Company/Recruit snapshots render deterministic non-interactive fallback overlays without mutating persistence.
- The accepted hand-drawn runtime direction and linear-filtered assets remain unchanged; no pixel-art conversion, nearest-neighbor filtering or redesign was introduced.
Handoff boundary
M44 closes only the Company Roster and Recruit Detail View extraction.
Dismissal Review, voluntary Contract Return (M44-I01), second-cycle
systems/content, regions, endgame, device testing, packaging, signing,
store/release and human comprehension/fun acceptance remain outside this plan
and require a separately authorized plan or gate.
ABG M44 COMPANY PAGE VIEW PILOT COMPLETE