• v1.1.0 2e43155865

    v1.1.0 Stable

    joeyr released this 2026-07-08 23:04:02 -05:00 | 108 commits to main since this release

    Toolchain and dependency modernization — every dependency to latest stable, zero deprecation warnings and zero npm audit findings on a fresh install (down from 17 vulnerabilities including 1 critical). No user-facing behavior change, but the supported Node floor moves from 18 to 22.

    Changed

    • ESLint 8 (end-of-life) → 10.6 with typescript-eslint 8.63, migrating .eslintrc.js to flat eslint.config.js. This alone removed the deprecated rimraf@3/glob@7/inflight/@humanwhocodes/* install warnings. Two rules no longer exist upstream: interface-name-prefix (dropped) and no-var-requires (now no-require-imports in the test overrides).
    • Jest 29 → 30 (with @types/jest 30, ts-jest 29.4.11); ts-jest's deprecated transform-level isolatedModules option moved into tsconfig.test.json.
    • fast-check 3 → 4: removed APIs migrated (fc.stringOf(unit, opts)fc.string({ unit, ...opts }), fc.char()-based strings → default fc.string()), and all fc.date() arbitraries now pass noInvalidDate: true since v4 generates Invalid Date by default — Discord/DB timestamps are always valid dates.
    • @anthropic-ai/sdk 0.78 → 0.110 (its improved types made two manual casts in ClaudeClient redundant), dotenv 16 → 17, discord.js 14.26.4, pg 8.22, winston 3.19.
    • TypeScript 5.9 → 6.0.3, deliberately capped ~6.0.x: typescript-eslint's peer range is <6.1.0, so TS 7 has to wait for upstream support. tsconfig moved off the TS7-removed node10 module resolution to module/moduleResolution: nodenext (output is still CommonJS).
    • Node floor 18 → 22 (engines, .nvmrc, Dockerfile node:22-alpine, CI container node:22-bookworm) — Node 20 went end-of-life in April 2026. @types/node tracks the runtime major (^22), not npm's latest.
    • Added a package.json overrides block for upstream pins: undici@^6.27 (discord.js pins a 6.24.1 with several CVEs — this cleared most of the 17 audit findings), and babel-plugin-istanbul@8/test-exclude@8/glob@13 to lift Jest's own deprecated-glob chain.

    Fixed

    • Four re-thrown errors (ToolExecutor fetch timeout/network wrappers, ShutdownHandler cancellation, UserMapper database-sync failure) now attach the original error as cause — previously the root cause was discarded when the wrapper error was thrown (surfaced by ESLint 10's new preserve-caught-error rule).
    Downloads