DecksMD 1.13.0
Released 28 May 2026
Changes
TRAINED profile replaces INTENSIVE
The INTENSIVE profile has been removed. In its place is TRAINED — a profile that uses the weights your own review history produced when you run the optimizer. If you haven't trained yet, TRAINED falls back to the official FSRS-6 defaults (same as STANDARD), so switching to it costs nothing until you have data worth learning from.
To use it: run Algorithm tuning → Optimize (requires at least 100 reviews), then switch any deck's profile to TRAINED in its config. Decks on INTENSIVE are automatically migrated to STANDARD on upgrade.
Trained weights live in the database, not settings
Previously, optimized weights were stored in data.json alongside your other plugin settings. They now live in the database itself, in a new fsrs_weight_sets table.
This means trained weights sync across devices the same way your review history and card states do — via the merge-before-save mechanism. If you optimize on your laptop and then open Obsidian on your iPad, the trained weights are already there. No manual export or settings copy needed.
Existing weights in data.json are migrated into the database automatically on the first launch after upgrading. Nothing is lost.
Bugfix — Interval labels on rating buttons now match actual scheduling
The "Again / Hard / Good / Easy" buttons show a preview of when each rating would bring the card back. These labels were computed with Math.round, while the scheduler uses Math.ceil to align due dates to study-day boundaries. For a calculated interval of 1.29 days, the button said 1d but the card actually came back in 2 days.
Both now use Math.ceil, so what the label says matches when the card actually appears.
Also on GitHub.