• v1.7.0 c17b404f43

    v1.7.0
    All checks were successful
    CI / build-and-test (push) Successful in 1m48s
    CI / docker-build (push) Successful in 36s
    Stable

    joeyr released this 2026-07-30 23:45:13 -05:00 | 8 commits to main since this release

    Startup observability — the boot logs now answer "which build is this, what is
    it pointed at, and is the LoL monitor actually working?" without shelling into
    the container.

    Added

    • Version in the startup logs. getAppVersion() reads package.json from
      disk (it sits outside tsconfig's rootDir, and the container's
      CMD ["node", "dist/index.js"] means npm never sets
      npm_package_version). Reported on the first line of boot, on
      Bot startup completed, and in the config summary.
    • The masked config summary is now actually logged. Config.getSummary()
      existed and masked every secret, but nothing outside tests ever called it — so
      a boot revealed almost nothing about its own configuration. It now logs once
      per start as Startup configuration.
    • storage.databaseTarget — where the DSN actually points. Host, port,
      database, and user parsed out of DATABASE_URL via describeDatabaseUrl().
      Deliberately field-by-field rather than a redacted DSN string, so the password
      cannot reach a log line through a formatting slip; unparseable values report
      parsed: false instead of throwing.
    • LoL live monitor configuration line at plugin init. Logs the tracked
      queues, poll interval, prediction settings, Riot pacing, and — critically —
      riotApiKeyConfigured. Emitted whether the monitor is on or off.

    Changed

    • A monitor enabled without RIOT_API_KEY now warns. That combination wires
      no-op API clients that return "no game" forever, which in the logs was
      indistinguishable from a healthy monitor whose players simply weren't playing.

    Notes

    • DATABASE_TYPE (logged as databaseType) is a free-text label that does not
      affect how the bot connects; the new databaseTarget is the field that shows
      the real destination. Both now appear, with a comment in config.ts saying
      which is which.
    Downloads