Releases: rutvij26/chess-context
Releases · rutvij26/chess-context
Release list
v0.7.0 — Opening & Training Tools
What's new
3 new tools (12 total)
get_opening_theory— fetch key ideas, main continuations, and win stats for any opening by FEN or name (via Lichess Explorer)find_opening_gaps— replay your stored games to find positions where you're repeatedly surprised by opponent deviationsgenerate_puzzles— extract tactical puzzles from your own games, filtered by difficulty and type
Bug fixes
- JSONB double-encoding:
insertAnalysisusedJSON.stringify()which postgres.js re-serialized as a JSONB string instead of an array —move_recordsandcritical_momentswere silently returning[]for every game. Fixed withdb.json(). - NUMERIC coercion: postgres.js returns
NUMERIC(5,2)as strings ("0.00"), breakingwhite_accuracy === 0comparisons. Fixed at the store layer. - Identical style fingerprints: all users got the same scores because the above two bugs left
critical_momentsandmove_recordsempty for every analysis. - Tactical sharpness formula: looked for
eval_drop_cp < 30but the pipeline only stores drops ≥ 50 —foundwas always 0. Threshold changed to< 200(not a blunder = success). - Aggression multiplier: was
× 20, producing scores of 2–10 that never reached the 40/70 label thresholds. Changed to× 200. - Style label routing: added
Tactical FighterandCautious Strategist— previously everyone with low aggression fell through to "Solid Positional Player". - Result format mismatch:
scoreEndgameSkillanddetectEndgameTechniqueIssuecompared against"1-0"/"0-1"but the DB stores"win"/"loss"/"draw". - Auto re-queue:
refresh_gamesnow automatically re-queues analyses that ran before Stockfish was warm (zero accuracy scores).
What's Changed
- Add Contributor Covenant Code of Conduct by @rutvij26 in #74
- feat: add get_opening_theory, find_opening_gaps, generate_puzzles (v0.7.0) by @rutvij26 in #75
- fix: JSONB double-encoding, identical style fingerprints, and broken style scoring by @rutvij26 in #77
Full Changelog: v0.6.0...v0.7.0
v0.6.0
What's Changed
Full Changelog: v0.5.0...v0.6.0
v0.5.0 — Hardening
What's New
Engine reliability hardening — no new tools, but the four existing tools are now significantly more robust.
Engine Reliability
- Readiness gate (#4) — tool calls now block until Stockfish WASM is fully initialized. No more meaningless accuracy scores or zero critical moments on cold start.
- SQLite eval cache (#5) — evaluated positions survive server restarts. Analysis of repeated positions is instant.
- MCP progress notifications (#8) —
analyze_gamestreams live progress ("Evaluating position 34/80…") instead of a silent 30–50s wait.
Performance
- Cloud eval concurrency (#6) — Lichess cloud eval now runs 10 requests in parallel (was 4), with automatic 429 backoff retry.
- Adaptive depth tuning (#7) — quiet positions use depth 10, critical positions use depth 16 (previously 12/18). ~20% faster game analysis with no accuracy loss on critical moments.
Deferred
- Worker Thread spike (#9) — mitigated by improved cloud eval concurrency; deferred.
- Pawn structure / theme expansion (#10, #11) — moved to v0.6.
- Redis cache (#12) — moved to v1.0.
Upgrading
Rebuild the server after pulling:
```bash
cd mcp-server && npm run build
```
What's Changed
- fix: update tests to use axios mocks instead of global.fetch by @rutvij26 in #34
- chore: GitHub repo hygiene — PR template, Dependabot, stale bot, release workflow by @rutvij26 in #32
- chore(deps-dev): bump typescript from 5.9.3 to 6.0.2 in /mcp-server by @dependabot[bot] in #38
- chore(deps): bump zod from 3.25.76 to 4.3.6 in /mcp-server by @dependabot[bot] in #36
- chore(deps-dev): bump @types/node from 22.19.15 to 25.5.0 in /mcp-server by @dependabot[bot] in #37
- chore(deps): bump stockfish from 16.0.0 to 18.0.5 in /mcp-server by @dependabot[bot] in #35
- feat: engine readiness gate for analyze_game by @rutvij26 in #39
- feat: Stockfish Worker Thread pool — parallel position analysis by @rutvij26 in #40
- feat: analyze_game — chess.com URL support, username last-game fallback, integration tests by @rutvij26 in #43
- fix: analyze_game — chess.com URLs, last-game fallback, Stockfish 18, integration tests by @rutvij26 in #44
- ci: integrate Codecov for test coverage reporting by @rutvij26 in #54
- feat: Docker-native Stockfish engine with HTTP router by @rutvij26 in #56
- feat: MCP progress notifications for analyze_game by @rutvij26 in #57
- feat: SQLite-backed eval cache (closes #5) by @rutvij26 in #58
- feat: engine readiness gate for analyze_position (closes #4) by @rutvij26 in #59
- feat: tune adaptive depth — quiet=10, critical=16 by @rutvij26 in #61
- feat: Lichess cloud eval concurrency=10 + 429 backoff retry by @rutvij26 in #62
- docs: set up GitHub Pages with Docsify and CI deploy pipeline by @rutvij26 in #63
- docs: document internal logic of the intelligence layer by @rutvij26 in #64
- docs: add real output examples and complete type schema by @rutvij26 in #68
- docs: clarify what the system does vs what Claude does by @rutvij26 in #66
- docs: document layer boundaries and extensibility guide by @rutvij26 in #65
- docs: document design decisions, observability, and validation by @rutvij26 in #69
New Contributors
- @dependabot[bot] made their first contribution in #38
Full Changelog: https://github.com/rutvij26/chess-context/commits/v0.5.0