mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-08 23:54:39 +00:00
Built ./gradlew :desktopApp:proguardReleaseJars on both main and this branch and inspected the shrunk java-keyring-1.0.4-*.jar in desktopApp/build/compose/tmp/main-release/proguard/. Both branches contain byte-identical macOS Keychain backend bytecode: OsxKeychainBackend, ModernOsxKeychainBackend, pt/davidafsilva/apple/OSXKeychain, plus all _addGenericPassword / _findGenericPassword / _deleteGenericPassword / loadSharedObject native methods. ProGuard is NOT stripping the macOS backend. The compose-rules.pro comment had misled me. pt.davidafsilva.apple IS a real transitive runtime dep of com.github.javakeyring:java-keyring — ModernOsxKeychainBackend has a private pt.davidafsilva.apple.OSXKeychain field. The original keep rule was correct; restore it and clarify the comment about the transitive relationship so the next person to read this code doesn't repeat the same mistake. The AccountManager keychain-unavailable diagnostic + LoginScreen banner introduced earlier in this branch are kept — they're useful for any future failure mode in this area, not just the (refuted) ProGuard one. See https://github.com/vitorpamplona/amethyst/pull/3260#issuecomment-4740073787 for the full PoW jar inspection. Remaining hypotheses (H2 hardened-runtime unsigned-dylib block, H4 jpackage stripping the bundled libosxkeychain.dylib, H5 v1.11.0 migration gap) are documented in the plan doc. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>