Skip to content

feat(game): renew moonlit beacon for 4.0.0 - #11

Merged
hyochan merged 53 commits into
mainfrom
feat/4-0-0-gate-journey
Oct 5, 2026
Merged

hyochan merged 53 commits into
mainfrom
feat/4-0-0-gate-journey

Conversation

@hyochan

@hyochan hyochan commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

feat(game): renew moonlit beacon for 4.0.0

Moonlit Beacon 4.0.0 keeps the original tap-to-start title and compact menus while adding Firebase guest, Google and Apple accounts. Each player has a durable public ID, account-partitioned progress, an explicit cloud-save conflict choice and a Hall showing character, score and competition rank. Resume restarts the saved gate segment. Starting a new journey asks before deleting that gate save; completed records remain.

All six heroes now move their painted bodies, hands and weapons during primary attacks: Warden follows through on a sword cut, Dancer alternates two separately held fangs, Eclipse turns its scythe through a broad arc, and Keeper, Knight and Sage have distinct recoil and recovery. Idle, walk, attack and recovery keep the same canonical face and head scale. All 24 idle facings have a neutral supported stance, idle breathing moves only the torso, and the title party shares one fit and ground anchor when walking and stopping. The physical motion preserves damage, cadence, projectile counts and sidearm ownership.

The world, guardian states and inner screens use painted artwork. Login buttons use official artwork, left-aligned icons and centered labels; guest entry sits last. Entry loading, delayed Hall responses and audio teardown have lifecycle coverage. Five-language privacy, Terms, support and the 16-lesson course/reference are managed in this monorepo and served by Firebase Hosting at https://moonlitbeacon.hyo.dev, with Vercel DNS and the Pages mirror retained.

Repository PR authorization now follows the user's explicit request: an unrequested PR always requires asking and waiting for the user's answer, while an already requested PR proceeds within that scope without an approval file. The obsolete marker hook and detector are removed. Implementer isolation, secret exclusions and the remaining protected paths remain enforced.

Validation of the final standing repair and replacement artifacts:

  • The director inspected all 192 idle/walk production cells at 4× nearest, all 82 rig PNGs, and actual Godot attack movies with and without VFX. Each final movie contains 2,338 original frames at 60fps; 24 dense pages cover all 24 stationary attack facings, and a separate six-player lane covers walk, stop, attack, recovery and departure. The title-party movie was also inspected.
  • Independent canonical-head, stance, live-transition and forecourt tests passed. Six deliberately broken identity/stance/motion variants failed the intended checks, then passed after exact restoration. The 187 art/runtime files pinned by the rendered review remain exact; the only changed pin is the offline generator, whose new arithmetic preserves all approved output pixels. The measured opaque body height is 107–109 source pixels, or 27.285–27.795 world pixels at the unchanged 0.255 scale.
  • The initial Linux CI found a CPU-dependent saturation blend in four marsh-glow guardian sheets. Explicit binary32 rounding now preserves the approved pixels: all 89 outputs on both Mac and Linux match exactly, including every guardian sheet. Six new asset-path regressions pass; separate-rounding and native-Linux negative controls fail the intended real-bake checks. No PNG, master or runtime was changed.
  • Final installed APK 18 passed the emulator's 24-facing idle review and six walk/dash movies. The physical Galaxy Z Flip5 separately passed 24 clean idle facings and six actual walk/dash movies: 70 inspected dense pages contain 3,242 consecutive original native frames. Every direction showed all four walking frames. Full overviews, playback to the end and a separate six-hero combat review were inspected. Native timing is variable; these recordings do not claim native 60fps. Obscured or non-moving capture routes were excluded and replaced.
  • The final root pnpm verify passed all 80 registered game/IAP checks, locale, repo rules, skills, deterministic assets and docs. Knight Lv40 remains below the unchanged 1,200-node limit at 1,198. Two final local product-review rounds used different angles—source/measurements, then packed artifacts/native rendering—and found no further product defect. Hosting build/check also pass.
  • APK 18, signed AAB 18, Debug iOS 13 and distribution IPA 13 contain the current 100 hero payloads. Android source/import checks pass, and the entire iOS Debug and Release PCKs match. The iOS archive includes normal Assets.car, AppIcon and Apple-login entitlements. Local validation/upload dry-runs and Apple server Validate pass. A packaging-time freshness check required regenerating the signed AAB; its entire SHA-256 and all 100 hero payloads remain byte-identical to the reviewed artifact.
  • Preserving installs kept stopped game-container bytes intact on the emulator, Galaxy and iPad. Native SDK preferences and Keychain were not reset. Read-only Firebase evidence confirms Google/Apple profile, public-ID reservation and checkpoint ownership. Guest/Google cold restart/resume was observed before the standing repair. The current iPad title was inspected, but current-build human Apple login, continue and cold-restart interaction remains pending; an exhaustive iPad direction/input matrix is not claimed.

The previous iOS build-12 review was canceled and read back as DEVELOPER_REJECTED; Google Play build 17 was already published. Both replacement candidates display 4.0.0. Android 18 is now registered on the internal test track, with its dedicated receipt read back as APPLIED. iOS 13 uploaded successfully, processed as VALID, and is linked to the 4.0.0 version in PREPARE_FOR_SUBMISSION; the retained-gallery apply made only the build association and internal beta-group assignment updates. Android 18 is now on production in RELEASE_LIFECYCLE_STATE_IN_REVIEW, confirmed by an independent GET. Promotion advanced asynchronously from its initial not-sent state; a follow-on submit correctly refused a duplicate. App Store formal submission remains pending the current iPad interaction confirmation.

