1# --- kotlinx.serialization ---
2# The plugin generates serializers; keep them and the $$serializer companion members.
3-keepattributes *Annotation*, InnerClasses, Signature, Exceptions
4-dontnote kotlinx.serialization.**
5-keepclassmembers class soy.iko.opencode.** {
8-keepclasseswithmembers class soy.iko.opencode.** {
9 kotlinx.serialization.KSerializer serializer(...);
11# Keep @Serializable classes themselves so their generated serializers can reference them.
12-keep,includedescriptorclasses class soy.iko.opencode.**$$serializer { *; }
13-keepclassmembers class soy.iko.opencode.** {
16# Keep the serializable model classes (reflection-free serializer lookup needs the class).
17# Covers ALL @Serializable classes in the app — not just data.model — because several
18# classes used for persistent storage live elsewhere (OutboxMessage/PersistedAttachment in
19# data/repo, StoredProfile in ProfileStore, Backup* in BackupManager, RecentSession, …)
20# and R8 stripping/renaming their fields would break on-disk deserialization in release.
21-keep @kotlinx.serialization.Serializable class soy.iko.opencode.** { *; }
23# --- Ktor / OkHttp (HTTP client + SSE) ---
24# Don't warn about missing optional dependencies; keep only the classes that are
25# accessed via reflection (Ktor engine registration, OkHttp internals that R8
26# would otherwise strip). Narrow keeps instead of `-keep class io.ktor.** { *; }`
27# so R8 can still eliminate dead code and shrink the APK.
32-dontwarn org.jetbrains.annotations.**
33# Ktor loads engines and plugins via ServiceLoader — keep the service files.
34-keep class io.ktor.client.engine.** { *; }
35-keep class io.ktor.client.plugins.** { *; }
36-keep class io.ktor.serialization.** { *; }
37-keep class io.ktor.http.** { *; }
38# OkHttp uses reflection for platform detection and internal classes.
39-keep class okhttp3.internal.platform.** { *; }
40-keep class okhttp3.** { *; }
41-keep class okio.** { *; }
43# --- Coil (image loading) ---
44# Coil uses reflection for loadable decoders and the Compose integration.
45-keep class coil.** { *; }
46-keep class coil3.** { *; }
49# --- androidx.security.crypto pulls in Tink, which references compile-only
50# com.google.errorprone annotations. They aren't on the runtime classpath.
51-dontwarn com.google.errorprone.annotations.**
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list