docs(auth): GitHub is offered to nobody where passwords are (ADR 0017)

ADR 0017's rules as they stand, halkyon_app's README and Learn's
AGENTS.md: where an instance offers passwords, the apps offer no Add GitHub
and no hint on adding it, an anonymous person's Sign in with GitHub reaches
only the account someone has, and every refusal says why.

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-21 19:22:12 +02:00
commit 3994257044
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -58,6 +58,11 @@ Written as the apps are: Dart 3.13's primary constructors, Material from
through the instance's `halkyon_base`, and puts a session granted elsewhere
in place (`useSession`); `SessionBloc`, `GitHubSignInBloc` and
`SignInWaysCubit`; `SignedOutMark`, `SignInAddresses`, `PersonFolders`.
Where the instance offers passwords, GitHub is added to nobody (ADR 0017):
`gitHubOffer` says so from its basics, `GitHubSignInStateReady.linking`
hands it to the screens, which then offer no Add, and the start screen
offers an account to create in place of the app's sentence on adding
GitHub; `gitHubProblemText` says why a GitHub sign-in was refused.
- **A password and TOTP** (`lib/src/password/`, ADR 0017): `PasswordRepository`
on a `PasswordGateway` (`ServerpodPasswordGateway`), an `AccountCrypto`
(`SodiumAccountCrypto`: halkyon_keys and SRP's client half, each step on an
@ -157,7 +162,8 @@ Written as the apps are: Dart 3.13's primary constructors, Material from
example address, its theme, delegates, languages (`resolveAppLocale` as
its resolution) and launch screen, and the three sentences only it can
say: what the first start's instance keeps of the person's, what a switch
to another account leaves behind, and where GitHub is added later.
to another account leaves behind, and where GitHub is added later (shown
only where the instance offers no passwords).
5. **Android**: the app's `MainActivity` answers `app.halkyon/screen_guard`
(copy Learn's or Todo's `ScreenGuard.kt` and call `ScreenGuard.attach` in
`configureFlutterEngine`), or secrets show in screenshots and recents.