Releases: imluri/Chessist
Releases · imluri/Chessist
v2.0.2
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
nullmid-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
Added
- In-app auto-updater — checks GitHub for new versions on launch and from About → Updates; one
click runsgit 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 EPIPEtaking down the
app) with a bounded auto-restart
v2.0.0 - Desktop update
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 modes — Overlay (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 underoverlay/ - Removed the C# engine, native-messaging host, and WASM remnants
v1.3.0 - Chessist Engine
Added
- Chessist Engine — native C# engine host replaces Python native messaging; run
ChessistEngine.exeand 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
evalmessages - Engine status indicator — popup shows live engine connection state (connected / not running)
Removed
- Python native messaging host — no longer needed; Python and the
websocketspip package are not required - Engine source toggle — replaced with automatic detection; extension uses native engine when available, WASM when not
setup.batno longer requires Python, pip, or extension ID for native messaging registration
Changed
setup.batsimplified — only checks for Stockfish and optionally adds ChessistEngine.exe to Windows startup
v1.2.2 - Performance update
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 MultiPVlive to the engine without requiring a restart - Stealth Mode - enabled by default
Fixed
- Per-eval storage read removed —
engineDepthis now cached in memory and updated on change; previously achrome.storage.sync.getwas awaited on every single eval request, adding unnecessary latency - Parallel tab broadcasts —
EVAL_RESULTmessages 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.querycalls on every Stockfish depth line
v1.2.1 - Overlay fixes
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 opens —
window.blurfired whenever the popup opened, sendingvisible: false; replaced withvisibilitychangewhich 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 blank —
AllocConsole()window (owned by the overlay process) causedIsActualBrowser()to return false; added_selfPidcheck to whitelist the overlay's own windows - "View Logs" opening a hidden log window — replaced the in-process
LogWindowform 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
-debugflag, showing a console window for live troubleshooting - Always-on file logging — overlay writes a timestamped log to
ChessistOverlay.login all modes (not just debug)
v1.2.0 - Overlay update
Added
- Native overlay window — transparent C# WinForms window drawn over the browser using
UpdateLayeredWindowwith premultiplied alpha; invisible to screen capture (SetWindowDisplayAffinity) - Pixel-accurate positioning — overlay uses
EnumChildWindowsto findChrome_RenderWidgetHostHWNDandClientToScreento get the exact web content origin, bypassing Chrome's unreliable JS screen coordinate APIs - Drag tracking — 16ms timer re-polls
ClientToScreenso the overlay follows the browser window in real time - Maximize sync —
ResizeObserveron the board element fires post-reflow so overlay resizes correctly after maximize/restore - Focus sync — overlay hides on
window.blurand reappears onwindow.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
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
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
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