fix(desktop): disable method/marking/static ProGuard optimization

The smoke test discovered that ProGuard's method/marking/static pass
converts kmp-tor's AsyncFs.of() from instance to static. The JVM
then throws IncompatibleClassChangeError at launch because callers
still use invokevirtual.

Also updates smoke-test-desktop.yml trigger: runs on any PR touching
desktopApp/ (not just build config files).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
nrobi144
2026-05-19 09:48:01 +03:00
parent c0c055e771
commit 487dd3f2ac
2 changed files with 10 additions and 14 deletions
+7 -2
View File
@@ -121,9 +121,14 @@
# Reason: Type 'okio/BufferedSource' is not assignable to
# 'okio/RealBufferedSource'.
#
# Disabling just this sub-pass keeps merging, inlining, peephole and
# Disabling just these sub-passes keeps merging, inlining, peephole and
# dead-code optimizations on. Everything else in `optimize` stays.
-optimizations !method/specialization/returntype
#
# `method/marking/static` converts instance methods to static when they
# don't reference `this`. kmp-tor's `AsyncFs.of()` is called via
# invokevirtual; after ProGuard marks it static the JVM throws
# IncompatibleClassChangeError at launch (discovered by CI smoke test).
-optimizations !method/specialization/returntype,!method/marking/static
# ============================================================================
# Desktop-only: Jackson mobile module does not ship Jackson on Android