Files
Claude 9948e34ad1 fix: share-intent guard, single-top reuse and re-argued tabs
Second audit of the Navigation 3 move:

- The share-intent guard in NavigateIfIntentRequested now read the current
  route as snapshot state, so the block re-ran on every navigation. Restored
  onto the share composer with the share still in the launch intent, the
  early return left the intent unconsumed, and leaving the composer reopened
  it (Share-to-DM likewise). The guard reads without observation and an
  early return now consumes the intent, which also lets the onNewIntent
  listener take over.
- newStack onto the same destination built a new entry, so a deep link onto
  the screen already open (a notification while on Notifications) reset its
  ViewModels and saved state. The entry now takes the new arguments in place,
  as Navigation 2's single-top launch did.
- A tab root re-argued that way was saved under its new arguments, where the
  bar never looks: the tab lost its state and the old entry lingered. Entries
  now carry tabRoute, the bar route they were opened as, and saved tabs are
  filed under it.
- The rail derives each item's selection, and the shell derives landscape, so
  neither recomposes on navigations or resizes that change nothing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S7FuNBSKiyVecARSoE4B9P
2026-10-07 14:20:22 +00:00
..

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.