- "Report an error", from a card's menu while studying or in the list:
a category (typo, grammar, content, other) and a note. The card is
marked to be fixed, and still studied; the list shows the category
(the note on hover), and "Resolve report" takes it back. A report is
a revision of the card, so it follows it to every device.
- The list buries a card until tomorrow and brings it back ("Unbury"),
showing "Buried" meanwhile.
- Each of these says so with an Undo.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
A card of any type can carry up to six hints and an explanation, both
rich text. They are written in the composer, added from its menu (or
Ctrl+Alt+H / Ctrl+Alt+E), each removed on its own; blank ones aren't
kept. While studying, "Hints" under the question opens them one at a
time, and "Explanation" comes with the answer.
Card schema 5 holds them (`hints`, `explanation`), and with them what a
card needs next: a report that something on it is wrong (`report`:
category, note, when) and a word's senses with their grammar codes
(`senses`; a word's meanings then come from them, and its first sense
says whether it is usually written in kana). Each merges as a field of
its own.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
"Bury until tomorrow" in a card's menu sets it aside for the rest of the
local day: it leaves the round, and no session or count takes it until
the next day begins; its schedule stays as it was. Undo, offered for a
few seconds, brings it back into the round.
A burial is an entry of its own in the review log (mode "bury"), as a
fresh start is: no synced table changes, older app versions skip it as
a mode they don't know, and it never counts as studying.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
Settings has a Study card: the Pomodoro profiles, and a switch "Show
the Pomodoro timer while studying" (on unless switched off). Like the
appearance, it is the device's own setting.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
- Lock screen (header): a light scrim takes every touch; a tap shows
Unlock for three seconds. Time locked doesn't count to the session's,
and a running Pomodoro timer pauses, going on once unlocked (also
when the session is left locked).
- Undo last rating (header): takes back one rating at a time within the
round, its review deleted from the log, the round as it was; the card
shows again from its question. Starting a round anew, or deleting a
card, clears what can be undone.
- The review log deletes entries of any kind made at a moment (resets
and ratings alike).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
- Studying a studyset that has sub-studysets and cards of its own
first asks: everything (suggested) or this studyset only. Without
either, it starts straight away. Alone, the back-first setting
applies as usual and a turn of it is kept (a study button's focus
may now leave the side to the settings).
- A session that can't be read says so, with Retry; a rating that
can't be kept says so below the card, which stays to be rated
again.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
- Above every studied card (but a matching one): the PDF it came from,
its tags on one line ("+2 tags" for the rest) or "Add tags", and a
menu to tag, edit or delete it; the session follows (an edited card
shows as saved, a deleted one leaves the round).
- On phones, a front/back or vocabulary card swiped right is rated
Good, left Bad; it tilts over the colour it heads for, and springs
back when let go early.
- The session's settings: "Settings", a 48 dp Save that warns mid-round
("Heads up!"), steppers in an outlined box ("20 / day", "5 / 50"),
the order in an outlined dropdown, the chosen tags with the rest
behind "Filter by tags" / "+3 more".
- A studyset's study options: Save above Reset to defaults, the
description small, reviews a day in steps of 25.
- One stepper look everywhere (study, Pomodoro profiles), its buttons
"Decrease" and "Increase".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
The study session, reworked:
- Ratings are coloured tiles with a face each (frown, meh, smile,
laugh), when the card comes back below them with a clock ("in 1
min", "in 3 days"), always shown, so a card can be rated without
revealing it; at most 540 dp wide, centred.
- Cards are centred in a section card: the question large, then a line
with 24 dp on either side and the answer a size smaller, or "Show
answer" 40 dp below; a tap anywhere on the card shows or hides the
answer. Read-only rich text takes a text style and an alignment.
- Words show their reading small above the expression once answered,
and several meanings numbered.
- Choice, matching and map cards: Check below the card, the ratings in
its place once checked; options marked before their text; matching
lists the categories first, then what is left to place; the map
fills the card with one caption below it.
- Header and progress on a band of their own; title start-aligned,
the Pomodoro timer only to watch, the back-first toggle in every
state; leaving a round under way asks first.
- Cramming goes round the round; back is there with two cards or more,
skipping always.
- The end of a round: the cards done of those due, accuracy (OK counts
half) and time, over the whole session.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
A source is now shared by learning paths and studysets (core/citation/):
authors as full names, year, title, what it is a part of, publisher,
ISBN, link, and a citation kept as a file brought it. formatCitation
cites it in APA 7, MLA 9 or Chicago 18: it inverts and abbreviates
names itself (particles, suffixes, names written as already cited stay),
sets a work of its own in italics and a part of something apart from
the whole, and writes a missing year as "n.d." in APA and Chicago.
- Settings: a Citations card per device, with a preview and a link to
the style's own guide.
- Studysets: a Bibliography button opens the works cited, to read and,
behind its pencil, to change (studyset schema 4).
- Steps: sources edited through the same sheet, opened from an
"N sources" button in the runner (step schema 2; schema 1 reads on).
- Path import: steps' sources, text kept as written, the old format's
"citation" read as what a source is part of.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
Decided 2026-10-07: where GNOME's top bar shows no icons (the
AppIndicator extension missing or off), the timer shows in the app
alone, and no notification stands in for it. The Pomodoro card says
that the timer can count down in the top bar, with a button that asks
GNOME Shell to switch the extension on where it is installed or to
install it (GNOME's own dialog), or opens its page on
extensions.gnome.org where Shell can't be asked; until the person says
not to suggest it again. An app can't install or switch on a Shell
extension by itself. The alert at a phase's end stays.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
A review of the timer found:
- Stop in the notification with the app swiped away took the timer
away there, but the app showed it again at its next start. The
service now leaves a mark the app takes when it starts, and the timer
it kept is forgotten.
- Pause, Resume and Skip did nothing with the app gone: since Android
12 a service may not start an activity from a notification's button.
The notification is posted again with buttons that open the app.
- A timer kept while the app was closed was shown as it was before it
caught up, so its ended phase alerted a second time. It is now caught
up before it first shows.
- Dart's timers sleep with the device, so a phase that ended while the
phone or laptop slept went unnoticed until the app came back. While a
phase runs the timer looks every 15 seconds, and on Android the
alarm's receiver wakes it too.
- On Linux, changes that came at once overlapped on the bus (an
indicator registered twice, notifications left over, a ticking label
never stopped); they now go one at a time. The indicator registers
again when GNOME's watcher restarts, and with a watcher that only
turns up later.
- Changing the running profile could put the timer outside its cycle
("Focus 6 of 4", the Live Update's bar past its end); where it is
stays within the new cycle, and a phase waiting at its full length
takes the new length. A countdown past its end shows 00:00.
- Writes of the kept timer go one at a time, and a closed timer arms no
more timers.
- The alert no longer renames the timer's notification channel, and a
German hint said the alert came at the device's end.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
The importer said what was wrong with a file in English sentences built
in the data layer, the last English left in a German app. It now names
the problem, the step it is in and what the problem names (a field, a
type, a number), and the studyset screen puts it into words: "Step 2:
unknown "type": quiz." or "Schritt 2: unbekannter „type“: quiz.". The
format's own field names stay as they are in the file.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
Home has a Pomodoro timer (decided 2026-10-07, after Goodtime): the
profile it runs, chosen there while no timer is set, the time left of
the phase, and Start, Pause or Resume, Skip and Stop. While studying, a
small countdown sits in the study screen's header, and a tap pauses it
or goes on. A phase that ends leads to the next, which starts by itself
where the profile says so and otherwise waits, paused at its full
length.
Profiles follow the person to every device, in their settings (schema
4, still written as schema 3 while the profiles are as they come, so
older apps go on reading the settings): Classic, 25 minutes of focus,
5 of break and 15 after four, and 52/17 without long breaks, built in;
both can be changed, more added and deleted, from Home's card or from
Settings. A profile can start breaks and focus by themselves, and keep
the device quiet while focusing. The running timer is the device's own,
kept in the person's folder: closed and opened again, the app catches
up with the phases that ran out meanwhile.
Android: the app's own foreground service (Kotlin, specialUse, as
Goodtime does) shows an ongoing notification counting the phase down,
with Pause or Resume, Skip and Stop; on Android 16 it is a Live Update,
its progress bar the profile's cycle, each phase a segment, focus in
cobalt and breaks in copper. An exact alarm (USE_EXACT_ALARM) alerts
with sound and vibration when the phase ends, also with the app
closed, and Do Not Disturb goes on while focusing once the person
allowed it, the filter before given back afterwards. No notification
plugin: flutter_local_notifications has Live Updates only in a
prerelease that needs compileSdk 37; androidx.core 1.18, which the
build resolved already, has every API needed.
Linux, over the session bus (package:dbus, already in the build): where
the desktop shows icons in its top bar (GNOME with the AppIndicator
extension, which Ubuntu has built in; KDE) the timer counts down there,
the buttons in the icon's menu, as a StatusNotifierItem written in Dart
on the names and paths the snap's desktop plug allows; elsewhere a
notification with the buttons says until when the phase runs. An alert
with sound ends each phase while the app runs, and GNOME's banners stay
off while focusing, through gsettings. xdg-desktop-portal's Background
status, the planned fallback, serves Flatpaks only.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
A studyset's options in the library now offer, as on its own screen,
Edit, Move to…, Study options, Import from Anki, Archive and Delete.
Moving goes through the same sheet and says where the studyset went;
importing reads an Anki deck into it as Add material does.
Study options say how a studyset is studied, on every device: how many
new cards it starts a day (by default as the person's study settings
say), how many reviews it brings a day (no limit by default; cards in
their learning steps come anyway), and whether reviews or new cards
come first, or the new ones spread evenly among the reviews. They live
in the studyset's payload, schema 3; a studyset without them is still
written in schema 2, so that older apps, which skip a payload in a
newer schema whole, keep seeing every studyset nobody gave options.
Editing a studyset keeps its options, and Reset to defaults takes them
away.
The study queue takes each studyset's limits for its own cards and the
order of the studyset studied; a card's schedule now knows when it was
last reviewed, to count the reviews of the day. Sessions, the round's
end and the library's badges all count the same way, the badges now
with the person's own number of new cards a day too.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
Settings offers English (UK), English (US) and Deutsch after the
device's language, each named in its own language. app_en.arb, the
template, is now British English (colour, centre) and the fallback for
any language the app doesn't speak; app_en_US.arb overrides the five
messages American English spells differently, and app_en_GB.arb is
empty, there so that Material's texts and dates are British too. The
German translation says "du" and keeps one set of terms throughout
(Lernset, Karteikarte, Lernpfad; Anki's own Stapel and Unterstapel in
the Anki import). arb_files_test checks that German has every message
of the template and that every translation keeps its placeholders.
resolveAppLocale picks the first language the device prefers that the
app speaks, in its country's variant where there is one; other English
is British, and a country alone never picks a language (Spanish in the
United States isn't American English), which Flutter's own resolution
would do.
Both MaterialApps take material_ui's GlobalMaterialLocalizations
delegates: gen-l10n's list brings flutter_localizations', which serve
only package:flutter/material.dart, so material_ui's widgets found no
Material texts in German and threw.
The editor's own text blocks show our placeholders while empty (list
item, to-do, quote, heading, and the desktop's / hint): the editor's
own follow a locale of their own, process-wide, in few languages. The
last texts written into widgets (the person's data failing to open,
the cards failing to read, the About dialog) moved into the arb files.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>