Skip to content

Mephisto 3.1.208 — separate puzzle databases

Choose a tag to compare

@IchNukeDichWeg IchNukeDichWeg released this 05 Aug 22:30

The two puzzle databases are kept apart. Plus everything from 3.1.207, since that release's notes are folded in below.

Which download?

Archive Size Use it when
mephisto-3.1.208.zip 585 MB First install — everything, engines included
mephisto-3.1.208-update.zip 5.9 MB You already have Mephisto — extract over your existing folder

⚠️ Extract the update over your existing install, never into an empty folder — without the engines it cannot run. Extract in place: Chrome derives an unpacked extension's id from its folder path, so a new folder means a new id and re-running the native-host installer.

Separate databases

Lichess and Chess.com puzzles shared one store, so a Chess.com position was being read against Lichess records and the other way round — every one of those a guaranteed miss, and on a 6.6-million-record store that is disk work per position, per move. Each publisher now has its own store and a lookup only ever reads the one for the site you are on.

The schema change is additive: the Lichess store keeps its original name, so an existing import stays exactly where it is and does not need the half hour again.

Remove can now drop one database without taking the other, and the settings page counts them separately — "6,623,778 positions" was true and told you nothing about whether any of them were Chess.com's.

Chess.com puzzle import (from 3.1.207)

Settings → Load Puzzle Database takes either file. The format is detected from the header, so there is nothing extra to pick.

The two files cannot share a parser. Lichess rows are split on newlines, which is right for six million rows with nothing quoted in the columns that matter. Chess.com's pgn column holds a full PGN with literal newlines inside its quotes, so those rows go through a real streaming CSV reader; Lichess keeps its fast path.

Moves arrive as Chess.com TCN — two characters per move, promotions encoded past the 64th square. The decoder is verified by replaying published rows through chess.js: all 12 moves of a 3554-rated tactic and all 4 of a 590 are legal from the position each row states, promotion included.

Daily archive rows are the exception twice over: they carry SAN rather than TCN, and they have no setup move, so the side to move is the solver. SAN needs a rules engine, which puzzle-db.js deliberately does not carry (it also runs in the service worker) — the settings page injects one.

Building your own CSV? The exact format the importer accepts — column table, the TCN alphabet, promotion encoding, and the three rules a generator must respect — is documented under Puzzles in the README.

Known issue

Help Mode still draws no arrow on a four-player board. Everything upstream of the renderer checks out by reading, so this build logs what actually reaches it rather than shipping a fourth guess. If you hit it, the 4PC hint line in the service-worker console is what identifies it.

Coming

The 620,000+ Chess.com puzzle database will be published once the upstream pull request is merged.