• v3.14.1 9bb2917429

    v3.14.1
    All checks were successful
    CI / build-and-test (push) Successful in 2m25s
    Stable

    joeyr released this 2026-08-03 15:31:31 -05:00 | 20 commits to main since this release

    Fixed

    • "Follow" stopped auto-scrolling the log panels once their buffer filled up.
      On the Diagnostic event stream that is seconds after the League client
      connects — the LCU firehose logged 1,422 events in 20 seconds in the session
      that surfaced this — so in practice Follow worked briefly at startup and then
      did nothing for the rest of the session. Unchecking and re-checking it, or
      scrolling back to the bottom, did not revive it.

      useFollowScroll re-pinned to the bottom in a layout effect keyed on the
      visible row count. Every panel's buffer is capped (MAX_DIAG_ENTRIES,
      MAX_APP_LOG_ENTRIES, MAX_LOG_ENTRIES), so once full, each new record evicts
      a row from the top and appends one at the bottom and the count is pinned at the
      cap forever. React saw unchanged deps and skipped the effect from then on.

      The effect is now keyed on rowsKey(rows) — row count and newest row id.
      Both halves matter: the id catches an append at the cap, the count catches a
      filter that drops older rows while leaving the newest one in place.

    • The log lists set overflow-anchor: none. They evict from the top and their
      rows are not a fixed height (long URIs wrap), so Chromium's scroll anchoring
      adjusted scrollTop to hold the anchored row still — walking the view off the
      bottom and firing scroll events that raced the re-pin, which was enough to
      uncheck Follow on its own.

    • The Status log was keyed the same way and had the same latent bug at its own
      200-entry cap; it is fixed alongside.

    Changed

    • undici 8.5.0 → 8.10.0 (lockfile only, the ^8.5.0 range is unchanged) for
      GHSA-4cwx-7wf7-3272, a HIGH advisory on cross-user information disclosure via
      degenerate private cache directives, plus four moderate advisories in the same
      range. The CI gate's npm audit --omit=dev --audit-level=high step fails
      without it.

    Notes

    • Read-only against the League Client (LCU) — never writes to the client.
    Downloads