Skip to content

Releases: rutvij26/chess-context

v0.7.0 — Opening & Training Tools

Choose a tag to compare

@rutvij26 rutvij26 released this 05 Apr 18:38

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 deviations
  • generate_puzzles — extract tactical puzzles from your own games, filtered by difficulty and type

Bug fixes

  • JSONB double-encoding: insertAnalysis used JSON.stringify() which postgres.js re-serialized as a JSONB string instead of an array — move_records and critical_moments were silently returning [] for every game. Fixed with db.json().
  • NUMERIC coercion: postgres.js returns NUMERIC(5,2) as strings ("0.00"), breaking white_accuracy === 0 comparisons. Fixed at the store layer.
  • Identical style fingerprints: all users got the same scores because the above two bugs left critical_moments and move_records empty for every analysis.
  • Tactical sharpness formula: looked for eval_drop_cp < 30 but the pipeline only stores drops ≥ 50 — found was 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 Fighter and Cautious Strategist — previously everyone with low aggression fell through to "Solid Positional Player".
  • Result format mismatch: scoreEndgameSkill and detectEndgameTechniqueIssue compared against "1-0"/"0-1" but the DB stores "win"/"loss"/"draw".
  • Auto re-queue: refresh_games now 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

Choose a tag to compare

@github-actions github-actions released this 02 Apr 16:33

What's Changed

  • feat: v0.6 — PostgreSQL game store, 5 new tools, and production bug fixes by @rutvij26 in #73

Full Changelog: v0.5.0...v0.6.0

v0.5.0 — Hardening

Choose a tag to compare

@rutvij26 rutvij26 released this 02 Apr 14:35

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_game streams 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

Full Changelog: https://github.com/rutvij26/chess-context/commits/v0.5.0