Make build ranking test independent of auto-updated data
The ranking spec pinned exact top-20 builds and scores, so every
[AUTO] JSON refresh failed it and kept master red. The determinism
checks already compare full results across two scans and stay.
- Replace exact top-20 snapshots with checks that hold for any data
version: non-empty builds, at most 7 items, known item IDs
- Replace fixed score snapshots with finite, positive checks
- Remove the golden snapshot file
Fix NA account lookups and clarify rate-limit errors
- Account lookups now go to the Riot cluster for the selected region
(Americas for NA) instead of always Europe
- Rate-limit messages say whether the limit came from Riot or from the
lookup proxy, so it's clear what to wait for
- The lookup proxy only forwards the Riot endpoints the app uses, and
limits requests per client
Speed up homepage search and lazy-load champion presets
Co-Authored-By: Claude Haiku 5.5 <[email protected]>
Fix Lich Bane AS uptime, Dusk and Dawn on-hit procs, Kayle passive ramp
- Lich Bane: +50% AS now applies only to Spellblade attacks (scenario procs,
capped by 1.5s ICD) instead of assuming a proc every 1.5s
- Dusk and Dawn: extra on-hit per Spellblade proc, not once per fight;
also re-applies Kayle's E on-hit
- Kayle: passive starts at 0 stacks (no minion pre-stack), Q/E grant stacks
- Update KogMaw ranking snapshot (Lich Bane no longer inflated)
Update build ranking snapshots after the formula corrections.
The locked scores and sample builds changed because the item and rune math changed. The tests were checking the old numbers.
Correct item and rune formulas that were changing build scores.
Lethal Tempo, Spellblade, Force of Nature, Cloak of Starry Night, Kraken Slayer, Blade of the Ruined King, Titanic Hydra, Muramana, Heartsteel, Kaenic Rookern, Shadowflame, Lich Bane, Bramble Vest, Actualizer, and Guardian's Horn now follow the wiki. Legend: Haste no longer shortens your ultimate. A broken gold interpolation no longer ranks a build as if the gap were zero.
Stop retrying Riot 429s when Retry-After is missing.
A null header became a 0s wait, so the extra fetch hit the shared proxy key immediately.
Allow multiple hydras during Ultra Hydra quest.
Skip the unique hydra limit when the Mayhem quest is active so a second hydra in inventory does not empty the scan. Guard live-client skill-order reads when abilities are missing.
Throttle Riot API calls and skip 429 retries.
Serializes proxy requests and honors Retry-After so game two does not burn the rate limit with parallel league lookups.
Migrate to lol wiki for mode balance stat overrides, add arena mode stat overrides, expected enemy build are always 6 items, enemy stats don't have runes in non-runes modes.
Replace the Meraki champion scrape with League wiki ChampionData parsing, including a new Lua table parser, Arena schema/output, and updated ARAM/Arena mode overrides. This also normalizes scraped expected builds to six non-Tear items, applies Arena stat modifiers in combat calculations, and clears enemy runes in special modes like Arena and ARAM Mayhem.
Scrape popular builds from op.gg and lolalytics.
League of Graphs answers the CI runner with a Cloudflare challenge. Those two sites return the build page.
Use the CI job token for scheduled scrape pushes.
GL_TOKEN is revoked, so the weekly job authenticated and then failed the push.
Implement more Arena and ARAM Mayhem stat augments
Warlock Juicebox, Purist Caster, Aim for the Head, Don't Blink, and Dashing, plus marking already-coded Slap Around and Tap Dancer as implemented.
