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.
fix combat scenario copy
fix scraper for MR per level
a fix for league classic champion images
Ignore League Classic Champions in Scrape
Skip incomplete champion data instead of saving it
Fix weekly champion data update failing to run
deps(discord): clear 15 advisories in the notification bot The discord/ sub-project was never covered by the earlier audit pass: running `pnpm audit` from inside it resolves the parent workspace rather than the bot, so it silently reported the root project's results. Audited directly it had 15 advisories (6 high, 7 moderate, 2 low), all reaching it through discord.js. - discord.js ^14.21.0 -> ^14.27.0, which moves its own undici floor to ^6.27.0 and clears six of the undici advisories outright. Three transitive packages remain pinned below their fixed versions by intermediate parents, so they are handled with overrides declared for both bun (the notify job runtime) and pnpm: undici ^6.28.0 (@discordjs/rest allows <6.23.0) ws ^8.21.1 (@discordjs/ws allows <8.20.1) lodash ^4.18.1 (@sapphire/shapeshift allows <=4.17.22) Verified: `bun audit` and `pnpm audit` both clean in discord/; the bot entry point still bundles cleanly against the new dependency tree.
deps(scraper): consolidate open Dependabot bumps and clear scraper audit Supersedes the three open Dependabot PRs against /scraper, all of which were stale against master: #66 ajv 8.17.1 -> 8.18.0 (landed on 8.20.0) #64 lodash 4.17.21 -> 4.17.23 (landed on 4.18.1) #35 undici 6.21.3 -> 7.18.2 (landed on 7.29.0) The scraper's pnpm-lock.yaml had drifted badly from package.json -- it still pinned removed packages such as @types/cheerio and resolved undici to 6.21.3 even though cheerio 1.1.2 requires ^7.12.0. Regenerating both lockfiles reconciles them and picks up the bumps above. `bun audit` additionally flagged two transitive packages whose parents still allow vulnerable versions, neither of which Dependabot had opened a PR for. Both are pinned via overrides, declared for bun (the scrape runtime) and pnpm (the lockfile Dependabot tracks): undici ^7.29.0 (cheerio allows ^7.12.0; <7.18.2 is vulnerable) fast-uri ^3.1.5 (ajv allows ^3.0.1; <3.1.3 is vulnerable) Verified: `bun audit` and `pnpm audit` both clean in scraper/; scraper typecheck output is unchanged from master (the remaining cheerio `Element` and unknown-catch errors are pre-existing).
security: remove hardcoded GitLab token from changelog page The /info/changelog build step embedded a GitLab personal access token directly in source and passed it as a `private_token` URL query parameter. The value has been committed since a07104d and is readable by anyone with access to this repository or its mirrors. - Read the token from a GITLAB_CHANGELOG_TOKEN environment variable, supplied as a masked GitLab CI/CD variable at build time. - Send it as a PRIVATE-TOKEN header rather than a query parameter, so it cannot leak into access logs or proxy caches. - Degrade gracefully to an empty changelog when the variable is unset, matching the existing error path, so builds never hard-fail on it. getStaticProps runs only at build time, so the token was never part of the client bundle -- the exposure is the repository itself. This change stops the leak going forward; the existing token still needs to be revoked and reissued, since it remains in git history.
security: patch 19 dependency advisories Resolves every advisory reported by `pnpm audit` (12 high, 6 moderate, 1 low) across the app and both sub-projects. Audit is now clean. - next 16.2.10 -> 16.2.12, clearing nine advisories (middleware/proxy bypass, Server Action DoS and SSRF, rewrite SSRF, cache confusion, image-optimization DoS, Server Function endpoint disclosure). The site is a static export, so most of these are not reachable at runtime, but the build-time toolchain and any future server target are covered. Upstream still pins vulnerable transitive versions for the rest, so those are handled with pnpm overrides in pnpm-workspace.yaml: - dompurify -> ^3.4.12 (isomorphic-dompurify allows ^3.4.11) - ws -> ^8.21.1 (jsdom via jest-environment-jsdom) - brace-expansion -> ^1.1.18 / ^2.1.4 (minimatch pulls both majors) - postcss -> ^8.5.25 (next dependency-pins 8.4.31) - sharp -> ^0.35.3 (next optional dep allows vulnerable libvips) Verified: `pnpm audit` clean in ., scraper/ and discord/; 281 tests across 26 suites pass; `tsc --noEmit` clean; `next build` compiles.
TS 6 to maintain jest compatibility
deps up
deps up
Export Settings fixes for loading, name items
up deps
26.11 & Refactor hard-CC/haste logic; Add granular hard-CC counting and imperial mandate haste handling: compute finalHasteBonuses per ability, add calculateHardCcInstances helper, and wire imperialMandate ultimate haste and extraUltimateHaste into cooldown math. Replace multiple ad-hoc CC checks (Aftershock, Glacial, Imperial Mandate, shields, etc.) to use the new hard-CC counts and adjust related proc, uptime and damage/armor calculations.
deps up
Restore repository state to Fix champion base stat growth Align master with aa097e4a after revert chain left incorrect stat formulas and reintroduced the pre-merge attack speed data split.
Revert "Add support for champion extra abilities" This reverts commit a4b1fb21bdab85d00d321f6244b703920fc98b71.
Revert "Merge branch 'master' of https://gitlab.com/lol-math/item-optimizer" This reverts commit e6cfc5481e4d90f8f427c80243faa4734c435f22, reversing changes made to a4b1fb21bdab85d00d321f6244b703920fc98b71.
Reapply "Fix champion base stat growth" This reverts commit 410805c827e35abae6d7dc1d20796f7916acdff1.
Revert "Fix champion base stat growth" This reverts commit aa097e4a5764c276e188c387a659f29b2c2e01c4
Merge branch 'master' of https://gitlab.com/lol-math/item-optimizer
Add support for champion extra abilities Add comprehensive support for champion "extra abilities" across UI, state, types, and calculation logic. Key changes: - UI: Introduce ExtraAbility component and export; render extra abilities in Champion tab and show icons/descriptions in compare damage details. (files: Champion.tsx, ability/ExtraAbility.tsx, ability/index.ts, CompareDamage.tsx) - State: Add Redux actions to update extra ability fields (damage type, target, booleans, numeric inputs) and include extra ability data in player-champion slice. (player-champion.slice.ts) - Types: Extend DamageScenario to include extraAbilities. (types/index.ts) - Damage computation: algorithm worker now includes an extraAbilities entry in scenario outputs; compare-damage utils compute totals and include extra abilities in computed map and overall totals. (algoRequest.worker.ts, compare-damage.utils.ts) - Battle engine: Ensure dynamic Damage arrays are allocated and zeroed for each extra ability key. (battle-calculation.ts) - Champion logic: Refactor Udyr calculations to account for extra/empowered activations, split and accumulate extra ability damage into separate keys, and update healing/shield math accordingly. (Udyr.ts) - Data: Add descriptive ability info for Udyr awakened abilities. (udyr.ability-info.ts) These changes enable modeling, editing, and displaying custom extra abilities and ensure they are included in damage totals and comparisons.
Fix champion base stat growth https://wiki.leagueoflegends.com/en-us/Champion_statistic#Growth_by_level
Merge Attack Speed into Champion Stats
Also Get Champion Stats from Community Dragon
Deps up
Include Whispering Circlet and generalize tooltip Add ItemId.whisperingCirclet to the list of tracked Tear items and update the Tooltip copy to reference any Tear item (and a generic "upgrade") instead of specifically naming Manamune/Muramana. This clarifies the guidance and ensures the warning applies to the newly included item.
Update battle calculation and Udyr champion calculations for damage accuracy - Limited bonus critical chance from Atma's Reckoning to a maximum of 30%. - Adjusted damage calculations for Udyr's R ability to incorporate magical reduction factor for more accurate damage output.
Refactor TypeScript interfaces and update configurations - Updated TypeScript interfaces to use `interface` instead of `export interface` for consistency. - Added `scraper` directory to the TypeScript exclusion list in `tsconfig.json`. - Enhanced type definitions in `fetch-retry.ts` and `leagueofgraphs.ts` for better type safety. - Included `@types/node` as a development dependency in `scraper/package.json`. - Updated `tsconfig.json` in the `scraper` directory to include Node types.
Update Statikk Shiv and Runaan's Hurricane damage calculations for accuracy - Adjusted Statikk Shiv on-hit application logic to account for chain targets correctly. - Updated Runaan's Hurricane acquisition rate to reflect the correct number of targets hit.
Fix Marksmage and Mind to Matter
Fix Zeri not doing Q/E damage
fix TS errors