40 lines
2.2 KiB
Markdown
40 lines
2.2 KiB
Markdown
# 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.
|