198 lines
12 KiB
Markdown
198 lines
12 KiB
Markdown
# Offline continuation and acceptance requirements
|
||||
|
|
|
|||
|
|
> Latest handoff: [ZCODE-HANDOFF.md](ZCODE-HANDOFF.md), 2026-10-24. This file
|
|||
|
|
> retains chronological findings; some statuses below are superseded, including
|
|||
|
|
> the user's confirmation of Aha Help, newly staged event previews and the CW
|
|||
|
|
> role compatibility overlay. Use the handoff for current priorities/deployment.
|
|||
|
|
|
|||
|
|
The full CW objective remains active. Additional requests do not replace it.
|
|||
|
|
|
|||
|
|
The user subsequently specified that Stella Jump, activities, gacha and Aha's
|
|||
|
|
Help must be handled before returning to CW. Preserve that order.
|
|||
|
|
|
|||
|
|
## Offline audit round, 2026-10-24 afternoon
|
|||
|
|
|
|||
|
|
With no server or game process running, both servers were rebuilt from the
|
|||
|
|
latest source and deployed at 14:07 (root and `for ship`), then documented in
|
|||
|
|
[ZCODE-HANDOFF.md](ZCODE-HANDOFF.md). Three source/resource changes went into
|
|||
|
|
that build: the CW role-ID projection in `session.go` now also covers
|
|||
|
|
`GridFightEnterBattleStageScRsp`, `GridFightEndBattleStageNotify` and
|
|||
|
|
`GridFightGetArchiveScRsp` (the proto audit found no map transitively carrying
|
|||
|
|
role references, and in-memory run state was already projected, so this is
|
|||
|
|
defense in depth); `activity_preview.go` replaced silent first-match module
|
|||
|
|
dedup with verified panel equivalence (module 1002101 legitimately spans
|
|||
|
|
rerun panels 10021/10113 with an identical prefab; the published schedules are
|
|||
|
|
unchanged at 12); and the stale `asset_verification_note` in
|
|||
|
|
`GachaSandboxPolicy.json` now states all six captured prefab paths were
|
|||
|
|
checked. No Client confirmation exists for any of this.
|
|||
|
|
|
|||
|
|
Stella Jump gateway analysis from `gameserver.log`/`server_debug.log`: the
|
|||
|
|
"There's still more to do…" toast attempts are InteractProp on prop entities
|
|||
|
|
1035/1012 with interact_id2=1100, answered with the real prop state; the
|
|||
|
|
GameBoy UI itself opened once without an interaction (case 16 data request)
|
|||
|
|
and closed without a start request, so the block is a client-side condition.
|
|||
|
|
`ChenLingGetDataCsReq` (9612) is sent every floor load and still dropped by
|
|||
|
|
the ChenLing danger family; a populated `ChenLingGetDataScRsp` capture is the
|
|||
|
|
missing evidence before it can be answered safely.
|
|||
|
|
|
|||
|
|
## Latest steering and staged technique fix
|
|||
|
|
|
|||
|
|
The user confirmed Aha Help appears in combat. Their next report concerned
|
|||
|
|
technique points before combat, not combat skill points: Endgame rooms start
|
|||
|
|
with only five usable points despite a larger team capacity. Both the initial
|
|||
|
|
Endgame lineup projection and session initialization used overworld initial_mp.
|
|||
|
|
Endgame lineup construction now starts at its resource-derived MaxMp, and a new
|
|||
|
|
room's session technique counter uses that same capacity. Overworld initialization
|
|||
|
|
and per-cast deductions are unchanged. The inspected team's existing resource cap
|
|||
|
|
is seven; the reported eight-point capacity has not been independently established,
|
|||
|
|
and no new cap was invented. gameserver-go.next.exe compiled with this change.
|
|||
|
|
It has not replaced the live Game server, whose last log still showed an active
|
|||
|
|
Battle. The user explicitly said not to run more tests or ask for another gameplay
|
|||
|
|
retry, and to continue the remaining work. Do not interrupt their active Battle
|
|||
|
|
to deploy this staged binary.
|
|||
|
|
|
|||
|
|
## Aha Help follow-up, 2026-10-24
|
|||
|
|
|
|||
|
|
The user reported missing support in combat and a stuck web selector. Browser
|
|||
|
|
inspection confirmed the open tab still ran the earlier JavaScript, and its
|
|||
|
|
local static server was no longer listening. The existing local page service was
|
|||
|
|
restarted, the tab reloaded, and its live Save Manager now shows enabled LV 1–3
|
|||
|
|
options. The selector now explicitly shows `FreeSR (off)` when the legacy
|
|||
|
|
`enable_invasion_support` is false; the API previously returned level null, and
|
|||
|
|
no override had been saved. Aha Global is a separate passive setting.
|
|||
|
|
|
|||
|
|
The imported custom battle contains a Corruption buff matching the resource
|
|||
|
|
invasion mapping, but the old support branch required ChallengeStageID. Support
|
|||
|
|
selection now checks the outgoing battle's actual Corruption buffs after the
|
|||
|
|
existing official-challenge injection. It does not inject Corruption from a
|
|||
|
|
custom stage ID. Selecting a level removes other support levels before adding
|
|||
|
|
one selected buff; explicit zero removes support for that Corruption battle.
|
|||
|
|
Null follows the existing FreeSR switch. Selection is read afresh at battle
|
|||
|
|
creation, and AHA_HELP diagnostics record the decision and sent IDs. Game and
|
|||
|
|
SDK compiled and were restarted with visible consoles. The new web state is
|
|||
|
|
confirmed; the user still needs to choose a level and verify the next battle.
|
|||
|
|
|
|||
|
|
## Current Client capture and staged work
|
|||
|
|
|
|||
|
|
### Client regression after deployment, 2026-10-24
|
|||
|
|
|
|||
|
|
After the user reopened the Client, its assembly hash was rechecked and a
|
|||
|
|
bounded `AssetMgr.Exists` query checked all six captured prefab paths, without
|
|||
|
|
loading them. Standard and novice returned true; all four limited character and
|
|||
|
|
lightcone paths returned false. The research scripts were removed from scripts/
|
|||
|
|
after capture. Evidence is retained in
|
|||
|
|
`battle_diagnostics/gacha-asset-exists-20261024.log`. Standard is now the sole
|
|||
|
|
verified browsable entry in the resource policy. It has no invented featured
|
|||
|
|
avatar or prize list, and its draw request returns NOT_SUPPORT. Featured draws
|
|||
|
|
remain unavailable pending real installed presentation assets. The rebuilt Game
|
|||
|
|
server was restarted; actual Standard page entry/exit still awaits Client retry.
|
|||
|
|
|
|||
|
|
The user reported an empty Warp page followed by a black map on exit. Player.log
|
|||
|
|
proves the captured Seele prefab is absent from the installed asset manifest
|
|||
|
|
(`index=-1`), followed by `UIPrefabLoader._HandleLoadResult` ArgumentNullException
|
|||
|
|
inside `GachaMainPage._create_pools_panel`. The earlier statement that two
|
|||
|
|
captured paths represented usable banners was too strong: they are candidates,
|
|||
|
|
not verified installed assets. Gacha entry now returns `RET_GACHA_NOT_SUPPORT`
|
|||
|
|
when the resource policy has no verified banner prefab; DoGacha uses the same
|
|||
|
|
verified set. No alternative prefab path or banner ID was invented.
|
|||
|
|
|
|||
|
|
The same log contains repeated ActiveActivity ItemFactory null references and
|
|||
|
|
missing RaidCollection reward icons. Additional preview schedules are withheld
|
|||
|
|
through their resource policy until each dependency is validated. Existing
|
|||
|
|
non-preview schedules and saves were not changed. The guarded Game executable
|
|||
|
|
was built and deployed; SDK was started with its visible console as well.
|
|||
|
|
Recovering a Client already stuck in the failed UI transition requires a fresh
|
|||
|
|
login. The user was asked to open the Client at the normal walking screen to
|
|||
|
|
check available assets; no game process was present during this repair. Neither
|
|||
|
|
safe rejection in the Client nor replacement banners have been verified yet.
|
|||
|
|
|
|||
|
|
The running Client was verified at runtime as a different assembly from the old
|
|||
|
|
CW capture: SHA-256 `4aa08a0706f27d2cf9951b61920c179140ece9ea94f7e34422c18e46922939b6`.
|
|||
|
|
The module path identified the user's current installation as 4.6.54. No old
|
|||
|
|
native RVAs were reused against it. Exact named FromBinary methods, their flat
|
|||
|
|
dictionary consumers, and bounded getters were traced and captured separately.
|
|||
|
|
`PreviewGameplayCatalog.json` contains 6 gacha basic rows, 13 Parkour rows, 181
|
|||
|
|
activity panels and 361 activity configurations. Original JSON number strings
|
|||
|
|
were retained when exporting so 64-bit text hashes are not rounded.
|
|||
|
|
|
|||
|
|
Stella Jump is the side-view ChenLing GameBoy game, not Parkour. All 16 case rows
|
|||
|
|
are retained in `StellaJumpConfig.json`. New handlers respond with a non-null
|
|||
|
|
case payload, expose its configured challenge packs, and save actual best times
|
|||
|
|
and submitted completions under a separate persistent key. No synthetic best
|
|||
|
|
time is stored to unlock the menu. The request CmdID for RequireChenLingGameBoyData
|
|||
|
|
was independently checked in current Client native code and matches the named
|
|||
|
|
revision-tagged command table. The two cheat requests still have obfuscated table
|
|||
|
|
names: ANDPLLAKCLE/CDJKLJDMJHO and EMDKLICDPKK/JHEHACPKKBL. Their case-ID and
|
|||
|
|
case-ID/boolean shapes are mapped to the named Client sender methods; the exact
|
|||
|
|
meaning of the extra response boolean still needs Client verification.
|
|||
|
|
|
|||
|
|
The gacha implementation now derives featured characters from actual captured
|
|||
|
|
avatar-prefab basenames and returns that same character for each draw. The
|
|||
|
|
captured basic table currently provides two character banners. This does not
|
|||
|
|
establish support for a banner for every avatar. Sandbox draw counts/pricing and
|
|||
|
|
duplicate handling are explicit resource policy. For the existing fully owned
|
|||
|
|
roster, duplicate materials use the avatar's configured first Eidolon cost and
|
|||
|
|
merge into the latest import under the common file lock. Rank, EX and Traces are
|
|||
|
|
preserved. First-time acquisition for an avatar absent from the imported roster
|
|||
|
|
is still rejected rather than constructing an incomplete avatar.
|
|||
|
|
|
|||
|
|
Activity preview policy currently exposes two captured panel types, minigames
|
|||
|
|
and ActiveActivity, with their typed data callbacks. Mini-game scores are empty
|
|||
|
|
unless provided by a dedicated subsystem; this does not claim full event gameplay.
|
|||
|
|
ActiveActivity's module-ID to data-ID association is an initial mapping requiring
|
|||
|
|
Client confirmation. Remaining event-specific actions/rewards are incomplete.
|
|||
|
|
|
|||
|
|
Aha's Help's loading bug was a frontend envelope mismatch: `/api/persistent`
|
|||
|
|
returns `persistent`, but the page read `data` and returned before loading levels.
|
|||
|
|
The level loader now runs independently, shows offline/API errors explicitly,
|
|||
|
|
and reloads on a connection change. The actual API was observed returning LV 1–3.
|
|||
|
|
The regression check exercises the real envelope, empty character cache, explicit
|
|||
|
|
off and API failure; it passes. Frontend script/style cache keys were updated.
|
|||
|
|
|
|||
|
|
On 2026-10-24 the user explicitly authorized rebuilding and restarting both
|
|||
|
|
servers. Both builds succeeded, previous root executables were backed up under
|
|||
|
|
`.runtime/before-preview-*`, and the new root Game/SDK executables were started
|
|||
|
|
with visible consoles. Both processes remained running and the SDK Aha endpoint
|
|||
|
|
returned LV 1–3. Focused store tests for Aha, Stella Jump and duplicate gacha
|
|||
|
|
grants pass. Client unlocks, event screens and gacha animations remain unverified.
|
|||
|
|
|
|||
|
|
## Implemented, awaiting Client verification
|
|||
|
|
|
|||
|
|
Aha's Help has a resource-backed level selector, independent persistent setting,
|
|||
|
|
SDK endpoint and GaC-Srtool control. Values are from the user's supplied screenshot,
|
|||
|
|
not a claim of a freshly captured Client table. Existing stage-invasion detection
|
|||
|
|
gates the buff. Explicit off and resetting to the FreeSR setting are supported.
|
|||
|
|
Reads do not write, and targeted writes preserve other persistent sections.
|
|||
|
|
|
|||
|
|
The focused persistence test passes, both executables compile, and srtool JavaScript
|
|||
|
|
passes syntax checking. The broader common and SDK test packages pass. The game
|
|||
|
|
server package has failures resolving resources in relic, scene and smoke tests;
|
|||
|
|
there is no claim that the whole test suite passes or that Client gameplay works.
|
|||
|
|
|
|||
|
|
CW equipment Forge use and grants for Orb/consumable/Forge are implemented.
|
|||
|
|
Automatic Orb drops, opening Orbs, consumable effects, Tea Break choices and full
|
|||
|
|
later-room progression remain incomplete.
|
|||
|
|
|
|||
|
|
## Offline findings and remaining requests
|
|||
|
|
|
|||
|
|
- Reward comparison: 347 of 478 captured Client combination rows match the older
|
|||
|
|
reference by ID and both arrays. The reference has 372 combination rows and 966
|
|||
|
|
basic bonus rows; only 276 of 529 captured Orbs point directly to those basic
|
|||
|
|
rows. Do not promote the entire older reward table as current Client data.
|
|||
|
|
- Stella Jump: all stages should be selectable and playable. No current stage
|
|||
|
|
catalog was located in this repository. Parkour request schemas exist, but that
|
|||
|
|
alone does not prove Stella Jump uses that subsystem or identify unlock fields.
|
|||
|
|
- Activities: expose event pages and enough entry/data handlers for preview;
|
|||
|
|
complete reward/gameplay simulation was not requested. The current schedule
|
|||
|
|
handler deliberately exposes only Endgame/CW, and there is no generic event
|
|||
|
|
data implementation. Avoid publishing every ActivityConfig row with empty
|
|||
|
|
replies that leave the Client waiting.
|
|||
|
|
- Gacha: one character per selectable banner, with each draw matching the displayed
|
|||
|
|
character. Current code hardcodes a standard banner and alternates unrelated
|
|||
|
|
result IDs. A matching Client banner-to-character table is still required;
|
|||
|
|
the older reference's Banners.json is not proof of current banner assets.
|
|||
|
|
- Aha's Help: verify LV 1/2/3, off, legacy fallback, challenge-only application,
|
|||
|
|
and that changing the setting during battle affects the next battle only.
|
|||
|
|
|
|||
|
|
Keep all research probes outside scripts while the game is not being inspected.
|
|||
|
|
No Client gameplay confirmation has been requested during this offline work.
|