feat(base,train): Train signs in with SimpleLogin, on ways back of its own (ADR 0020)

The forwarding page's table gains train-loopback (port 43825) and
train-scheme (app.halkyon.train://). Train's app had kept Todo's
loopback port 43824 from its shell; it now has its own.

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-29 22:34:02 +01:00
commit 18f456eed9
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
5 changed files with 17 additions and 5 deletions

View file

@ -184,7 +184,7 @@ Written as the apps are: Dart 3.13's primary constructors, Material from
`OidcBrowser`: SimpleLogin's page in the system's browser sheet, back by
the app's scheme, or on Linux and Windows in the browser, back to the
app's port on the loopback, as the instance's forwarding page names them
(`callbackScheme`, `loopbackPort`: Learn's 43823, Todo's 43824). Someone
(`callbackScheme`, `loopbackPort`: Learn's 43823, Todo's 43824, Train's 43825). Someone
new creates an account (a handle, the one the instance suggests being
free; the password twice, which makes the account's keys on the device;
the recovery phrase shown once and three of its words typed back; nothing

View file

@ -54,7 +54,7 @@ class SimpleLoginRepository(
/// The app's own port on the loopback, which the browser comes back to on
/// Linux and Windows, as the instance's forwarding page has it (Learn's
/// 43823, Todo's 43824).
/// 43823, Todo's 43824, Train's 43825).
required final int loopbackPort,
/// The platform the app runs on; tests name one.

View file

@ -25,6 +25,8 @@ const simpleLoginReturns = {
'learn-scheme': 'app.halkyon.learn://simplelogin-callback',
'todo-loopback': 'http://127.0.0.1:43824/simplelogin-callback',
'todo-scheme': 'app.halkyon.todo://simplelogin-callback',
'train-loopback': 'http://127.0.0.1:43825/simplelogin-callback',
'train-scheme': 'app.halkyon.train://simplelogin-callback',
};
final _returns = {

View file

@ -25,6 +25,8 @@ void main() {
'learn-scheme': 'app.halkyon.learn://simplelogin-callback',
'todo-loopback': 'http://127.0.0.1:43824/simplelogin-callback',
'todo-scheme': 'app.halkyon.todo://simplelogin-callback',
'train-loopback': 'http://127.0.0.1:43825/simplelogin-callback',
'train-scheme': 'app.halkyon.train://simplelogin-callback',
});
});

View file

@ -112,7 +112,7 @@ void main() {
simpleLoginMarker('todo', SimpleLoginReturn.scheme),
'todo-scheme',
);
for (final app in ['learn', 'todo']) {
for (final app in ['learn', 'todo', 'train']) {
for (final back in SimpleLoginReturn.values) {
expect(
simpleLoginReturns,