Releases: specure/lpdo
Release list
LPDO v0.4.0
Player merge in the app, a reorganised Maintenance screen, and a smarter
server-owned auto-updater.
Added
- Merge duplicate players in the app — combine a full-name record and a
surname-only one (or any two duplicates of the same person) into a single
player. Start it from a player's profile (Merge…), by Ctrl/Cmd-clicking
two players in the list, or from Maintenance → Merge players; all games
move to the player you keep.
Changed
- Home screen shows the latest TWIC issue instead of a count — the Database
panel's TWIC tile now displays the most recently imported TWIC issue and its
publication date (e.g.#1649 (2026-06-15)) rather than a tally of imported
issues. The old count also included local PGN imports; the new figure is the
latest real TWIC issue. Publication dates are read from the TWIC index and
backfilled on download. - Maintenance "Additional databases" import matches the setup wizard — the
bare path text field is replaced by the wizard's import UI: a file/folder
picker and a collection chooser. Both entry points now look and work the same. - Maintenance screen grouped into tabs — the tools are split across
Databases, Players and Others tabs (with the database overview
pinned above) so the screen is no longer one long crowded grid. - Player reference file: export + a file picker for import — the Player
reference file card can now export your normalised players to a
date-stamped CSV (e.g.20260621-players.csv) in a chosen folder, with a
Reveal in file manager shortcut. The import path now has a File… picker
instead of only a plain text field. - TWIC "Download from issue" is consistent across the wizard and Maintenance —
the Maintenance TWIC card now has the same starting-issue field as the setup
wizard, and the value is shared between the two places (set it in one, it
carries over to the other). - Automatic updates run at a time you choose, plus "Run update now" — instead
of firing at whatever time the last run happened to land, the daily update now
runs at a clock time you set (e.g. 02:00) via a time picker in Maintenance →
Automatic updates, and a Run update now button triggers it on demand with
live progress. Catch-up after downtime still applies: a missed run fires when
the server next starts.
Fixed
- TWIC download no longer re-fetches already-imported issues — the download
step only checked whether the local zip file was present, so a pruned zip cache
made it re-download every past issue (hundreds of MB) even though they were
already imported. It now skips any issue already imported in the database. - A foreign key that a from-scratch position-index rebuild added to the index
could make player merge (and game edits / soft-delete) fail on large databases
with a "game_id … still referenced" error — DuckDB performs updates as
delete+insert. The constraint is now removed automatically on startup (a
one-time migration), and rebuilds no longer add it. - Automatic-updates status no longer sticks at "(running…)" after a restart —
if the server is restarted mid-update, the scheduler now reconciles the
orphanedrunningstate on startup (marking itinterrupted) instead of
leaving it stuck until the next due run. - Maintenance database tile no longer conflates local imports with TWIC —
the TWIC issues figure now counts only real, imported TWIC issues; local PGN
imports (Megabase, Bundesliga, …) are shown as a separate Local imports
stat, and Latest TWIC replaces the old Downloaded/Imported pair. The
old counts mixed in local imports and TWIC ids that were registered but never
downloadable, making the tile look inconsistent (e.g. 904 vs 853).
Full Changelog: v0.3.0...v0.4.0
LPDO v0.3.0
Annotated PGN import.
Added
- Import keeps annotations — PGN import now preserves comments, NAGs and
variations (and ChessBase[%cal]/[%csl]/[%eval]/… directives) instead of
flattening games to their main line, so your own annotated games keep their
analysis. ChessBase's bulky whole-game[%evp]eval profile is dropped.
Applies to newly imported games — games already in your database are left as
they are, and re-importing under the default duplicate policy skips them, so
it won't refresh them with annotations.
Changed
- Updated to Tauri 2.11 and applied dependency security updates
(rustls-webpki, tar, and related crates).
Full Changelog: v0.2.0...v0.3.0
LPDO v0.2.0
What's new in LPDO 0.2.0
This release is a major upgrade to the move editor.
Variations, comments & annotations
- Lossless editing with variations — play an alternative move mid-game and choose New variation, New main line, or Overwrite (ChessBase/Lichess-style). The full move tree is preserved when you save.
- Promote / demote variations and delete-from-here.
- Comments on moves and positions.
- NAGs — annotate moves (
!,?,!!,?!, …) and positions (±,=,∞, …); they show in the move list and round-trip through PGN. - On-board NAG badge — the move's glyph is shown directly on the destination square, chess.com-style.
- Graphical annotations — draw on the board: Ctrl+click for a circle, Ctrl+drag for an arrow. Colours: Green, Red, Yellow, Blue, plus Magenta, Cyan and Orange. Stored as standard PGN
[%cal]/[%csl]tags, so they survive export. - Game-end / final-position analysis and an aligned view/edit move readout with last-move highlight.
Updates
- In-app update notifier — LPDO now checks GitHub on launch and shows a dismissible banner when a newer version is published, with What's new and Download links. (Updating stays a manual reinstall — see below.)
Downloads
- Linux —
.deb(Debian/Ubuntu) or.AppImage - Windows —
.exeinstaller
Updating on Linux
Install the new package over the old one — it replaces the previous version in place, and your database is preserved:
sudo apt install ./lpdo_0.2.0_amd64.debLPDO v0.1.1
Windows: suppress spawned-subprocess console windows; detect physical RAM for DuckDB memory_limit; NSIS .exe-only installer (dropped .msi). Wizard: --fast (appender) position indexing; TWIC Import button gated on download completion.
LPDO v0.1.0
LPDO — Loose Pieces Drop Off — first release.
A free, open-source desktop chess database for managing your own games and preparing for tournaments. Built with Tauri (React + Rust) over an embedded DuckDB database.
Highlights
- Import your PGNs and large databases (Megabase, Bundesliga, TWIC)
- De-duplication, FIDE name normalisation (with a shared cache), and a position index / move explorer
- Player profiles & statistics; tournament prep against an upcoming opponent
- Back up your private games to PGN
Downloads (Linux)
.deb— Debian/Ubuntu (sudo apt install ./LPDO_0.1.0_amd64.deb).AppImage— portable, no install (chmod +xand run)
Windows installers are coming in a follow-up release once verified.
Data from The Week in Chess (TWIC) is published by Mark Crowther — https://theweekinchess.com/
Licensed under Apache-2.0.