• v0.27.0 c0cc509648

    v0.27.0 — RETAIN_PREVIOUS_PATCH
    All checks were successful
    CI / gate (push) Successful in 51s
    CI / image (push) Successful in 18s
    Stable

    joeyr released this 2026-08-10 21:02:59 -05:00 | 33 commits to main since this release

    Added

    • RETAIN_PREVIOUS_PATCH=false narrows retention to the current patch.

      The default is unchanged (true, the two-patch window README describes), so
      nothing moves for a deployment that does not set it.

      It is one flag with two effects, and they cannot be separated: it sets the
      window pruneToPatches enforces AND whether previousPatch reaches the
      damage and benchmarks builders as their thin-sample fallback. Pruning the rows
      while still naming the predecessor would publish
      generatedFrom.previousPatch: "16.14" over four queries that return nothing —
      provenance for a fallback that cannot fire. runRiotWindow binds it once, as
      retained, and everything downstream reads that rather than the parameter.

      What switching it off costs is one morning per patch: on rollover, a champion
      or role with no rows yet on the new patch is omitted from damage and
      benchmarks instead of being served from the previous patch flagged stale.
      Only those two artifacts have a fallback to lose — counters, runes, synergies
      and builds are current-patch-only either way — and neither data/archive nor
      the brotli'd published payloads are pruned under either setting.

      It also forgets the previous patch's seen_match ids, so rollover morning
      re-fetches some matches it already knows are off-patch and discards them
      again. Bounded, and once per patch.

      The deployed stack sets it, alongside a crawl window widened from three hours
      to six: 6-hour nights collect roughly twice the rows, and holding two patches
      of that on the shared Postgres is ~1M participant_stat rows. The wider
      window is also what makes the trade cheap — most champion-roles now have rows
      by the first morning, so the fallback rarely fires at all.

    Downloads