From 577e5d27c56718ad69e29bd7079e28c66b971353 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Tue, 30 Jun 2026 22:00:15 -0400 Subject: [PATCH] [docs] add TODOs #45-#48 (tag suggestions, feed auto-refresh, Most Zapped tab, fluent profile switching) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per maintainer: #45 upload-modal tag suggestions from the user's previous videos; #46 auto-refresh the feed after posting a video; #47 "Most Zapped" sidebar tab (trending-by-zaps); #48 fluent profile switching across signing methods. #48 verified NOT already done: switching to a saved nsec profile throws "secret-required" (switchProfile -> requestLogin -> nsec provider.login with no passphrase) and silently fails — it never prompts for the PIN. Same root gap as #36 but in the switch path; NIP-46 likely needs an analogous reconnect on switch. Co-Authored-By: Claude Opus 4.8 --- todo/TODO_2026-06-20_pre-launch.md | 38 ++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/todo/TODO_2026-06-20_pre-launch.md b/todo/TODO_2026-06-20_pre-launch.md index b5dbeda7..041cc7bb 100644 --- a/todo/TODO_2026-06-20_pre-launch.md +++ b/todo/TODO_2026-06-20_pre-launch.md @@ -571,6 +571,44 @@ toward freshness and looked identical. Gave each a structural identity: upload (and optionally the default). Reuse `loadFromStorage` / the per-provider connection model. +### 45. Upload modal: suggest tags from the user's previous videos (UX) +- [ ] In the upload modal, let the user **pick tags reused from their other videos** — + surface a set of their **commonly-used tags** (frequency-ranked across their past + uploads) as one-tap chips, plus their less-common individual tags. Source from the + user's own video events' `t` tags (My Videos / their kind-30078+NIP-71 posts). + Rank by usage count; clicking a chip adds it to the new video's tags. + +### 46. Feed auto-refreshes after posting a video (UX) +- [ ] After a video note is published, **automatically refresh the feed** so the new + video appears without a manual page reload. Hook the post-publish success (upload + modal `upload:submit` / `publishVideoNote` completion) to + `refreshAllVideoGrids`/`onVideosShouldRefresh` (optimistically inject the just- + published event so it shows instantly). Mind the feed-identity + dedupe paths (#20/ + #21) so the injected event isn't dropped or duplicated. + +### 47. "Most Zapped" sidebar tab (trending-by-zaps) +- [ ] Add a **Most Zapped** sidebar tab: like Trending (#27, view-count) but ranked by + **total zaps** (sats / zap count) per video. Reuse the zap accounting (kind-9735 + receipts) already used for the zap system; build a feed source/ranker that sorts by + zap total over a window, wired into the feed engine like Trending. Depends on + reliable zap data (couples with the zap system already shipped in #3). + +### 48. Fluent profile switching across signing methods (nsec / NIP-46 / NIP-07) +- [ ] **CONFIRMED NOT DONE (verified 2026-06-30).** Switching to a saved **nsec** profile + fails: `switchProfile(pubkey, { providerId: "nsec" })` → `requestLogin` → the nsec + provider's `login()` is called with **no secret/passphrase**, so it throws + `"secret-required"` and the switch silently fails (caught + logged in + `profileModalController`). It never prompts for the PIN or routes to the stored-key + unlock flow. Same root gap as #36 (nsec signer needs the passphrase to be restored), + but in the SWITCH path. Fix: when switching to a saved nsec profile, detect the + stored encrypted key (`getStoredSessionActorMetadata`) and prompt for the pin/ + passphrase (route through `unlockStoredSessionActor`, e.g. open the login modal's + unlock flow), then activate. Apply the same for **NIP-46** (reconnect / re-authorize + the remote signer on switch if needed). Goal: switch fluently between NIP-07 ⇄ nsec + ⇄ NIP-46 accounts regardless of the current signing method. NOTE: multiple saved + nsec accounts share ONE stored session entry today — confirm per-account key storage + is needed for switching among several nsec profiles. + ### 8. Orphan storage garbage-collection tool - [x] **Largely delivered by the My Videos tab** (`9d3a0df0`): lists bucket objects no live note references and offers per-file delete (under the user's prefix only).