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.
Add more Arena and ARAM Mayhem augments
Item upgrades (Death's Dance, Ravenous Hydra, Sundered Sky, Sword of Blossoming Dawn, Zhonya's), Quest: Ultra Hydra with a working item icon, and several missing combat augments. Quest: Ultra Hydra now uses the same name style and tooltip as other quests.
Update Arena and ARAM Mayhem augments
Correct several augment values to match current patch notes, and add Accelerating Sorcery, Mystic Punch, Hand of Baron, Phenomenal Evil, and dragon soul augments to the picker.
Cut GitLab CI minutes: no branch-push pipelines, skip all-champions off master
Drop the install job, skip tests on data-only scrapes, prune merged branches,
and only run the full champion suite when FULL_CHAMP_TESTS=1.
fix changelog on Cloudflare Pages
lolmath.net builds with a shallow clone and no GitLab token, so fall back to a bundled commit list when git/API return too few entries.
fix changelog on GitLab Pages
Use CI_JOB_TOKEN (or GITLAB_CHANGELOG_TOKEN) for the commits API, and fall back to git log with git installed in the build image.
fix changelog page showing no commits
Read recent commits from local git instead of the GitLab API, which 404s without a token and left the page empty.
Cut build calculation time by about half
Tighter item search, skip invalid combinations sooner, and cheaper combat scoring. Recommended builds stay the same.
