Skip to content

Releases: echecsjs/uci

v4.1.0

26 Apr 08:51
ae55bfe

Choose a tag to compare

Changed

  • Upgraded emittery from 1.1.0 to 2.0.0 — adapted internally with no breaking
    changes to the public API
  • Minimum Node.js version raised from 20 to 22 (required by emittery v2)

v4.0.2

16 Apr 21:05
791bd3a

Choose a tag to compare

Fixed

  • Exported RegisterOptions type — consumers can now reference it when wrapping
    register()

v4.0.0

19 Mar 13:58
ffa9985

Choose a tag to compare

Changed

  • position is now an async method instead of a setter. Use
    await engine.position('startpos') instead of engine.position = 'startpos'.

Fixed

  • Process stderr now emits proper Error objects instead of raw Buffer.
  • ready() no longer permanently caches errors — subsequent calls retry the
    isready handshake, allowing recovery from transient failures.

Added

  • Process class unit tests (stdout buffering, stderr, write errors, lifecycle).
  • go() option combination tests (depth, nodes, mate, searchmoves, movestogo).
  • Edge case tests for parser and ingest (empty input, unknown commands, string
    info).

v3.0.2

15 Mar 13:04
219b754

Choose a tag to compare

Added

  • Events and GoOptions are now re-exported from the package root — consumers
    can import them directly: import UCI, { type GoOptions } from '@echecs/uci'

Fixed

  • start() no longer re-sends setoption commands on every call — engine
    config is now applied exactly once after the UCI handshake

v3.0.1

15 Mar 11:47
666bd9d

Choose a tag to compare

Fixed

  • README updated to reflect v3.0.0 API (constructor config option,
    GoOptions, pondering, corrected stop()/reset() descriptions, sbhits in
    InfoCommand)
  • CHANGELOG: moved reset() and stop() entries from Added to Changed

v1.0.0

14 Mar 18:29
30c2fd7

Choose a tag to compare

Initial public release.

Added

  • UCI class — wraps a UCI chess engine process with a typed event-emitter API
  • Full UCI handshake (uci, isready, uciok, readyok)
  • start(options?) — applies setoption overrides and sends go
  • move(move) — sends a move in long algebraic notation and restarts search
  • stop() — sends quit and terminates the engine process
  • reset() — resets position to startpos
  • execute(command) — sends an arbitrary UCI command string
  • depth and lines properties for controlling search parameters
  • position setter for FEN or startpos
  • Typed info events: depth, selective depth, score (cp/mate with
    lowerbound/upperbound), PV moves, nodes, NPS, time, hashfull, CPU load
  • Typed bestmove, id, option, copyprotection, registration, error,
    output, readyok, uciok events
  • Engine option validation via Zod schemas