4.4 KiB
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.HandbookRogueGridFightTabItemUi.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.