• v4.4.0 f235a7a636

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

    joeyr released this 2026-09-05 20:36:44 -05:00 | 23 commits to main since this release

    Added

    • A "Refresh data now" button in the settings panel. Published artifacts are
      cached and only re-fetched when that copy is older than cacheTtlHours (24h)
      or describes a different patch. That check is not a launch check, so
      restarting the app does NOT re-fetch a cache that is merely a few hours old,
      and cacheTtlHours has no in-app control by design — which left deleting
      files from %APPDATA% or hand-editing settings.json as the only overrides.
      The window this closes is narrow but real: the crawler publishes once a night
      at 07:00, so the morning after, yesterday evening's cache is still inside its
      TTL and the app will not go looking.

      The button force-refreshes every artifact — benchmarks, synergies, counters
      and tiers, runes, item builds, Classic Rift items, damage splits — and reports
      what landed. force skips the within-TTL shortcut and nothing else: a forced
      fetch that fails still falls back to the cached copy, because a manual refresh
      is no reason to leave champ select with nothing. The refreshers run
      sequentially rather than in parallel, since these are up to ~9.5 MB each
      against one small API and the automatic path spreads them across a session.

      The two Classic Rift files cannot by themselves make the result look broken.
      Their producer pass is opt-in and the mode is limited-time, so a 404 is their
      normal state, and reporting that as a failure is how a status indicator gets
      ignored.

    • A champion in a pool that its roster does not have is now marked. Pool
      chips are matched against the roster's own champion list, and one with no
      match is drawn with a dashed border and a title saying it is ignored. The
      live and Classic Rift pools hold the same champion names against different
      kits, so a name carried into the classic pool that Classic Rift does not have
      was silently dropped by the pipeline while still looking configured in the
      panel. Only applied once the client has actually listed champions — the list
      is empty before the LCU connects, and striking through a whole pool on a cold
      start would be worse than saying nothing.

    Downloads