mana-kotlin-core/devlog/2026-06-04/macher.md
Till JS d29c487832 devlog: Repo-Historie nachgezogen (spieler+macher)
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>
2026-06-16 01:44:26 +02:00

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.