mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-30 15:48:36 +00:00
2.2.0 carries the single-pass Bech32/TLV codec and the 255-byte TLV fix (vitorpamplona/quartz#14). The test-only prototype that the benchmark compared it against is gone: quartz now is that codec, so the benchmark times quartz alone and checks that every entity round-trips. The plan records the shipped state. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VN3PFcMEkCT9ZFXtoUw4Y2
7.9 KiB
7.9 KiB
commons plans
Audited 2026-06-30 (+ 2026-09-12 split entry, 2026-09-27 migration and one-UI entries, 2026-10-09 iOS and web entries, 2026-10-17 platform review).
In progress
| Plan | Summary |
|---|---|
| 2026-10-20-nostr-dev-tools.md | In-app Nostr developer tools (Android + Desktop): a hub in Settings, NIP-19 converter, event inspector (id/signature check, also from a note's menu), kind lookup (type a number → name + every way clients encode it: events sampled from relays found via NIP-66, grouped by client or tag shape, with examples), kind browser, "find this event on relays", and a raw relay console with REQ/COUNT builders and confirm-before-AUTH. Prototype shipped; ranks the next tools (rebroadcast, REQ playground, kind 0/3/10002 history restore, zap/LNURL and NIP-05 debuggers). |
| 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-10-09-legacy-desktop-retirement.md | What each legacy-desktop-only feature becomes before runLegacy is deleted: port the privacy lock (whole app / messages / wallet, Android too), the relay latency engine, custom feeds (in the top-bar picker), a compression preview with resolution steps, a NIP-30 emoji picker, and a deck with workspaces on the shared shell; discard the rest. Decided, not started. |
| 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-10-09-ios-app.md | iOS as a third shim of the One-UI app, at feature parity with Android. Part A is groundwork shared with web: a nonJvmMain source set, Ktor transports, and the shim graph and last screens moved out of jvmAndroid. Part B is the iOS app: Keychain, AVPlayer, APNs + Notification Service Extension, WKWebView napplets, CallKit, nests, Tor. Decided: direct APNs, the richtext fork gains iOS/wasm targets, scheduled posts hidden on iOS. Supersedes amethyst/plans/2026-05-24-ios-support.md. Proposed. |
| 2026-10-09-web-app.md | The same app in the browser via Compose for Web (wasmJs), reusing the iOS plan's Part A. Starts with a spike that measures whether one browser thread keeps up with event ingest, then the IO-dispatcher and sync-crypto fixes for wasm, a :webApp shim, NIP-07 login, and CORS/fonts/media. Smaller scope than Android, with a table of what ships. On hold: a browser tab cannot inject NIP-07 into the websites its in-app browser opens, which the maintainer made a condition. |
| 2026-10-07-wot-network-index.md | Download every NIP-85 kind 30382 card from the user's trust provider (~300k) into a 6 MB on-disk sorted index (not LocalCache), kept current with small updates, to gate DM Known/New, Curated notifications and replies by a minimum trust score; includes Brainstorm onboarding. Implemented except public chats, amy wot and Desktop. |
| 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. |
| 2026-10-17-platform-code-sharing-review.md | Review of the code still in amethyst/ and desktopApp/ after the one-UI move: eight Desktop bugs (GIFs bypass Tor, blank place names and meeting events, a dead-end QR scanner, no-op calendar reminders, no WoT refresh, raw payment text, robohash Concord images; all fixed 2026-10-18), dead legacy Desktop code (deleted 2026-10-18), and ranked moves for each direction (Android→shared, Desktop→shared such as the tile map, and duplicates such as Tor, image loading, notifications and the image viewer). Proposed. |
Shipped
| Plan | Summary |
|---|---|
| 2026-10-23-nip19-codec-speed.md | NIP-19 encode/decode cost, per entity: quartz's Bech32 boxes every 5-bit value, copies each string several times and parses TLV into a map of copies. The single-pass codec (identical output, benchmarked in commons jvmTest) encodes 3.5–4.2× faster with ~5× less allocation and decodes 3–4× faster with 6–9× less. Also records a TLV bug: values over 255 bytes produce an naddr quartz itself cannot decode. Shipped in quartz 2.2.0 (vitorpamplona/quartz#14) and bumped here, with the call sites that cite other people's d-tags moved to a fallback that never throws. |
| 2026-10-20-nip05-remote-signer-login.md | Signing login from a name@domain address: read the NIP-05 document's nip46 field (the spec's name=_ shape and the legacy nip46[pubkey] shape nostr-tools uses), connect through the existing bunker / nostrconnect:// use cases and auth_url prompt, and require the signer's account to match the address. Falls back to the read-only login. Implemented for Amethyst and amy; not yet checked against a live provider. |
| 2026-10-15-dlist-three-tier-rendering.md | Decentralized List items drawn in three tiers after Brainstorm-UI ADRs 0004/0007: raw tags, the governing definition (copy resolution, display hints, URL templates, media, location, "More fields"), and hand-made views for GitHub accounts, food and drink places and books on the item's page. Third-party enrichment (GitHub, Open Library) not ported. |
| 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. |