feat(app): tags keep their case; dictionary tags read JLPT-N5, Noun

A tag is still its name, but no longer in lowercase: the name keeps the
case it was written in, and names that differ only in case are one tag
(ADR 0004, rule 2, amended). Two such tags from two devices fold into the
one with the smaller id, its case with it. Tags stored before stay
lowercase until renamed.

Words from the dictionary are tagged JLPT-N5 to JLPT-N1 and with their
word class (Noun, Verb, i-Adjective, na-Adjective, ...). Anki tags and
PDF chapter tags arrive as written.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-09 10:48:06 +02:00
commit c20578e421
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -47,10 +47,13 @@ revision's payload, and the per-side merge of ADR 0003 becomes per field.
assignment, never updated. Removing a tag deletes one row, and adding it on another
device at the same time makes another, so concurrent edits merge without losing
either. A card with the same tag twice counts once. A tag is its name (added
2026-10-01): names are lowercase, and a person has one tag per name. Two devices
creating the same name offline make two rows; the app keeps the one with the
smallest id and moves the other's cards onto it, as with settings (rule 4).
Renaming a tag to another's name merges them the same way. The colour lives in the
2026-10-01): a person has one tag per name, whatever its case, and the name keeps
the case it was written in (amended 2026-10-09: names were lowercase until then,
but tags such as `JLPT-N5` and `Noun` read as they are written; those stored
before stay lowercase until renamed). Two devices creating the same name offline,
in any case, make two rows; the app keeps the one with the smallest id, its case
with it, and moves the other's cards onto it, as with settings (rule 4). Renaming
a tag to another's name merges them the same way. The colour lives in the
payload next to the name.
3. **Reviews say how the card was studied.** `review_log.mode` is `review` (front to
back), `reverse` (back to front, with a schedule of its own, as Anki's reverse cards