mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-05 19:28:25 +00:00
Reviewer davotoula (PR #3483) flagged a P0 race in DesktopLocalCache.consumeContactList: lastContactListByAuthor was stamped before the self-check. During login, hydration launched on Dispatchers.IO before Main.kt's LaunchedEffect bound accountPubkey. If the user's own cached kind-3 hydrated first, the map got poisoned; the same event later arriving from a relay was rejected by the createdAt gate, _followedUsers stayed empty, and FollowAction.follow would call createFromScratch and wipe the real follow list. Two-part fix: 1. Reorder Main.kt so localCache.accountPubkey is set before hydration launches. Also clear the pubkey on logout and on account switch. 2. Belt-and-braces: consumeContactList now only stamps lastContactListByAuthor inside branches where we know self identity. When accountPubkey is null (login/hydration window), skip the stamp so the relay retry that arrives after bind can populate _followedUsers. Regression tests reproduce the "hydrate before bind, replay after bind" scenario and confirm the follow set populates on retry. Plan: commons/plans/2026-07-06-fix-wot-outbox-model-and-review-fixes-plan.md
commons plans
Audited 2026-06-30. 6 plans: 2 shipped (archived), 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. |
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. |