AI disclaimer: also on the cards and the results

The note now rides along with the content itself, not only with the
generation screens and the chat composer:

- Under every card in the study feed and in the review, mistakes and exam
  sessions (the activity slide's last element — below the card, and below
  the feedback panel once answered).
- On the results slides: the study results screen and the shared session
  results (review, mistakes, exam).

Navigation surfaces (library, deck lists, chat history, settings) still
carry no note — it belongs to the moment of generation and to the card
being answered, not to browsing (README decision 50 updated).

The phase-2 grading check now scopes its placement (the disclaimer right
under the graded box) since the same text legitimately appears several
times on a session page; three new checks cover the feed, the results
slide and the exam (59 checks). SW -> freezmo-v40.
This commit is contained in:
Martin Dvořák 2026-10-12 10:59:49 +00:00
commit b5269d2844
5 changed files with 44 additions and 9 deletions

View file

@ -1283,11 +1283,13 @@ Things I chose while building, with the reasoning:
50. **One AI disclaimer, only where the model's words are on screen.** A shared `AiDisclaimer`
(copy, style and translations in one place, `common.aiDisclaimer`) sits under the chat composer
— always, since chat is pure model output — next to the generation buttons of the homework and
deck wizards, under their results, and under AI grading feedback. Stored, already-generated
content (the deck page, study cards, explanations) deliberately carries no note: the disclaimer
belongs to the moment of generation, not to browsing, and the empty states stay clean. It is a
plain `--text-subtle` paragraph (documented at 5.6:1 light / 8.6:1 dark), centred, wrapping to
two lines on a 360 px phone — not clickable, not dismissable.
deck wizards, under their results, and under AI grading feedback. It also rides along with the
content itself once it is being consumed: under every card in the study feed and in the review,
mistakes and exam sessions, and on their results slides. Navigation surfaces (the library, deck
lists, chat history, settings) deliberately carry no note: the disclaimer belongs to the moment
of generation and to the card being answered, not to browsing, and the empty states stay clean.
It is a plain `--text-subtle` paragraph (documented at 5.6:1 light / 8.6:1 dark), centred,
wrapping to two lines on a 360 px phone — not clickable, not dismissable.
36. **The mobile declutter pass reshapes, it doesn't fork.** Phones (≤639px) get a 3-step deck
flow and a 2-step homework flow that share the exact state and handlers with the desktop