94 lines
4.4 KiB
Markdown
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.
|