DecksMD 1.12.5
Released 25 May 2026
Changes
Bury, Suspend, and Reset cards
You can now tell a card to step aside without deleting it. Three new per-card actions cover the common Anki-style workflows:
- Bury temporarily hides a card until the next study day (respects your
nextDayStartsAtsetting). Useful when you've just seen a sibling cloze, or when you don't want to keep tripping over the same card in the same session. - Suspend indefinitely freezes a card. Its FSRS state is preserved — when you unsuspend it later, its stability, difficulty, due date, and lapse count come back intact.
- Reset wipes a card's FSRS state back to "new" and deletes its review history. It's destructive (no undo) so it's gated behind a confirmation modal.
In the review modal
- A new ⋯ icon sits in the top-right of every card next to the existing warning / open-source-file icons. Click to open a popup with Bury, Suspend, and Reset.
- Three hotkeys fire on both the front and the back of the card: B to bury, S to suspend, R to reset. Hotkeys obey your
enableKeyboardShortcutssetting and never trigger when modifier keys are held — soCmd+Rstill reloads. - After any action, the modal advances to the next card just like it does after a rating.
In the flashcard manager
- Each row now has both a pencil Edit button and a ⋯ actions button. The ⋯ dropdown contains Suspend/Unsuspend, Bury/Unbury, and Reset — labels adapt to the card's current state.
- The bulk action bar (shown when you select cards) gains three new buttons. The Suspend and Bury buttons flip to "Unsuspend selected" / "Unbury selected" when every selected card is already in that state.
- The state column shows a clear Suspended or Buried badge in place of New/Review when applicable, so the queue status is visible at a glance.
- The edit column is now a solid pinned area with both buttons drop-shadowed; horizontally scrolling content cleanly slides underneath without bleeding through.
Filters
- The Flashcard Manager's filter builder gets two new boolean fields: Is suspended and Is buried. Combine them with deck-tag or state filters to find every card you've suspended this month, or every card currently buried.
- Filter custom decks honor the new fields too, so you can build a "review queue without suspended cards" deck if you've been heavy-handed with suspends.
Multi-device sync
Suspend / unsuspend / bury / unbury / reset all replicate across devices via five new SyncLog ops (card_suspend, card_unsuspend, card_bury, card_unbury, card_reset). Each handler uses an only-if-newer guard so a stale remote op can't clobber a fresher local mutation, and the suspended_at / buried_until columns are excluded from the bulk flashcards merge so a rating on another device can't accidentally unsuspend a card.
Localized
All new strings — labels, badges, confirmation dialogs, filter field names — are translated across the 13 supported languages.
Under the hood
- Schema bumped to v21: adds
suspended_at TEXTandburied_until TEXTcolumns toflashcards, plus indexes on each. The migration is additive — existing data is untouched. - Scheduler queries updated everywhere cards are selected for review or counted in queue stats (15+ query sites): suspended cards never reach the queue; buried cards stay hidden until
buried_until <= now. Counts of total cards still include suspended/buried (matches Anki). Scheduler.getBuryUntilForNextDay()computes the next study-day rollover ISO and is shared between the review modal and the manager so both UIs converge on the same "tomorrow."- Deck-reset interaction:
resetDeckProgressnow clearsburied_until(daily-scoped, no reason to outlive a full progress wipe) but preservessuspended_at(a deliberate user assertion). - Reset semantics: deletes the card's
review_logsso the resync "restore-from-history" path can't undo the reset on next vault sync. - 18 new tests across
Scheduler.test.ts,SyncLog.handlers.test.ts, and a newsuspend-bury-reset.test.tsintegration suite (657 unit + 433 integration total).
Also on GitHub.