Skip to content

feat(main-menu): review approved Home and Play Hub hierarchy - #88

Draft
orbyteon wants to merge 7 commits into
feature/solo-vs-ai-production-20260901from
feature/main-menu-play-hub-20260904
Draft

feat(main-menu): review approved Home and Play Hub hierarchy#88
orbyteon wants to merge 7 commits into
feature/solo-vs-ai-production-20260901from
feature/main-menu-play-hub-20260904

Conversation

@orbyteon

@orbyteon orbyteon commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Dependency and review intent

Depends on #87: #87. This is a stacked draft PR, deliberately targeting the Solo feature branch, not main. Review the Solo foundation first and this Main Menu-only delta second. Retargeting, integration and merge require separate authorization; auto-merge is not enabled.

Verified remote provenance

  • Base: feature/solo-vs-ai-production-20260901 at cd2cd0799f45b4a5dca06ff83facd54b320eeb65.
  • Head: feature/main-menu-play-hub-20260904 at 10119028c7de41fbbb532e282c0c9997ae5297ef.
  • Exactly 3 commits, 17 modified paths, 0 behind:
    1. f1f355bf62913f7d781c5af04d0e28d15e7c38ee — feat(mainmenu): add truthful play hub
    2. 3d85191d3ef0cef65790f19a5eb6505b1b852a49 — fix(main-menu): finalize play hub visual hierarchy
    3. 10119028c7de41fbbb532e282c0c9997ae5297ef — test(main-menu): align background contracts with approved Solo art
  • main remains at ebac6e6b3f55106183e9ed616d0ce485c716dd0e. The Solo changes are excluded from this PR comparison by the chosen base.

Player-facing changes

  • Home exposes a dominant PLAY gateway and a separate DAILY HUNT event entry, retaining real Settings and the dynamic player/profile avatar.
  • PLAY opens exactly two substantial mode cards: VS AI and PLAY WITH A FRIEND. VS AI uses the existing authoritative Solo entry. Friend uses the existing PvpGameController.OpenPvpMenu() private-room flow, including the existing pink-door screen. Back closes the selector and returns to Home.
  • Uses the human-approved VS-AI-derived cosmic/neon card composition, existing artwork/materials, fuller card presence, logo +9%, readable live EN/EL text, and actual glyph-block centering in owned safe regions.
  • Removes duplicate semantic PvP/Friend entry routes and visible top/bottom chrome while retaining safe-area behavior.
  • SHOP remains unexposed. No fake wallet, Shop route, public queue, Quick Match or ranked mode is promised.

Scope

Only Home/PLAY presentation, localization, real entry wiring, deterministic capture support and directly affected tests. The inherited Solo/first-launch test files change to exercise the PLAY-selector entry contract; this PR does not change Solo gameplay/pacing/AI, DuelRules, PvP backend/protocol, Daily Hunt gameplay, avatar persistence, scenes, ProjectSettings, packages or release configuration. No new PNG artwork, baked localized/dynamic text, artifacts, APKs or temporary paths are added.

Recorded human acceptance

Marinos approved the VS-AI-derived visual direction, card dimensions/presence, 32/32 text-centering result, final enlargement and logo +9% delivery. The final two-file stale-geometry test expectation corrections were explicitly authorized without production/capture changes, relaxed tolerances or removed assertions. Marinos then accepted the exact six-file finalization commit and remote backup at 3d85191d3ef0cef65790f19a5eb6505b1b852a49. The subsequent two-file Node contract correction was separately authorized and changes no presentation or production code.

This is recorded product/visual acceptance from the working conversation, not a GitHub approving review and not proof that current CI has passed.

Previously recorded visual validation (before the test-only correction)

Source evidence: MM_PLAY_HUB_TEST_GEOMETRY_20260905_01/focused-validation-audit.md, external local evidence, not committed or uploaded. Unity 2022.3.62f3, licensed interactive GUI. The recorded native Test Runner results are:

  • MainMenuHomeVisualsPlayModeTests.HomeLocalizedGlyphsStayInsideApprovedArtSafeAreas: PASS.
  • MainMenuHomeVisualsPlayModeTests.HomeMatchesApprovedPlayHubHierarchyAndRemainsPlayable: PASS.
  • MainMenuHomeVisualsPlayModeTests.HomeProfileAvatarUsesCanonicalOnboardingSelectionWithoutMovingLayout: PASS.
  • These three Home methods ran together: 3 passed / 0 failed / 96 not run.
  • MainMenuPlayVisualsPlayModeTests.PlayHubLocalizedGlyphsRemainContainedAtAllRequiredViewports: 1 passed / 0 failed / 98 not run, 2.472 s.
  • The viewport methods retain their existing EN/EL loops over 720x1280, 1080x1920, 1080x2400 and 1179x2556.
  • Recorded import/C# compile diagnostics: 0 errors, 0 warnings. Known non-causal TMP underline and UI touch-target warning families remained during tests.
  • Working-tree, staged and commit-local git diff --check: PASS in the finalization record.
  • Final source fingerprint, 898 tracked source files: 4BBDCD307D36E651B0358414C796303A85191B20FBF6F0C29E98D019551E1856.

