Skip to content

Releases: imluri/Chessist

v2.0.2

09 Jun 05:36

Choose a tag to compare

Fixed

  • Connection refused (net::ERR_CONNECTION_REFUSED) — the WebSocket server now binds both the
    IPv4 (127.0.0.1) and IPv6 (::1) loopback, so the extension connects regardless of how the OS
    resolves localhost
  • Auto-move freezing after one move — player color is no longer clobbered to null mid-game, so
    auto-move keeps playing each turn
  • Single instance — a second launch focuses the existing window instead of racing for the port

Added

  • Update check shows the installed version, commit hash, and channel (stable/beta)

v2.0.1

09 Jun 02:08

Choose a tag to compare

Added

  • In-app auto-updater — checks GitHub for new versions on launch and from About → Updates; one
    click runs git pull/checkout → reinstall → rebuild → relaunch
  • Beta channel — toggle in About: on = update on every commit to main; off (default) = released
    tags only

Fixed

  • Eval bar no longer flips each move — scores are normalized to White's perspective (Stockfish
    reports relative to the side to move)
  • Crash on engine death — guarded Stockfish stdin writes (no more write EPIPE taking down the
    app) with a bounded auto-restart

v2.0.0 - Desktop update

08 Jun 17:48

Choose a tag to compare

Changed

  • Rebuilt as an Electron desktop app (React + Vite) — owns Stockfish and the WebSocket server
  • Overlay is now a slim C# helper (ChessistOverlay.exe) driven by the desktop app over stdin — same transparent, screen-capture-invisible window
  • No setup.bat, no native messaging — the app downloads Stockfish on first run; the extension is a pure WebSocket client
  • Faster within a game — one persistent Stockfish process with a large hash and multiple threads; the transposition table is reused across moves and reset only on a new game
  • Settings live in the app — a sidebar with Evaluation, Game, Engine, Setup, About; the app is the single settings authority and pushes settings to the extension over WS. The extension popup is now just a connectivity indicator, and its options page is gone
  • Three render modesOverlay (transparent native window), In-page (drawn on the chess site), or App (the desktop window draws its own board + best-move arrows; nothing in the browser)
  • Guided extension install — the installer bundles the extension; the Setup tab reveals the folder and walks through loading it
  • Bundled font + logo — Instrument Sans as the app font; Chessist logo for the window/installer icon, title bar, and About
  • Repo reorganized — Electron app at root, browser extension under extension/, overlay under overlay/
  • Removed the C# engine, native-messaging host, and WASM remnants

v1.3.0 - Chessist Engine

24 May 20:28

Choose a tag to compare

Added

  • Chessist Engine — native C# engine host replaces Python native messaging; run ChessistEngine.exe and Stockfish analysis streams directly to the extension over WebSocket with no Python dependency
  • Always-on WebSocket engine connection — content scripts connect to the engine on page load regardless of overlay mode; no manual engine-source switching required
  • WASM fallback — extension automatically falls back to the built-in WASM Stockfish when ChessistEngine.exe is not running; no configuration needed
  • Bidirectional eval protocol — same WebSocket connection used for overlay display and engine eval requests; engine streams multi-PV results back as JSON eval messages
  • Engine status indicator — popup shows live engine connection state (connected / not running)

Removed

  • Python native messaging host — no longer needed; Python and the websockets pip package are not required
  • Engine source toggle — replaced with automatic detection; extension uses native engine when available, WASM when not
  • setup.bat no longer requires Python, pip, or extension ID for native messaging registration

Changed

  • setup.bat simplified — only checks for Stockfish and optionally adds ChessistEngine.exe to Windows startup

v1.2.2 - Performance update

25 Apr 17:06

Choose a tag to compare

Changed

  • MultiPV 1 by default — Stockfish now searches a single line unless "Show Alternative Arrows" is enabled, cutting analysis time roughly in half for most positions
  • Dynamic MultiPV toggle — enabling/disabling alternative arrows at runtime sends setoption name MultiPV live to the engine without requiring a restart
  • Stealth Mode - enabled by default

Fixed

  • Per-eval storage read removedengineDepth is now cached in memory and updated on change; previously a chrome.storage.sync.get was awaited on every single eval request, adding unnecessary latency
  • Parallel tab broadcastsEVAL_RESULT messages are now sent to all content-script tabs simultaneously (Promise.all) instead of sequentially, reducing broadcast overhead with multiple tabs open
  • Tab ID cache — content-script tab IDs are cached between broadcasts and only re-queried when tabs open, close, or navigate, eliminating repeated chrome.tabs.query calls on every Stockfish depth line

v1.2.1 - Overlay fixes

25 Apr 16:21

Choose a tag to compare

