• v1.0.1 e510839a1e

    v1.0.1 Stable

    joeyr released this 2026-07-08 21:44:54 -05:00 | 178 commits to main since this release

    Full lint cleanup following the config fix in 1.0.0 -- no user-facing behavior change, but a few real bugs turned up along the way and got fixed.

    Changed

    • Fixed all ~1270 lint violations the corrected .eslintrc.js surfaced. Production code is now fully lint-clean (typed DB rows, narrowed unknown error handling, missing return types, floating/misused promises). A targeted ESLint override relaxes the unsafe-any family for test files, since Jest mocks are inherently loosely typed.
    • npm run lint now runs in CI, after format check and before type-check.

    Fixed

    • MessageStore and ServerConfigManager cleanup methods logged deletedCount: 0 on every call -- read .rowCount off a value that never had it. Added RETURNING clauses and count result.length instead.
    • DiscordClient's rate-limit handler logged fields (timeout/url) that don't exist on the real payload type -- always undefined. Now logs the real fields.
    • DiscordClient.disconnect() never awaited client.destroy(), so shutdown could complete before the gateway connection actually closed.
    Downloads
  • v1.0.0 ce5b646f00

    v1.0.0 Stable

    joeyr released this 2026-07-08 20:31:27 -05:00 | 179 commits to main since this release

    First tagged release. Consolidates the feature set already built and brings the repo onto forgejo with the versioned-release cadence used by the other projects there.

    Added

    • TypeScript Discord bot answering /aufhocker query: slash commands via Claude, using recent channel history as conversational context.
    • Postgres-backed message retention, per-server configuration, rate limiting, and an admin audit trail.
    • Optional plugins: League of Legends live-game monitoring/predictions (LOL_ENABLE_LIVE_MONITOR) and Diablo 2 terror-zone/DClone tracking (D2EMU_ENABLE).
    • .gitattributes, a proprietary LICENSE, Prettier formatting (format/format:check), and a typecheck script, matching the other forgejo-hosted projects.
    • Forgejo Actions CI (.forgejo/workflows/ci.yml) running format check, type-check, tests, and build on every push/PR to main.

    Fixed

    • .eslintrc.js referenced TypeScript-ESLint configs without the required plugin: prefix and a non-existent prefer-const rule name, so npm run lint had never actually run successfully.
    • ToolExecutionLoopAudit.test.ts's loop-cap tests hardcoded 5 rounds while MAX_TOOL_ROUNDS is 10, and assumed hitting the cap throws when the code actually returns a graceful fallback message. Exported MAX_TOOL_ROUNDS and fixed the tests to match real behavior.
    Downloads
  • v3.5.3 09a0324f73

    v3.5.3
    All checks were successful
    CI / build-and-test (push) Successful in 2m27s
    CI / docker-build (push) Successful in 1m58s
    Stable

    joeyr released this | 22 commits to main since this release

    Fixed

    • CI's dependency audit passes again. Two high-severity packages had new
      advisories published today. One was undici 6.27.0, which discord.js uses
      for every request to Discord, with six advisories fixed in 6.28.1. The
      other was brace-expansion 5.0.9, used only by the linter, with three fixed
      in 5.0.12. Both now resolve to their newest versions, and npm audit
      reports nothing at any severity.
    • A test that failed about one run in five now passes every time. The
      bot-message exclusion tests searched the context for each bot message's
      text. Random users can legitimately carry the same text, for example a
      user named __de beside a bot message reading __de. The code was right
      each time. Each bot message now carries a marker no generated user can
      produce, and the tests check for that. With the bot filter deliberately
      broken, all three tests fail. With it in place, 25 runs in a row passed.

    Changed

    • Every dependency is on its newest release. That includes discord.js
      14.27.0, the Anthropic SDK 0.131.0, the MCP SDK 1.32.0, dotenv 18.0.5, pg
      8.23.1, and every dev tool. Nothing the bot uses changed in dotenv 18,
      which removed .env.vault support and -r dotenv/config preloading.
      Two packages stay behind, and both are held there because something else
      requires it. TypeScript stays on 6.0 because typescript-eslint and ts-jest
      don't support 7 yet. @types/node stays on 22 to match the Node 22
      runtime.
    • Two dependency overrides are gone. The undici override is redundant
      now that discord.js asks for ^6.27.0 itself. brace-expansion resolves
      its newest release without help. Those that remain only ever force a
      newer version than a package asks for, and their floors are raised to
      the newest releases.
    Downloads
  • v2.4.2 f6b74a23f7

    v2.4.2
    All checks were successful
    CI / build-and-test (push) Successful in 2m19s
    CI / docker-build (push) Successful in 33s
    Stable

    joeyr released this | 39 commits to main since this release

    Changed

    • The DClone status message is the grid alone. The lines under it are
      gone: no "at 5/6 since…" for games close to spawning, and no "spawned N
      minutes ago". A game that just spawned still reads 6/6 in the grid for
      half an hour, since the tracker drops it straight back to 1/6.
    Downloads