mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-06 03:38:23 +00:00
The earlier note said the NIP-95 `java.io.File` spill was the only thing keeping the cache out of `commonMain`. That was wrong. The binding blocker is that the cache's own storage — `LargeSoftCache`, holding `users`, `notes` and `addressables` — is itself `jvmAndroid`, as are both `*ListMatchingFilter` observables, `MintDirectoryIndex` and `NwcPaymentTracker`. `EventCache` cannot go without them. The audit also found most of it is already answered in the tree: `commons.util.WeakReference` is an expect/actual that already anticipates iOS, quartz's commonMain ships `ConcurrentMap`/`ConcurrentSet`/`LargeCache`, and `LargeSoftCache`'s skip-list ordering is not load-bearing — its surface has no ordered read, so the skip list is there for concurrency alone. That leaves two pieces of real work: an okio or `expect` blob sink, and getting `java.util.SortedSet` out of `EventCache.filter`'s signature, which has no common equivalent and ripples into `CacheSearch`, both observables and the parity test. Recorded with a bottom-up order, and noted that none of it is on part B's critical path — Desktop is JVM. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KkULS5SVq4GHDdoCzajKi8