Files
GaCy-GO/docs/cw-book-entry-recovery.md
T
2026-10-28 18:54:43 +07:00

94 lines
4.4 KiB
Markdown

# CW Go button recovery — 2026-10-26
## Current evidence
The user reports Go from both the handbook and activity page does nothing,
with no outgoing teleport command. Current Client identity is assembly SHA256
`4aa08a0706f27d2cf9951b61920c179140ece9ea94f7e34422c18e46922939b6`.
Two exact named baked modules were captured passively without executing their
returned loader closures:
- `Ui.DailyMission.Rogue.GridFight.HandbookRogueGridFightTabItem`
- `Ui.DailyMission.Rogue.HandbookRogueGotoBtnBehaviour`
The common superclass was also captured:
`Ui.Activity.CommonComponents.CommonActivityGotoBtnBehaviour`.
Raw chunks and parsed Luau v4 representations are in
`.runtime/named-baked-capture/cw-{handbook,handbook-goto,common-goto}-current.*`.
`string.dump` is absent in this Client; that failed probe is not evidence that
the named callbacks are missing. `debug.getupvalue` is available.
The handbook's `_on_click_go` calls
`ActivityModule:GetPanelData(_GRID_FIGHT_CONSTANTS.ActivityID)`, passes the
result to its behaviour and calls `on_btn_go`. Read-only current observations:
- ActivityID and PanelID: 71101.
- ContentID: 171002.
- Panel type: `RPG.Client.GridFightActivityData`; panel/state are present.
- `IsSkipSwitchStoryLine=false`.
- `StateData.CurState=PreGuide` (enum value 2).
This disproves the earlier-session nil-panel explanation for the present
failure. The unrelated missing Tourn Rogue resident-panel warning is not used
as proof of the CW cause.
## Missing native guide prerequisite
The exact live `ActivityPanelConditionRow` is retained in
`battle_diagnostics/cw-book-entry-20261026/condition-row.json`:
- PreConditions: level 21 and FinishMainMission 1034109.
- GuideConditions: FinishMainMission 8047206.
- GuideGoto: 6417; ActivityGoto: 6418; GuideTakeMission: 0.
The current common Go behaviour dispatches a PreGuide panel through its guide
path, rather than its InProgress ActivityGoto path. This server's initial
GetMissionData advertises the 148 function-unlock missions from the older
export. Its list contains 1034109 and the older CW introduction 8037100, but
omits 8047206. The latter is present in `resources/MainMission.json`. Publishing
all 2,205 imported main missions is unnecessary and is not part of the fix.
## Source correction
`resources/CurrencyWarsActivityConditions.json` retains the captured condition
row, named condition enum mapping, capture digest and the explicit older-base
to-current-activity-capture provenance. It declares the scoped freeplay policy
`complete_declared_guide_finish_main_missions`.
`LoadCurrencyWarsGuideMissions` reads this resource without modifying a save.
It validates source/target identity, active CW panel membership, supported
condition kind and mission existence. `getMissionUnlocks` appends only these
validated guide prerequisites, deduplicated, to its existing function-unlock
view. GetMissionData and GetMissionStatus therefore agree. The expected initial
finished-main count becomes 149. No Client CurState field is forced, no scene
or callback is invoked, and unrelated missions/inventory/progression are not
rewritten.
`go build ./internal/gameserver` passed. No tests or deployment were performed
by this subtask. Actual native transition to InProgress and successful Go
teleport require confirmation after the updated mission view reaches the
Client.
## Integrated validation
The parent built and deployed standard/shipping Game and SDK binaries and
restarted the root servers. Fresh GetMissionData logged 149 finished main
missions, with the existing 14,716 sub-missions and 68 exclusions preserved.
The user then confirmed Go teleport works. Server evidence records an actual
EnterScene request and resolved CW entry 2032202, rather than a success-only
button response. This confirms the tested entry path; it does not establish
completion of CW's remaining Tea Break/route/reward gameplay.
All temporary probe copies were removed from scripts/ and the passive Frida
session was detached. Ping colors was also independently user-confirmed in
this build: matching bar/digit colors and no flashing on digit changes.
## Diagnostic cleanup notes
Research tools remain under `tools/`. The parent owns removal of intentionally
staged `cw_book_condition_row.lua` and the metadata/panel-state probe copies
from `scripts/`. A finished top-level Lua probe must never use a bare `return`
inside an outer `do` block: that returns from the entire concatenated heartbeat
chunk. Use a local function/tick boundary for early returns instead.