Fixed

  • Overlay not drawing on page load — eval completed before the WebSocket connected so nothing was ever sent; last evaluation is now cached and immediately replayed when the overlay connects
  • Overlay hiding when extension popup openswindow.blur fired whenever the popup opened, sending visible: false; replaced with visibilitychange which only fires on actual tab switches and minimises
  • Overlay hiding on alt-tab — added GetForegroundWindow() check in the C# render loop; overlay blanks only when a non-browser window is foreground
  • Debug mode overlay blankAllocConsole() window (owned by the overlay process) caused IsActualBrowser() to return false; added _selfPid check to whitelist the overlay's own windows
  • "View Logs" opening a hidden log window — replaced the in-process LogWindow form with file-based logging (ChessistOverlay.log) opened in the system default text editor

Added

  • Debug Mode toggle — sub-option under Overlay Mode; restarts the overlay exe with -debug flag, showing a console window for live troubleshooting
  • Always-on file logging — overlay writes a timestamped log to ChessistOverlay.log in all modes (not just debug)

v1.2.0 - Overlay update

25 Apr 02:17

Choose a tag to compare

Added

  • Native overlay window — transparent C# WinForms window drawn over the browser using UpdateLayeredWindow with premultiplied alpha; invisible to screen capture (SetWindowDisplayAffinity)
  • Pixel-accurate positioning — overlay uses EnumChildWindows to find Chrome_RenderWidgetHostHWND and ClientToScreen to get the exact web content origin, bypassing Chrome's unreliable JS screen coordinate APIs
  • Drag tracking — 16ms timer re-polls ClientToScreen so the overlay follows the browser window in real time
  • Maximize syncResizeObserver on the board element fires post-reflow so overlay resizes correctly after maximize/restore
  • Focus sync — overlay hides on window.blur and reappears on window.focus; Electron apps (VS Code, Discord) are excluded via process-name check
  • Settings sync — overlay respects Show Best Move, Show Opponent's Best Move, Show Alternative Arrows, and Target Depth; arrows are only drawn when analysis reaches target depth
  • Show Opponent's Best Move toggle — best-move arrow stays visible during the opponent's turn; appears as a sub-option under Show Best Move
  • Overlay status indicator — live dot in the popup shows whether the overlay is connected or still connecting, polling every second

v1.1.0 - Lichess update

23 Apr 01:31

Choose a tag to compare

Added

  • Lichess support — full eval bar, best-move arrows, move classification icons, auto-move, accuracy tracking, W/L balance, auto-rematch, and all other features now work on lichess.org in addition to Chess.com
  • Lichess auto-move — uses click-to-move directly on Chessground (CSP blocks inline script injection on lichess)
  • Lichess spectator mode — eval bar and best-move arrows calculate for both sides when watching games on the home TV feed or any spectated game
  • Puzzle mode detection — Lichess training/puzzle pages follow the current turn for color detection
  • Instant move disables timing controls — delay min/max inputs and Smart Timing toggle are greyed out and non-interactive when Instant Move is enabled

v1.0.2

03 Apr 11:36

Choose a tag to compare

Added

  • Live accuracy display on the eval bar — shows your running average accuracy as a colored icon + percentage (green/yellow/red based on performance)
  • Accuracy persistence — accuracy is saved to local storage per game ID and restored on page refresh mid-game
  • Move classification icons on the board — best, excellent, good, inaccuracy, mistake, blunder icons drawn at the destination square after each move
  • Show Move Icon toggle in popup settings
  • Auto-move via chrome.scripting.executeScript({ world: 'MAIN' }) — runs in page context with trusted events for reliable move submission
  • Smart timing for auto-move — adjusts delay based on move complexity, eval magnitude, and captures
  • Target Accuracy setting — intentionally play at a lower accuracy percentage
  • W/L Balance — automatically throws a game after winning too many in a row, then wins the next
  • Match Player ELO — Stockfish plays at your detected Chess.com rating; supports manual override
  • Auto Rematch / Auto New Game after game ends
  • Stealth Mode — suppresses all console logs
  • Best move arrow drawn as SVG overlay on the board
  • Native Stockfish engine support via native messaging host (much faster than WASM)
  • PV cache — instant eval response when opponent plays the expected move
  • Position cache — revisited positions return instantly from cache

v1.0.1

01 Apr 02:05

Choose a tag to compare

Added

  • Instant move mode
  • Countdown timer shown on eval bar during delayed auto-move
  • Depth indicator on eval bar
  • Turn indicator (debug)
  • Auto-detection of player color from board SVG rank orientation

Fixed

  • Various eval bar positioning issues on Chess.com layout changes
  • Shadow DOM piece lookup for wc-chess-board