Smart review: name the source deck on every card, break the counts down

"It contains mistakes I either did more than once or from decks that I've
removed - there's no way there's 34 to repeat with 2 decks." The counts were
honest (dueItems/mistakeItems only resolve live deck+activity pairs; a seeded
repro with 37 SRS rows and 30 live shows "30 due"), but nothing in the UI said
where an item came from: a deck created twice from the same notes shows every
question twice, and a deck that survived a delete or a sync looks like a ghost.
Both read as a broken list.

- SessionFeed gains showDeck (review + mistakes): a deck chip above every
  card, so two identical questions are visibly two decks.
- The Smart review card breaks its numbers down under the buttons:
  "Due by deck: Sky deck - 17 - Sky deck (2) - 17", capped at three decks
  plus "+n more" (groupByDeck in lib/learning).
- New i18n keys (en + cs, plural forms for "+n more").

review-test pins it: a twin-deck seed renders the breakdown and both deck
chips in the feed. Version 0.6.8, SW v90.
This commit is contained in:
Martin Dvořák 2026-10-15 19:27:04 +00:00
commit 1e8606a95b
9 changed files with 129 additions and 8 deletions

View file

@ -1492,6 +1492,19 @@ Things I chose while building, with the reasoning:
into view as you type. No strings, so no i18n; the additive change sits on top of the merged
scene-heat rework unchanged.
99. **The smart review names its decks.** "It contains mistakes I either did more than once or
from decks that I've removed — there's no way there's 34 to repeat with 2 decks." The count
itself was honest: `dueItems`/`mistakeItems` only resolve live (deck, activity) pairs, so a
removed deck can never contribute — verified with a seeded repro (37 SRS rows, 30 live → "30
due"). What was missing was *where* each item comes from: a deck created twice from the same
notes shows every question twice, and a deck that survived a delete (or a sync) looks like a
ghost — with no deck name anywhere in the session, both read as a broken list. Now the session
carries a deck chip above every card (review and mistakes; per-deck mistakes sessions keep
their titled header instead), and the Smart review card breaks the counts down under the
buttons — "Due by deck: Sky deck · 17 · Sky deck (2) · 17", capped at three decks plus
"+n more" — so 34 over two visible decks is self-explanatory at a glance. The review suite
pins both: a twin-deck seed renders the breakdown and both deck chips in the feed.
97. **Nested tiles inside the real-blur chrome drop the baked backdrop.** "Frutiger aero theme —
the attachment button looks completely different to the other ones." The composer band, the
chat header and the study pager keep a real `backdrop-filter` (they float over scrolling