Erste Devlog-Befüllung; geerdet in den realen Commits, data.json via @mana/devlog-gen. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.6 KiB
| date | day | view | weekday | commits | review |
|---|---|---|---|---|---|
| 2026-06-04 | 1 | macher | Donnerstag | 2 | auto |
Donnerstag, 2026-06-04 — Tag 1 (Macher-Sicht)
Geburtstag der Library. b8484ce legt mana-kotlin-core v0.1 an — den
wiederverwendbaren Kotlin-Kern für die nativen Android-Apps, das Pendant zu
ManaCore aus mana-swift-core. Bewusst eine reine Kotlin/JVM-Library ohne
Android-SDK-Abhängigkeit, damit sie eigenständig gebaut und getestet werden
kann und später optional KMP-fähig wird; die App zieht sie als normale
Maven-Dependency.
Inhalt v0.1: auth.AuthClient (Login/Refresh/Logout gegen mana-auth unter
/api/v1/auth/*) portiert das Resilienz-Verhalten aus dem Swift-Core —
Single-Flight-Refresh, proaktiver Refresh vor Ablauf, Soft-Fail (Tokens nur
bei wirklich invalidierter Sitzung wischen, nicht bei 5xx/429).
auth.TokenStore als plattform-neutrales Persistenz-Interface
(InMemoryTokenStore für Tests; die App implementiert es über
DataStore+Keystore). auth.Jwt liest exp/sub/tier ohne
Signatur-Prüfung — die bleibt Server-Sache via JWKS.
net.AuthenticatedApi als Bearer-Transport mit einmaligem
401-Refresh-Retry, dazu net.manaHttpClient/net.ManaJson als
Ktor-Client-Factory und geteilte Json-Konfiguration, plus die model-Typen
(Deck, Card, Tier).
7ff6f0d zieht direkt v0.2.0 nach: Identity-Accessors am AuthClient,
damit der kommende mana-kotlin-event-sync-Layer (Phase 2 des
Android-Plans) den eingeloggten Principal abgreifen kann, ohne das Token
selbst zu zerlegen. Stack: Kotlin 2.1, Ktor 3, kotlinx.serialization,
coroutines, kotlinx.datetime; Ziel-Bytecode JVM 17.