Skip to content

LiRu-Bot v0.4.0

Latest

Choose a tag to compare

@clrsrc clrsrc released this 16 Jul 14:36

LiRu-Bot 0.4.0

LiRu-Bot (Lichess Rust Bot) — a bridge between the Lichess Bot API
and chess engines. Coupled with clrsrc v1.3.0: this release pairs the engine's search and
mate/endgame correctness work with a round of robustness and connectivity hardening on the bot
side — all of the bot fixes had already been running on the live bot.

Engine — clrsrc v1.3.0

A pure search/correctness release; the network is unchanged from v0.3.0. Highlights:
singular extensions disabled, reworked mate / tablebase-win score banding (tablebase wins get
their own band; mate N means a genuine mate), mate-before-50-move-rule priority, an NNUE
loader guard (clear error instead of an out-of-bounds panic on a foreign-bucket net),
opening-book hygiene, and a default-on conversion-time floor so clearly won endgames get
converted instead of drifting toward a repetition draw.

Bot — robustness & connectivity hardening

  • Stream-idle watchdog (60 s): a half-open connection resubscribes in seconds instead of
    hanging ~12 min for the OS TCP keep-alive.
  • Stream-open & connect timeouts: a socket that accepts but never responds can't wedge the
    reconnect loop (an established stream's body is not limited).
  • Non-JSON error-body tolerance: a challenge endpoint returning HTML (load balancer on
    5xx/429) no longer aborts the request path.
  • Game-task panic isolation: a panicking game is caught as a normal per-game error instead
    of leaking its concurrency slot and idling the bot.
  • Accept/gameStart race guard: under concurrency: 1, two challenges processed before
    either game starts can't both be accepted.
  • Threefold-repetition counting fix: repetitions are counted per move, not per event.
  • Experience-overlay self-heal: a torn trailing record from an interrupted write is
    truncated to the last aligned boundary before appending.
  • Config hardening: env-only token support and a restart-safe daily game counter.

Downloads (Windows x86-64)

Asset Description License
liru-bot-0.4.0-windows-x86_64.exe Default subprocess build — engine-agnostic, talks UCI to any engine you configure. pure AGPL-3.0
liru-bot-clrsrc-0.4.0-windows-x86_64.exe Embedded build — the clrsrc engine linked in-process for an authoritative wall-clock search deadline. Turnkey clrsrc bot. combined work (see below)

Both are portable builds (no target-cpu=native); they run on any x86-64 CPU.

Running

  1. Copy config.yml.exampleconfig.yml and set your Lichess bot:play token.
  2. liru-bot-0.4.0-windows-x86_64.exe: point engine: at your UCI engine (e.g. the
    self-contained clrsrc 1.3.0 binary).
    liru-bot-clrsrc-0.4.0-windows-x86_64.exe: no external engine needed — supply the NNUE
    network clrsrc_v32_seed_b.nnue (from the
    clrsrc v1.3.0 release) via EvalFile.
  3. liru-bot-0.4.0-windows-x86_64.exe --config config.yml

License / Corresponding Source (AGPL §6 / §13)

LiRu-Bot is AGPL-3.0-or-later, a modified derivative of lichess-bot
(© lichess-bot-devs and contributors). The default subprocess binary is a pure AGPL-3.0
artifact; its Corresponding Source is this repository at tag v0.4.0.

liru-bot-clrsrc-0.4.0-windows-x86_64.exe is a combined work (AGPLv3 §13 / GPLv3 §13):
LiRu-Bot (AGPL-3.0) + clrsrc (GPL-3.0). Each part keeps its own license. Corresponding Source
for this binary is both:

Operating the embedded binary as a network service triggers the AGPL §13 obligation to offer
the Corresponding Source of the whole to its users.

Credits

Derived from lichess-bot by the
lichess-bot-devs and contributors (AGPL-3.0). Embedded engine:
clrsrc (GPL-3.0).