diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index 97119d7f0..c81a08ec7 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -46,8 +46,7 @@ amethyst/ │ └── jvmAndroid/ # Opus encode/decode, AudioRecord/AudioTrack ├── desktopApp/ # Desktop JVM application (layouts, navigation) ├── amethyst/ # Android app (layouts, navigation) -├── cli/ # Amy — non-interactive CLI (JVM only, no Compose) -└── ammolite/ # Support module (unused) +└── cli/ # Amy — non-interactive CLI (JVM only, no Compose) ``` **Sharing Philosophy:** diff --git a/.claude/skills/gradle-expert/references/dependency-graph.md b/.claude/skills/gradle-expert/references/dependency-graph.md index 9417851c4..411f4d023 100644 --- a/.claude/skills/gradle-expert/references/dependency-graph.md +++ b/.claude/skills/gradle-expert/references/dependency-graph.md @@ -8,13 +8,13 @@ │ (Amethyst) │ └─────────────────────────────────────────────────────────┘ │ - ┌────────────────┼────────────────┬────────────┐ - │ │ │ │ - ▼ ▼ ▼ ▼ -┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌──────────┐ -│ :amethyst │ │ :desktopApp │ │ :benchmark │ │:ammolite │ -│ (Android) │ │ (JVM) │ │ (Android) │ │ (Support)│ -└─────────────┘ └─────────────┘ └─────────────┘ └──────────┘ + ┌────────────────┼────────────────┐ + │ │ │ + ▼ ▼ ▼ +┌─────────────┐ ┌─────────────┐ ┌─────────────┐ +│ :amethyst │ │ :desktopApp │ │ :benchmark │ +│ (Android) │ │ (JVM) │ │ (Android) │ +└─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ │ │ └────────────────┼────────────────┘ @@ -77,7 +77,7 @@ **Type:** Android Application **Targets:** Android **Dependencies:** -- Modules: `:commons`, `:quartz`, `:ammolite` +- Modules: `:commons`, `:quartz`, `:nestsClient` - External: Android SDK, AndroidX, Firebase, Tor **Role:** Android-specific navigation, layouts, and entry point @@ -91,13 +91,6 @@ **Role:** Performance benchmarking for Android builds -### :ammolite (Support Module) -**Type:** Android Library -**Targets:** Android -**Dependencies:** Android-specific utilities - -**Role:** Android support utilities for amethyst - ## Dependency Flow Patterns ### Desktop Build Chain @@ -112,10 +105,10 @@ ### Android Build Chain ``` :amethyst → :commons (androidMain) → :quartz (androidMain) - ↓ ↓ -:ammolite jvmAndroid - ↓ - commonMain + ↓ + jvmAndroid + ↓ + commonMain ``` ## Source Set Dependencies diff --git a/.git-hooks/pre-push b/.git-hooks/pre-push index b64f0b624..5821e1d1d 100755 --- a/.git-hooks/pre-push +++ b/.git-hooks/pre-push @@ -21,7 +21,6 @@ TASKS=( :commons:jvmTest :nestsClient:jvmTest :quic:jvmTest - :ammolite:testDebugUnitTest :amethyst:testPlayDebugUnitTest :cli:test ) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5c3e0553c..df4e4baa6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -218,7 +218,6 @@ jobs: :quartz:jvmTest \ :commons:jvmTest \ :nestsClient:jvmTest \ - :ammolite:testDebugUnitTest \ :amethyst:testFdroidDebugUnitTest \ :amethyst:testPlayDebugUnitTest \ :amethyst:assembleBenchmark \ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fdc9d9945..56a3348ba 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -164,7 +164,6 @@ Modules: - `amethyst/` — Android app: Activity, layouts, navigation. - `desktopApp/` — Desktop JVM app: Window, sidebar, keyboard shortcuts. - `cli/` — `amy`, a non-interactive JVM CLI over `quartz` + `commons`. -- `ammolite/` — Legacy support module. Per-module design docs live in `/plans/YYYY-MM-DD-.md`. The global `docs/plans/` folder is frozen. diff --git a/amethyst/build.gradle b/amethyst/build.gradle index e0b37a401..05ac66762 100644 --- a/amethyst/build.gradle +++ b/amethyst/build.gradle @@ -270,7 +270,6 @@ dependencies { implementation project(path: ':quartz') implementation project(path: ':commons') - implementation project(path: ':ammolite') implementation project(path: ':nestsClient') implementation libs.androidx.core.ktx implementation libs.androidx.activity.compose diff --git a/amethyst/proguard-rules.pro b/amethyst/proguard-rules.pro index 6e21a524c..ccd571f29 100644 --- a/amethyst/proguard-rules.pro +++ b/amethyst/proguard-rules.pro @@ -62,7 +62,6 @@ # JSON parsing -keep class com.vitorpamplona.quartz.** { *; } -keep class com.vitorpamplona.amethyst.** { *; } --keep class com.vitorpamplona.ammolite.** { *; } # Room generates *_Impl subclasses instantiated reflectively via no-arg constructor. # -keepnames preserves the name but R8 still strips the unused (). diff --git a/ammolite/.gitignore b/ammolite/.gitignore deleted file mode 100644 index 42afabfd2..000000000 --- a/ammolite/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/ammolite/build.gradle b/ammolite/build.gradle deleted file mode 100644 index fffb5cf02..000000000 --- a/ammolite/build.gradle +++ /dev/null @@ -1,60 +0,0 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - -plugins { - alias(libs.plugins.androidLibrary) -} - -android { - namespace = 'com.vitorpamplona.ammolite' - compileSdk = libs.versions.android.compileSdk.get().toInteger() - - defaultConfig { - minSdk = libs.versions.android.minSdk.get().toInteger() - targetSdk = libs.versions.android.targetSdk.get().toInteger() - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles "consumer-rules.pro" - } - - buildFeatures { - buildConfig = true - } - - buildTypes { - release { - minifyEnabled = true - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - create("benchmark") { - initWith(getByName("release")) - signingConfig = signingConfigs.debug - } - } - compileOptions { - sourceCompatibility JavaVersion.VERSION_21 - targetCompatibility JavaVersion.VERSION_21 - } - packagingOptions { - resources { - excludes += ['**/libscrypt.dylib'] - } - } -} - -kotlin { - compilerOptions { - jvmTarget = JvmTarget.JVM_21 - } -} - -dependencies { - // Lru Cache used in Relay stats - implementation libs.androidx.core.ktx - - implementation project(path: ':quartz') - - testImplementation libs.junit - - androidTestImplementation libs.androidx.junit - androidTestImplementation libs.androidx.espresso.core -} \ No newline at end of file diff --git a/ammolite/consumer-rules.pro b/ammolite/consumer-rules.pro deleted file mode 100644 index b89c71a40..000000000 --- a/ammolite/consumer-rules.pro +++ /dev/null @@ -1,40 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile -# preserve the line number information for debugging stack traces. --keepattributes LocalVariableTable --keepattributes LocalVariableTypeTable --keepattributes Signature --keepattributes Exceptions --keepattributes InnerClasses --keepattributes EnclosingMethod --keepattributes MethodParameters --keepparameternames - --keepdirectories libs - -# Keep all names --keepnames class ** { *; } - -# Keep All enums --keep enum ** { *; } - --keep class com.vitorpamplona.ammolite.** { *; } \ No newline at end of file diff --git a/ammolite/proguard-rules.pro b/ammolite/proguard-rules.pro deleted file mode 100644 index fd7f2b7db..000000000 --- a/ammolite/proguard-rules.pro +++ /dev/null @@ -1,44 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile -# preserve the line number information for debugging stack traces. --dontobfuscate --keepattributes LocalVariableTable --keepattributes LocalVariableTypeTable --keepattributes *Annotation* --keepattributes SourceFile --keepattributes LineNumberTable --keepattributes Signature --keepattributes Exceptions --keepattributes InnerClasses --keepattributes EnclosingMethod --keepattributes MethodParameters --keepparameternames - --keepdirectories libs - -# Keep all names --keepnames class ** { *; } - -# Keep All enums --keep enum ** { *; } - --keep class com.vitorpamplona.ammolite.** { *; } \ No newline at end of file diff --git a/ammolite/src/main/AndroidManifest.xml b/ammolite/src/main/AndroidManifest.xml deleted file mode 100644 index 44008a433..000000000 --- a/ammolite/src/main/AndroidManifest.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/benchmark/build.gradle b/benchmark/build.gradle index 2db4e6e8d..91df941ea 100644 --- a/benchmark/build.gradle +++ b/benchmark/build.gradle @@ -60,7 +60,6 @@ dependencies { androidTestImplementation libs.androidx.benchmark.junit4 androidTestImplementation project(path: ':quartz') androidTestImplementation project(path: ':commons') - androidTestImplementation project(path: ':ammolite') // Custom C secp256k1 (libschnorr256k1) for the 3-way Android benchmark androidTestImplementation libs.schnorr256k1.kmp diff --git a/commons/proguard-rules.pro b/commons/proguard-rules.pro index 283e8b07f..0bf7b3261 100644 --- a/commons/proguard-rules.pro +++ b/commons/proguard-rules.pro @@ -21,5 +21,4 @@ #-renamesourcefileattribute SourceFile -keep class com.vitorpamplona.quartz.** { *; } --keep class com.vitorpamplona.amethyst.** { *; } --keep class com.vitorpamplona.ammolite.** { *; } \ No newline at end of file +-keep class com.vitorpamplona.amethyst.** { *; } \ No newline at end of file diff --git a/desktopApp/compose-rules.pro b/desktopApp/compose-rules.pro index e0b66a63d..bb824643d 100644 --- a/desktopApp/compose-rules.pro +++ b/desktopApp/compose-rules.pro @@ -70,7 +70,6 @@ # JSON-mapped first-party types (mirrors mobile) -keep class com.vitorpamplona.quartz.** { *; } -keep class com.vitorpamplona.amethyst.** { *; } --keep class com.vitorpamplona.ammolite.** { *; } # ============================================================================ # Desktop-only JNI keep rules — libraries the mobile module doesn't ship diff --git a/settings.gradle b/settings.gradle index b6eb94ee6..d70eb627d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -36,7 +36,6 @@ include ':benchmark' include ':quartz' include ':geode' include ':commons' -include ':ammolite' include ':quic' include ':nestsClient' include ':desktopApp'