• v3.11.0 08a99e107a

    v3.11.0
    All checks were successful
    CI / build-and-test (push) Successful in 1m52s
    Stable

    joeyr released this 2026-07-30 23:18:34 -05:00 | 24 commits to main since this release

    Added

    • Classic Rift champ select gets real advice. v3.10.0 fixed the in-game
      overlay; the board was still blank, because every op.gg request went out as
      type=ranked with a jade_* slug that 307-redirects. op.gg does publish the
      mode — counters, runes and item builds — under type=classic, so the adapters
      now ask for it.

      The champion id decides, not a flag. A 60xxx subject can only have come
      from a Classic Rift champ select and a live id can only have come from
      anything else, so opggSubject derives the queue and the slug id from the id
      itself. Nothing is threaded through the pipeline, and there is no state that
      can disagree with the id it describes.

      Only the CHAMPION slug needs translating (60028evelynn): op.gg keys
      classic items and runes in the 77xxxx / 775xxx blocks, which is what the
      live client reports, so those ids pass straight through — including into the
      item-set import, which needed no change at all.

    Fixed

    • Every classic counter would have silently failed to apply. op.gg names
      opponents by base display name, so "Jax" resolves to live id 24 — while a
      Classic Rift board is holding 60024. The matchup and the board would never
      have matched, with no error raised anywhere: the advice simply never fires.
      Matchups are now re-keyed into the subject's namespace, and the fix is
      idempotent so an already-classic id is never shifted twice.

      Caught end-to-end against a captured live page rather than by reading, which
      is the only way this one surfaces — every layer looks correct in isolation.

    Notes

    Champ-select roster detection (rosterForMapId) keys on the gameflow map id
    453, never on the mode string. Queues 2450 and 3280 report gameMode
    KIWI_JADE — "ARAM: Mayhem Classic-ish" — on map 12, so any substring test
    against the mode name routes those ARAM games to classic pages. The four real
    Classic Rift queues are all on map 453, which also survives Riot adding a fifth.
    The Live Client Data API cannot help here: port 2999 is not listening until the
    game process starts, and champ select has picks to advise on before that.

    op.gg does not segment this mode by rank — the tier parameter is accepted and
    discarded, with every band and a deliberately invalid value returning identical
    rows. Classic figures therefore describe all ranks, and nothing should caption
    them with a tier.

    Downloads