2.0.0 (2026-07-01)
⚠ BREAKING CHANGES
-
average: The Grade Average CSV export is removed.
-
needed: The Required Grade tool no longer supports naming future exams
or giving them individual weights; it now takes a single count of remaining
exams, each weighted as one normal grade. Saved state and old share links are
migrated, but any per-exam weights they carried are dropped. -
ui: The default number of blank grade rows changes from 10 to 5,
and on small screens the subject-name field and drag handle are hidden. -
qv: The rebuilt QV drops the completion progress bar, the visual
preset-picker modal (now a plain select), the sticky desktop column header,
and the per-variant mode descriptions from the previous UI. -
needed: The Required Grade tool's saved state (swiss-grades-needed)
adopts a new shape; state written by the previous version is not read back and
falls back to defaults. -
average: The rebuilt Average drops the per-row delta chips (each
grade's difference from the running average) and the grade-input border
colour coding that the previous UI provided. -
chrome: The previous mobile off-canvas navigation drawer, the
keyboard-navigable language dropdown, and the page fade-in / transition
animations are removed in favour of a simpler top bar and a native language
select. (The mobile drawer is reinstated in a later commit.)
Features
- average: commit grade/weight edits on blur, not per keystroke (837705c)
- average: rebuild weighted average with subgrades, reorder, CSV (d1807af)
- average: remove CSV export, drop dead code (5ee67d0)
- calculator: rebuild points-to-grade tool (3143188)
- chrome: minimal top bar, theme toggle, locale select, footer (99eea85)
- design: Catppuccin token layer and global base (90d4263)
- grades: format grades to 2 decimals, fix deep-nest propagation (9f06302)
- needed: rebuild required-grade tool (4aa6df7)
- qv: rebuild final apprenticeship-grade tool (b36a5b4)
- ui: add calm design-system baseline and shared components (34c7673)
- ui: centered layout, consistent buttons, proper footer (f587e1c)
- ui: fit weights in every language, better placeholders, mobile rows (9b95739)
- ui: mobile drawer, no locale flash, weight 1-100, Mac shortcuts (9714e73)
- ui: native share sheet, QV descriptions + normalized weights (572f493)
- ui: pair Inter UI font with JetBrains Mono for numbers (8a73398)
- ui: rework navigation into a calm icon top bar (1b25760)
- ui: shared primitives for the tool screens (3494c84)
Bug Fixes
- average: keep weight aligned at max sub-grade depth (b4b80f0)
- harden share round-trips, restore QV preset text, dedupe grade tone (9e7894b)
- qv: scale result, fix fallnote badge overflow, reflow grid on tablet (38eb009)
- qv: show the preset logo on the apprenticeship selector button (a14dfe6)
- qv: stop the fallnote fail badge from overflowing (3278da2)
- ui: make clear/reset buttons theme-aware (965dd0d)
- ui: make result displays and page headings responsive (4ba82fe)
- ui: theme toggle icon no longer flashes on refresh (f754d8d)
Reverts
- ui: restore JetBrains Mono as the app font (3d70a8e)
Code Refactoring
- needed: simplify to target + remaining-exams count (b695ee9)