feat(train): Halkyon Train's shell, Todo's copied and renamed (ADR 0030, D12)

apps/train with halkyon_train_server, _client and _flutter, as Todo's:
halkyon_base configured by trainBase(), its own register alone and a
member of the instance's where the operator names one, the app on
halkyon_app's gates with Train's frame, account sheet and About, texts
in British English and German that speak of workouts, app.halkyon.train
on Android, iOS, Linux, macOS and Windows.

Where it differs from Todo: development ports of its own (8180 to 8190),
so it runs beside Learn's server; one initial migration with the schema
Todo's migrations end at (the same tables, compared line by line), not
Todo's seventeen; and Todo's icon as a placeholder until the icon tool
of ADR 0031 draws Train's bike. The workspace, the licences, the READMEs
and AGENTS.md name it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-28 10:26:49 +01:00
commit 7b5fbee913
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -17,10 +17,13 @@ The repository's packages carry different licences, each package's full text in
| `apps/todo/halkyon_todo_flutter`, Todo's app | GNU Affero General Public License, version 3 or any later version | `AGPL-3.0-or-later` |
| `apps/todo/halkyon_todo_client`, generated from Todo's models | GNU Affero General Public License, version 3 or any later version | `AGPL-3.0-or-later` |
| `apps/todo/halkyon_todo_server` | Server Side Public License, version 1 (decided 2026-10-19, as Learn's) | `SSPL-1.0` |
| `apps/train/halkyon_train_flutter`, Train's app | GNU Affero General Public License, version 3 or any later version | `AGPL-3.0-or-later` |
| `apps/train/halkyon_train_client`, generated from Train's models | GNU Affero General Public License, version 3 or any later version | `AGPL-3.0-or-later` |
| `apps/train/halkyon_train_server` | Server Side Public License, version 1 (as Learn's and Todo's) | `SSPL-1.0` |
The servers and the module build on Serverpod's core, which is under the SSPL, and so are
under it too. The apps and the shared Flutter packages link only permissively licensed
packages (Todo's icon is Lucide's, under the ISC licence, whose notice the app registers), and the client packages are generated from our own model definitions, so all of
packages (Todo's and Train's icons are Lucide's, under the ISC licence, whose notice each app registers), and the client packages are generated from our own model definitions, so all of
them are under the AGPL. The curator depends on neither a server nor Serverpod: Learn's
server reads the files it writes, never its code.