mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-06 11:48:24 +00:00
EventCache, LocalCache, LocalCacheHost, AntiSpamFilter, CachePruner,
CacheSearch and OnchainZapResolver are now shared; commons/jvmAndroid keeps
only the LargeSoftCache actual.
The three blockers were cleared in the preceding commits. What the move itself
turned up was the part no import grep could see, since these are JVM APIs that
need no import: @Synchronized and synchronized {} became KmpLock, @Volatile
became kotlin.concurrent.Volatile, System.nanoTime became TimeSource.Monotonic,
HashMap.merge became a local mergeMax, and Dispatchers.IO just needed
kotlinx.coroutines.IO imported.
Two references could not follow the file. The one dateFormatter call was a log
line and now prints the raw created_at. LnurlEndpointCache is a quartz
jvmAndroid singleton the outbound-zap resolver fills, so the zap-receipt
validation reads it through a new LocalCacheHost.lnurlEndpoint port; its
default null is "not cached", which is what a cache miss already meant — the
receipt takes the resolver path instead.
This is not iOS support. iOS compiles the cache now; its store and its two
observables still throw there. The gap is three named files rather than a
module boundary.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KkULS5SVq4GHDdoCzajKi8
commons plans
Audited 2026-06-30 (+ 2026-09-12 split entry). 7 plans: 3 shipped, 2 in-progress, 2 queued, 0 abandoned.
In progress
| Plan | Summary |
|---|---|
| 2026-05-04-custom-feeds-plan.md | Custom feed creation/discovery/management for Desktop; core model + builder + kind 31890 + desktop UI shipped, but relay-filter layer, DVM marketplace, kind 10090 sync, and list resolution still pending. |
| 2026-05-06-nest-subscription-manager-extraction.md | Split the per-speaker subscription state machine out of NestViewModel; only the ActiveSubscription stepping-stone is extracted so far. |
Queued
| Plan | Summary |
|---|---|
| 2026-04-21-event-renderer.md | Cross-platform UI-agnostic RenderedEvent subsystem shared by Amy, Desktop, and Android; not started. |
| 2026-05-30-amethyst-to-commons-migration.md | Roadmap to move shared amethyst Android code into commons; keystone Account/LocalCache extraction not begun. |
| 2026-08-03-poll-results-page.md | Extended NIP-88 poll results page (per-option counts + who voted for what) for Android and Desktop; also specifies four tally-correctness fixes and the missing poll-relay subscription. Proposed, not started. |
Shipped
| Plan | Summary |
|---|---|
| 2026-09-12-audit-findings.md | Bug/performance audit of commons + commonsUI after the split: 34 verified fixes shipped, 4 deferred with rationale, 6 rejected. |
| 2026-09-12-commons-ui-split.md | Split the Compose half of commons into the new :commonsUI module (same packages, api(:commons)), so cli no longer carries Compose/Skiko; records the classification method and follow-ups. |
Archived (shipped)
| Plan | Summary |
|---|---|
| archive/2026-05-04-custom-feeds-testing-sheet.md | Test sheet recording the completed custom-feeds phases (unit + manual coverage). |
| archive/2026-05-05-feed-builder-enhancements-plan.md | Six FeedBuilderDialog enhancements (npub decode, author search, kind filters, edit/delete, save-as-feed, exclude authors) — all landed. |