Files
aiturk-mobil/app/proguard-rules.pro
T
yilsemandClaude Opus 5.5 c2b08ff73e feat(aiturk): pair with AITURK IDE over LAN with a pinned certificate
Adds the phone side of the pairing contract v1: payload parsing, gateway resolve, parallel hello and a single claim, per host:port certificate pinning hooked into OkHttpProvider.base, and no dashboard token refresh for a paired IDE. Adds zxing-android-embedded and okhttp-tls (tests).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf
2026-10-04 06:06:31 +03:00

65 lines
4.0 KiB
Prolog

# ── Kotlin / Coroutines ─────────────────────────────────────────────────
-dontwarn kotlinx.coroutines.**
# ── Room ─────────────────────────────────────────────────────────────────
-keep class * extends androidx.room.RoomDatabase { *; }
-keep @androidx.room.Entity class * { *; }
-keepclassmembers class * { @androidx.room.* <methods>; }
-dontwarn androidx.room.**
# ── Gson / Serialization ─────────────────────────────────────────────────
# Keep all data model classes — Gson uses reflection to access fields
-keep class com.m57.hermescontrol.data.model.** { *; }
-keep class com.m57.hermescontrol.data.ws.JsonRpc* { *; }
-keep class com.m57.hermescontrol.data.ws.WsEvent* { *; }
-keep class com.m57.hermescontrol.data.ws.WsMethods { *; }
-keep class com.m57.hermescontrol.ui.chat.ChatMessage { *; }
-keep class com.m57.hermescontrol.ui.chat.MessageRole { *; }
-keep class com.m57.hermescontrol.ui.chat.ToolStatus { *; }
# Generic type signatures used by serialization
-keepattributes Signature
-keepattributes *Annotation*
-keepattributes EnclosingMethod
-keepattributes InnerClasses
# ── OkHttp / Retrofit ────────────────────────────────────────────────────
-dontwarn okhttp3.**
-dontwarn okio.**
-dontwarn retrofit2.**
-keepattributes RuntimeVisibleAnnotations
-keepattributes RuntimeInvisibleAnnotations
-keepclassmembers,allowshrinking,allowobfuscation interface * {
@retrofit2.http.* <methods>;
}
# ── AndroidX Security Crypto ─────────────────────────────────────────────
# EncryptedSharedPreferences / MasterKey resolve primitives via Tink's
# reflection-based Registry. Without -keep, R8 obfuscates those classes and
# token reads silently fail (401 on every API call, "Session expired").
-keep class androidx.security.crypto.** { *; }
-keep class com.google.crypto.tink.** { *; }
-dontwarn androidx.security.crypto.**
# ── Tink / Error Prone ───────────────────────────────────────────────────
# Tink references com.google.errorprone.annotations.Immutable which isn't
# shipped as a runtime dependency. Suppress the R8 missing-class error.
-dontwarn com.google.errorprone.annotations.Immutable
# ── Compose ───────────────────────────────────────────────────────────────
-dontwarn androidx.compose.**
# ── BuildConfig ───────────────────────────────────────────────────────────
-keep class com.m57.hermescontrol.BuildConfig { *; }
# ── Navigation (NavKey Names) ─────────────────────────────────────────────
# Keep screen object class names because their simpleNames are used for bottom nav selection and storage.
-keep class * extends androidx.navigation3.runtime.NavKey { *; }
# ── AITURK IDE pairing ───────────────────────────────────────────────────
# Android looks this hostname-aware overload up by reflection (X509TrustManagerExtensions).
-keepclassmembers class com.m57.hermescontrol.data.aiturk.PinAwareTrustManager {
public java.util.List checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String, java.lang.String);
}