-
released this
2026-08-04 09:43:06 -05:00 | 204 commits to main since this releaseSeparates "op.gg has no build for this pair" from "the parser is broken".
They arrived at the crawl as the same event, and only one of them is a problem.Why
The first production run of the classic items crawl covered 88 of 90 pairs. The
two it missed — Nunu support and Kog'Maw mid — render on op.gg with no core
build at all, and the crawl counted them as parse failures. They spent the 90%
coverage floor, andchampionRoles: 88against a 90-pair universe was
indistinguishable from two pages having broken.Harmless at 2 of 90 and wrong later. This mode only thins out, and the first
night it crossed the floor the crawl would have aborted on a run that was
entirely correct — reporting a healthy crawl as a parser bug.How
One page cannot fully separate the two: "op.gg has no build" and "op.gg renamed
metaBuildItems" are both zero core builds. What a page can prove is that
op.gg served the items route, because Next.js ships only the active route's i18n
namespace. So the page answers what it can and the run settles the rest:- anchor present, no core build →
empty; the pair still counts as
answered toward coverage, because op.gg replied and the crawl read it; - anchor absent → thrown, counted as a failure exactly as before. A
challenge page or a redirect is not evidence about any champion; - nearly every answered pair empty → abort, naming the section keys. That is
a shape change, not a thin mode, and the coverage floor is blind to it: every
page answers, so it reads a clean 100% and would publish an empty artifact.
The new ceiling is
ITEMS_CLASSIC_MAX_EMPTY(default0.5). Last measured, 2 of
90 answered pairs were empty; the failure it guards against sits near 100%.Added
generatedFrom.emptyPagesonchampion-items-classic.json— how many
pairs op.gg rendered but published nothing for, sochampionRolesshort of the
universe is readable rather than ambiguous. Optional: absent means unknown, not
zero, for artifacts written before the distinction existed.
Verified against the real captured HTML for both empty pairs and a populated one,
plus a truncated response to confirm it still throws. Gate green: typecheck,
lint, 338 unit, 30 integration, build.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- anchor present, no core build →