halkyon/packages/halkyon_base_client
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tizian 「ティツィアーン」 b0e1557153
fix(auth): a member's clock off the register's ends the sessions of its gap, waiting for nothing
The reading of the full reading's fixes found (C1) that refusing a member
whose clock ran ahead protected only the reset's own session: a session
made on that member in the gap, by whoever knew the old password, outlived
both the member's ending and the register's notice.

issueSessionAfter now ends every session of the account here made before
the register's moment or before now, whichever is later, then makes the
new one, neither waiting nor refusing; and the register sends its clock
with each notice (sentAt), so a member takes the moment by its own clock
(as long before now as it was before it was sent), ending the gap's
sessions and leaving those made since. The passwordChanged refusal, sent
only by the clock checks, goes with them (unreleased).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-23 14:12:59 +02:00
..
lib fix(auth): a member's clock off the register's ends the sessions of its gap, waiting for nothing 2026-10-23 14:12:59 +02:00
test fix(auth)!: proofs are bound to the instance's whole base URL 2026-10-23 14:12:54 +02:00
.gitignore halkyon_base: a Serverpod module for sign-in, accounts and instance basics 2026-10-19 14:29:28 +02:00
analysis_options.yaml feat(crypto): SRP-6a, the register's half and the device's 2026-10-22 18:11:08 +02:00
CHANGELOG.md halkyon_base: a Serverpod module for sign-in, accounts and instance basics 2026-10-19 14:29:28 +02:00
LICENSE build: Melos, a Dart check and every path for the single repository 2026-10-22 18:11:04 +02:00
pubspec.yaml feat(crypto): SRP-6a, the register's half and the device's 2026-10-22 18:11:08 +02:00
README.md feat(crypto): SRP-6a, the register's half and the device's 2026-10-22 18:11:08 +02:00

halkyon_base_client

The client of halkyon_base, generated by Serverpod: what a Halkyon app calls to sign in, to manage its account, and to learn an instance's basics, under client.base in the app's own client. Never edited by hand; run serverpod --no-analytics generate in halkyon_base_server instead.

The one exception is SRP-6a's client half (ADR 0017), written by hand beside the generated code, which the generator leaves alone (it writes only lib/src/protocol/): package:halkyon_base_client/srp.dart, tested by dart test here. The module's README says how it pairs with the register's half.

Under the GNU Affero General Public License 3.0 or later.