refactor(app): instances, sign-in and sync plumbing come from halkyon_app

The instances a device keeps an account on, the first start, the
account switcher, signing in and switching person, the gates that build
the dependencies per instance and per person, and the sync service with
its status, card and banner move to halkyon_app (halkyon_shared, ADR
0014), on halkyon_base's client. Learn supplies its frame (name, word,
icon, theme, launch screen, and the two texts only it can say), its
dependencies, whether the device holds content, and its world map's
country names; every text reads as before. An instance counts only
where its basics name the app `learn`, which learnBase now sets.

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-19 16:07:44 +02:00
commit 9486b3586e
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -35,8 +35,8 @@ engine's.
endpoint (`delete`, `signInWays`), `deletePerson`, the pruning functions, and the
instance's basics (`instance.basics()`, `InstanceBasics`).
2. **A host configures it in one place, before its pod starts.**
`HalkyonBase.configure(pod, HalkyonBase(...))`: the app's name, which sign-in mails
name; where the project publishes its source, which the instance names unless its
`HalkyonBase.configure(pod, HalkyonBase(...))`: the app it serves (`app`, which its
instances name in their basics); the app's name, which sign-in mails name; where the project publishes its source, which the instance names unless its
operator sets `SOURCE_URL`; the oldest app build the server works with; and what the
host deletes of a person who goes. Learn's is `learnBase()`
(`lib/src/auth/learn_base.dart`), set up in `server.dart`.
@ -77,7 +77,11 @@ engine's.
say the server needs a newer app. Not before 22 Oct 2026 either: the hackathon's judges
use v0.17.0 until then.
- Another Halkyon server gets all of this by naming the module and configuring it, and its
app can share the app side of signing in (`halkyon_app`, next) on the module's client.
app shares the app side, `halkyon_app` (19 Oct 2026: the instances, signing in, the
gates and the sync plumbing, with texts of their own), which sits on the module's client.
An instance's basics name the app it serves (`app`, set by the host's configuration:
Learn's is `learn`), and an app accepts only an instance of its own, so another Halkyon
app's address is refused before the app moves there.
- A change to sign-in, deletion or the instance's basics is made in halkyon_shared and
reaches Learn by moving the pin; Learn's tests of its own deletion and its
`instance.info()` set the module up as the server does (`useLearnBase`).