8ca89bcc7547b27dab67e0554c7c7aa8067e8e79
The category clamp fixed WHICH content the first store render draws, but the tab bar was still missing on first entry (operator-observed: first open = bronze packs with no tab bar; re-entry = same packs WITH Bronze/Silver/Gold tabs). Root cause: the store screen dispatcher 0x18007d880 publishes the tab bar on a DIFFERENT event than it renders. Event 0x278a -> FUN_18007df60 resolves the six hardcoded tab tokens against the loaded purchase groups and publishes *_CATEGORY_ID; event 0x753f -> FUN_18007dab0 renders. On first entry the publish runs before /store/purchasegroup has landed, so all six tokens resolve -1, every panel hides, and no tab bar is drawn; re-entry only works because the groups are cached by then. Re-run the native publish once per screen from the render detour, where the groups are provably present (the ordinal-1 lookup already proves it), reproducing the working re-entry order (publish, then render). Safe: it is the same call the dispatcher makes with the same single argument, it self-gates on screen+0x2cc == 0x418 (a mismatch is a native no-op, not a fault), it is fingerprinted before the first call, and it runs at most once per screen instance. Also logs the gate state so a no-op publish is diagnosable. fmt/clippy -D warnings clean, 29 hook tests pass.
Description
GUI launcher for OpenFUT — manages core/bridge services, DLL hook deployment, and TLS cert setup
Languages
Rust
100%