• v0.17.0 ecce9f0801

    0.17.0
    All checks were successful
    CI / gate (push) Successful in 38s
    CI / image (push) Successful in 14s
    Stable

    joeyr released this 2026-08-04 16:04:09 -05:00 | 189 commits to main since this release

    Added

    • The crawl now records each participant's final inventory. item0item6
      are in every match payload this service already fetches, so capturing them
      costs no additional Riot requests — the same argument that made benchmarks and
      runes cheap. New participant_stat.items INTEGER[] column, populated for all
      ten participants of every match.

      Nothing is published from this yet. It ships alone and first because it is
      the only part of the item work whose cost is wall-clock: retention keeps two
      patches, so an inventory not captured while its patch is live cannot be
      recovered afterwards. Deploy it the day it merges; the artifact that reads it
      follows later.

      All seven slots are stored raw, empty slots and trinket included. Which id
      is a legendary, a boot or a ward is a Data Dragon judgement made when an
      artifact is built, and Data Dragon moves — classifying at capture time would
      mean a re-crawl after every item rework, from rows that no longer exist. The
      zeros are also the sentinel: a captured row is always seven integers, so
      items = '{}' identifies a row collected before the column existed, exactly
      as primary_style = 0 does for runes.

    Notes

    • The migration is an ADD COLUMN IF NOT EXISTS with a default, applied at
      boot alongside the existing ones. No downtime, no backfill, and rows written
      before it carry the empty-array sentinel.
    • No consumer change. No published artifact reads this column yet.
    Downloads