@@ -4,6 +4,68 @@ All notable changes to study-dashboard will be documented here.
44Format loosely follows [ Keep a Changelog] ( https://keepachangelog.com/en/1.1.0/ ) ,
55versions follow [ SemVer] ( https://semver.org/spec/v2.0.0.html ) .
66
7+ ## [ v0.2.0] — 2026-04-20
8+
9+ Rename pass: the project is now English-canonical from the database up through
10+ the MCP tool names. Migrations moved to ` supabase/migrations/ ` so the Supabase
11+ CLI tracks them properly. If you're upgrading an existing deploy, see the
12+ upgrade notes below — pushing ` main ` won't fix your schema on its own.
13+
14+ ### Breaking
15+ - ** MCP tools renamed.** ` list_klausuren ` → ` list_exams ` , ` update_klausur ` →
16+ ` update_exam ` . ` upsert_schedule_slot ` → ` create_schedule_slot ` (signature
17+ is a pure create now; use ` update_schedule_slot ` to patch). ` now_berlin `
18+ removed — use ` now_here ` . Any cached tool lists in Claude.ai / Claude Code
19+ will need to re-fetch after the push.
20+ - ** DB schema.** Table ` klausuren ` renamed to ` exams ` . Columns
21+ ` courses.klausur_weight ` / ` klausur_retries ` renamed to ` exam_weight ` /
22+ ` exam_retries ` .
23+ - ** Enum values.** Slot / lecture kinds moved from
24+ ` Vorlesung|Übung|Tutorium|Praktikum ` to ` lecture|exercise|tutorial|lab ` .
25+ Study-topic kinds from ` vorlesung|uebung|reading ` to
26+ ` lecture|exercise|reading ` . Deliverable kinds from
27+ ` abgabe|project|praktikum|block ` to ` submission|project|lab|block ` . Legacy
28+ German values are still accepted at the API boundary via a Pydantic
29+ ` BeforeValidator ` and normalised on the way in — existing MCP integrations
30+ keep working.
31+ - ** Migration location.** ` db/migrations/ ` → ` supabase/migrations/ ` with
32+ timestamp-based filenames.
33+
34+ ### Added
35+ - Single-file README with a same-page ` <details name="lang"> ` language
36+ toggle — click 🇬🇧 English or 🇩🇪 Deutsch, the other collapses.
37+ - New migration ` 20260420000001_english_canonical_kinds.sql ` that normalises
38+ existing German values + renames the table/columns on upgrade.
39+ - FastMCP server-level ` instructions ` — mental model of the domain, enum
40+ conventions, and orient-before-you-act guidance injected on every
41+ ` initialize ` .
42+
43+ ### Changed
44+ - Every MCP tool description rewritten with "when to use / when NOT to use"
45+ disambiguation plus sibling pointers. Goal: Claude picks the right tool
46+ first try instead of listing + retrying. Tool count down from 46 → 44.
47+ - UI: hardcoded German strings replaced with English (slot-kind selects,
48+ deliverable-kind selects, sidebar ` Klausuren ` → ` Exams ` , /klausuren →
49+ /exams, etc.). Displayed kind strings pick up a ` capitalize ` class for
50+ polish.
51+ - ` INSTALL.md ` §4 rewritten around ` supabase db push ` with an upgrade flow
52+ for existing DBs (` supabase migration repair --status applied … ` ) and a
53+ dashboard-SQL-editor fallback.
54+
55+ ### Upgrade from v0.1.0
56+
57+ ``` bash
58+ git pull origin main
59+ npx supabase link --project-ref YOUR-PROJECT-REF
60+ # If you applied 0001–0004 via the SQL editor, mark them applied first:
61+ npx supabase migration repair --status applied 20260101000001 20260115000001 20260201000001 20260301000001
62+ npx supabase db push # applies the English-canonical migration
63+ ```
64+
65+ Then rebuild the frontend (` cd web && pnpm install && pnpm build ` ) and redeploy.
66+
67+ [ v0.2.0 ] : https://github.com/AmmarSaleh50/study-dashboard/releases/tag/v0.2.0
68+
769## [ v0.1.0] — 2026-04-20
870
971First public release. A self-hostable personal study dashboard with an MCP
0 commit comments