All 160 existing local marketing and IAP PNGs still match the baseline. The old strict capture-freshness check reports changed runtime bytes; retained-gallery tooling checks local integrity and remote equality and refuses image mutations. No marketing recapture, image upload or provenance regeneration is included.

The user waived the remaining ten-product physical purchase/restore checks for this release; those transactions are not reported as passed. PR #11 passed all four CI checks and merged as 5e131b1; local main matches origin with a clean working tree. Firebase Hosting is deployed: all 191 files and 28 clean routes match the generated main output over HTTPS, and the Pages mirror deployment passed. Current iPad interaction confirmation and formal App Store review submission remain the only open release steps.

hyochan added 30 commits October 3, 2026 23:22
Preserve the original title, add owned Firebase journeys and Hall
records, and refresh painted actors, maps and introduction motion.

Reject dismissed Hall replies and stop same-frame audio reliably.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Align entry, identity, Hall and asset reference text with the
reviewed runtime and the measured production assets.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Keep the official donor license byte-identical to its source hash
when staging and cloning, using an exception for this path only.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Keep source artwork, acceptance briefs and measured review
evidence with the remaining store-release boundaries.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Explain optional provider login and permanent guest entry.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Resolve current Xcode profiles and verify Apple sign-in grants.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Update five locales and explain accounts, saves and public ranks.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Validate mixed-case account filenames before Base64 reads.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Use the actual title state and reject obscured capture frames.
Verify the scene bridge and stable prompt with 218 cases.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
move public privacy and support to firebase hosting

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
record final verification and capture evidence

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Align all five public policies with successful account deletion.
Record the source audit and verified hosting deployment.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Distinguish cloud checkpoints from disabled gameplay analytics.
Record the verified Play internal release separately from final review.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Describe the 4.0.0 guest path in the Play review field.
Record saved policy URLs and incomplete capture evidence.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
hyochan added 20 commits October 4, 2026 10:25
Keep strict frame continuity after slow state observation.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Separate completed provider configuration from unverified native login.
Preserve setup requirements and device checks; record live readback.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Preserve the signed-in session when Apple revocation has no fresh
code or the SDK returns an error. Only successful revocation may
advance to Firebase user deletion.

Exercise extracted production methods with seven behavior scenarios;
the previous method fails three destructive negative controls.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Record iPad Apple sign-in and local/cloud save equality, actual full
process termination, and two Android resume-to-combat observations.
Distinguish preserved identity from the rewritten timestamp and keep
pending iPad Continue and Android Apple authentication explicit.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Verify retained remote images before replacing only the reviewed binary.
Promote the exact applied Play version and avoid duplicate review requests.
Keep fresh-gallery submissions strict.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Record the review cancellation, rejected render candidates, independent
motion measurements and retained-gallery submission procedure.
The physical animation and replacement submissions remain pending.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Carry painted weapons with articulated arms and body poses while
preserving fractional walking strides through attack direction changes.
Create secondary visual nodes only when needed to keep the established
1,200-node late-arena limit. Prepare replacement build counters 18/13.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Describe the painted arm bake and independent fang grips while preserving
the original atlas inputs and combat balance.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Guard detached starts and stops before using the scene tree. Retire delayed starts and fade completions superseded by newer intents.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Require supported resting feet and stable head, body and ground anchors across movement, attacks and recovery. Check rendered frames and installed artifacts before uploading a replacement.
Open a debug-only Lv1 arena without consuming a saved journey.
Register the real boot and preservation checks in the game suite.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Keep each facing's head fixed across all idle and walking frames.
Plant both feet in a neutral stance and share forecourt grounding
bounds across rest and movement. Cover identity, stance, motion and
quiet native inspection through registered regressions.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Describe canonical heads, supported idle poses and torso-only
breathing. Report the measured opaque body height at the existing
scale rather than the legacy height estimate.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Record the standing repair, independent measurements and final native
checks. Keep iPad interaction, PR and store submission gates explicit.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
Record validated iOS and internal Play candidates with unchanged art.
Keep main merge and formal review submission gates explicit.
Ask and wait before an unrequested PR. Honor an existing user request without a separate approval file or repeated confirmation.
@hyochan hyochan added 🎮 game 💨 ci Cloud integration 📖 documentation Improvements or additions to documentation 📘 release Released version 🖼 assets labels Oct 5, 2026
Round saturation blends explicitly to keep the approved pixels
identical on Mac and Linux. Register focused real-bake and
rounding regressions without changing any image or runtime.

Implemented-by: Muse (muse-spark-1.3-contributor, max effort)
@hyochan
hyochan marked this pull request as ready for review October 5, 2026 11:04
@hyochan
hyochan merged commit 5e131b1 into main Oct 5, 2026
4 checks passed
@hyochan
hyochan deleted the feat/4-0-0-gate-journey branch October 5, 2026 11:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🖼 assets 💨 ci Cloud integration 📖 documentation Improvements or additions to documentation 🎮 game 📘 release Released version

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant