mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-07-30 19:46:17 +00:00
amy is headless and compiles against zero Compose UI (the Compose deps are `implementation` in :commons, so they never hit the CLI compile classpath), but they still rode the runtime classpath into the shipped image — ~29 MB of Compose desktop render stack, including skiko's native .dylibs that enlarged the macOS notarization surface. Exclude skiko + the org.jetbrains.compose UI groups (ui/foundation/material/ material3/animation) from :cli runtimeClasspath. Keep androidx.compose.runtime (snapshot state + @Stable/@Immutable) — that IS CLI-safe and used by commons models/state. This avoids the commons → commons/commons-ui module split: the single-module, feature-cohesive design (commons/ARCHITECTURE.md §1/§3) is preserved; only the runtime artifact is trimmed. Result: amy image lib 77 MB -> 48 MB (-38%), and all 4 Compose/skiko notary dylibs gone (only secp256k1/jna/sqlite natives remain — the ones actually loaded). A create-release.yml assertion fails the build if the UI stack ever leaks back. Verified with the SDK hidden + an offline amy command battery (init/whoami/ --json/relay/marmot/login, plus a real 6-relay key-package round-trip): zero NoClassDefFoundError/linkage errors; init derives a secp256k1 key cleanly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015sso31DfSF9B6EFCVkEqWD