Files
GaCy-GO/docs/cw-bonfire-phase-contract.md
T
2026-10-28 18:54:43 +07:00

2.2 KiB

Bonfire phase correction — 2026-10-26

The deployed FFGO-derived selected phase was wrong for the current Client. The user's video showed the initial option cards after resume, despite the server rejecting both option and heal requests as already selected. Saved revision 531 has phase 1 and the already-applied same-node PetPal rule marker.

Read-only runtime evidence from the active Client:

  • Exact type: RPG.Client.GridFightBonfirePendingAction.
  • HasSelected=false with the server's phase 1; queue 530, income 10/5/2.
  • GridFightBonfireDialog._setup_view reads HasSelected to choose between initial option cards and final rewards. Its current baked closure was captured without executing that closure.
  • _UpdateHasSelected(KMJMHDPPAKH) resolves to RVA 0xda53360.
  • Native instructions cmp esi,2; setge byte ptr [rdi+0x6c] prove selected means phase >= 2. See private cw54-bonfire-hasselected.asm.
  • GameAssembly SHA256: 4aa08a0706f27d2cf9951b61920c179140ece9ea94f7e34422c18e46922939b6.

The FFGO factory writes selected=1. Matching scalar wire layout did not prove matching enum semantics. The earlier Tea Break integration incorrectly assumed that semantic match; this document supersedes its phase-1-selected statements.

The server now sends choosing=1, selected=2, and accepts old phase-0 offers for selection. A read-only projection repairs legacy selected=1 only when the same-run/same-node effect marker and exactly one offered option's saved rule values prove the old selection. A bare phase 1 is never automatically selected. Readers do not write persistent or replay effects. The actual next transaction persists the repaired phase together with its ordinary revision CAS.

New selections record the event/option (or heal) in the same-run sidecar. A duplicate matching request resynchronizes the selected action without applying the effect/heal again; changing a completed selection is rejected. Take-drop still grants and advances once in the existing single commit.

Probes remain under tools/. All temporary script copies were removed and both Frida sessions were detached. Compilation is not Client acceptance; the patched resume/take flow still needs observation after deployment.