• v4.2.0 a941ee2d04

    v4.2.0
    All checks were successful
    CI / build-and-test (push) Successful in 1m27s
    Stable

    joeyr released this 2026-09-01 19:30:10 -05:00 | 28 commits to main since this release

    Changed

    • The counters, synergies and builds mirrors accept
      generatedFrom.previousPatch.
      lol-companion-data is about to publish those
      three files over a pooled two-patch window, and the new field names the second
      patch. It is optional and nullable here while the producer's copy is required
      and nullable — that asymmetry is the whole point of the release. These schemas
      are .strict(), so a producer that shipped the field first would have every
      install reject the file and freeze on cached data until the app updated. The
      mirror has to land first, and this is it.

      generatedFrom.patch is untouched. It still names the patch the file is for
      and is still what the app compares against the LCU before accepting a fetch —
      pooling widens what was measured, not what the file claims to describe.

    • stale on a benchmarks bucket now means "the current patch has measured
      nothing here yet."
      Benchmarks pool both patches upstream, so a bucket's n
      is the sum of the two and stale no longer marks an either/or fallback. The
      runtime already labels those buckets with generatedFrom.previousPatch, which
      stays correct under the new meaning, so nothing about what the overlay renders
      changes. The damage artifact's identically named flag does still mark a real
      fallback; the two are no longer the same signal, and the schema comments now
      say so.

      No behavioural change ships in this release. It exists so the schema change
      can land before the data does.

    Downloads