Files
amethyst/commons/plans/README.md
Claude 2e1cb463be feat(commons): event renderer, cache-free thread tree, shared interaction builders
- rendering/: RenderedEvent + EventRendererRegistry with renderers for kinds
  0/1/3/5/6/7/16/1111/9735/10002/10050/30023, a default for everything else,
  the BodySpans rich-text post-processor over richtext/RichTextParser, and
  json/JsonEventFormatter (stable snake_case keys). Plan
  2026-04-21-event-renderer moves to in-progress.
- model/EventThreadTree: NIP-10/NIP-22 parent/root + depth-first layout over
  raw events (the cache-free sibling of ThreadAssembler). Desktop's private
  findReplyToId now delegates to it.
- moderation/notifications/NotificationItem: extracted from Desktop's
  NotificationsScreen (classify + effectiveAuthorPubKey); a kind:1 is a reply
  only when it actually answers a note, not when it merely cites one.
- actions: QuoteActions (NIP-18 quote), DeletionActions (NIP-09, own events,
  200 targets per kind:5; Account.delete shares the constant), ContentTags
  (p/q/t/r tags derived from typed text, like the composer), and
  ReplyActions.reply/commentOn (NIP-10 for kind:1, NIP-22 otherwise).
  ReplyActions.repliesAsComment is now the one rule the composer and amy use
  for answering top-level Amethyst posts with a kind:1111.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TmDZGXB7n5dLuegMARB1Rh
2026-10-06 14:27:12 +00:00

3.2 KiB

commons plans

Audited 2026-06-30 (+ 2026-09-12 split entry, 2026-09-27 migration and one-UI entries).

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.
2026-09-27-one-ui-android-desktop.md The target. Android ships on laptops, so the whole UI (screens + navigation shell) moves to commonsUI, amethyst becomes an Android shim, and a new JVM desktopApp renders the same UI. Measures Wave 4: Account's 77-file move-group, its 5 blocked files and 14 seams, and AccountViewModel's dependencies; sequences the rest.
2026-08-30-commons-migration-sweep.md The running log of moving amethyst/ code into commons/commonsUI: waves, what moved each round. LocalCache has moved. Its STAY list and Wave 2 part B are superseded by the one-UI plan above.
2026-05-30-amethyst-to-commons-migration.md The original roadmap for the same move; superseded in practice by the sweep tracker above.
2026-04-21-event-renderer.md Cross-platform UI-agnostic RenderedEvent subsystem shared by Amy, Desktop, and Android. Core, 12 kind renderers and the JSON formatter shipped (amy notes show/thread/feed, notifications); the Compose formatter and the Android/Desktop switch-over remain.

Queued

Plan Summary
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.