Preserved environmental failed attempt: the selector method first ran in landscape Free Aspect Game View and failed safe-root containment (2.313 s). Selecting the existing portrait preset produced the pass above with identical source and assertions. This is disclosed, not erased or portrayed as a production fix.

The four approved 1080x1920 Home/selector EN/EL captures and labeled contact sheet are preserved in external local folder MM_VSAI_HOME_PLAY_EVIDENCE_20260905_14. Recorded centering evidence is 32/32. No evidence image was replaced during the final expectation correction.

No XML export is claimed for the GUI-observed final focused run. No new complete suite, capture matrix, Android APK/AAB, or Node run was performed in that final test-expectation pass or in the original PR-preparation task. An earlier Main Menu APK does not validate this final visual revision as a fresh build.

Authorized two-file background-contract correction

Commit 10119028c7de41fbbb532e282c0c9997ae5297ef, parent 3d85191d3ef0cef65790f19a5eb6505b1b852a49.

Only tools/test/mainmenu-assets.test.mjs and tools/test/panelplay-assets.test.mjs changed (27 insertions, 10 deletions). Both approvedBackground paths, resource-owner assertions and background-specific descriptions now require the existing approved solo/production/solo_background_v1, not either previous background.

Read-only PNG inspection confirmed 941x1672, 8-bit RGB, matching the canonical Solo source dimensions. Both tests now assert those exact dimensions and PNG signature/bit depth, while retaining the original minimum width/height and approximately-9:16 tolerance. RGB/RGBA checks, Unity-meta presence, rejected-art deletion, Splash isolation, mascot identity, other asset checks and avatar persistence assertions remain intact. Old Settings/Revision-3 background references are explicitly rejected by the production-owner tests rather than accepted as alternatives.

PNG SHA-256 remains A340C8F70F92B1815A3F0953CC8DE5BFADE6E0FC89F81B9368FB5EF79E71527D; meta SHA-256 remains E74DB97559F12989C4E0654A405896D27D23E4053180DB9C0C20DA682303C12C. No artwork/import metadata was changed.

Fresh local validation for this correction

Executed once per requested lane, with local Node v24.19.0 (the automatic GitHub workflow uses Node 22):

  • node --test tools/test/mainmenu-assets.test.mjs tools/test/panelplay-assets.test.mjs: 15 passed, 0 failed, 0 skipped, exit 0.
  • node --check playfab/cloudscript.js: PASS, exit 0.
  • node --test tools/test/*.test.mjs: 123 passed, 0 failed, 0 cancelled, 0 skipped, 0 todo, exit 0.
  • Working-tree, staged and commit-local git diff --check: PASS.
  • Commit scope independently verified as exactly the two authorized test files; local worktree clean after commit.
  • Normal non-force push completed; independent git ls-remote matches 10119028c7de41fbbb532e282c0c9997ae5297ef.

No production, Unity test, workflow/configuration, capture, APK/AAB or source asset change. No Unity launch, CI dispatch/rerun, history rewrite, merge, or change to #87; both PRs remain draft.

Current CI and review blockers

The previous run 33947009507 reported 121/123 Node passes with the two stale background failures; its skipped EditMode/Android jobs remain historical skips, not passes.

The normal push automatically started the new CI run 33968469822 on 10119028c7de41fbbb532e282c0c9997ae5297ef. At the first post-push snapshot, Static integrity was in progress; Visual system integrity and Require Unity credentials had succeeded. The new overall CI and downstream substantive jobs are not yet verified green. Fresh local Node results above do not replace the current GitHub Node 22/merge-ref, EditMode, Android compile and applicable PlayMode gates. Pending/skipped checks are not passes.

Review dependency #87 first. Both PRs remain drafts, with no auto-merge enabled. Recorded human acceptance does not replace formal review or the existing required CI gates. No final-revision APK/full capture matrix is claimed by this test-only correction.

Exact 17-path comparison manifest

  • Assets/SCRIPT/Design/MainMenuHomeVisuals.cs
  • Assets/SCRIPT/Design/MainMenuLocalCapturePlayer.cs
  • Assets/SCRIPT/Design/MainMenuPlayVisuals.cs
  • Assets/SCRIPT/Design/PanelPlayCaptureBootstrap.cs
  • Assets/SCRIPT/Localization/L10n.cs
  • Assets/SCRIPT/MenuManager.cs
  • Assets/SCRIPT/RuntimeUI/ExtrasRuntimeWiring.cs
  • Assets/Tests/EditMode/MainMenuProductionAssetsTests.cs
  • Assets/Tests/PlayMode/FirstLaunchSoloEndToEndPlayModeTests.cs
  • Assets/Tests/PlayMode/MainMenuHomeSubtitlePlayModeTests.cs
  • Assets/Tests/PlayMode/MainMenuHomeVisualsPlayModeTests.cs
  • Assets/Tests/PlayMode/MainMenuPlayVisualsPlayModeTests.cs
  • Assets/Tests/PlayMode/PanelPlayCapturePlayModeTests.cs
  • Assets/Tests/PlayMode/ResponsiveUIFoundationPlayModeTests.cs
  • Assets/Tests/PlayMode/SoloDuelVisualsPlayModeTests.cs
  • tools/test/mainmenu-assets.test.mjs
  • tools/test/panelplay-assets.test.mjs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant