Commit Graph

5 Commits

Author SHA1 Message Date
Jure
c8d2b05440 Bump to v0.4.0 — Phase 3: image lightbox, bookmarks, discover, language filter, UI polish 2026-03-14 18:00:28 +01:00
Jure
3a196cb9a0 Bump to v0.2.0 — Phase 2: Engagement & Reach
Four features shipped in this release:

- Feed reply context: replies show "↩ replying to @name" above the
  note content; clicking fetches and opens the parent thread

- NIP-65 outbox model: fetchUserRelayList + publishRelayList +
  fetchUserNotesNIP65 in client.ts; profile notes fetched via the
  author's write relays; "Publish relay list to Nostr" button in
  Settings (kind 10002)

- Notifications: new store (notifications.ts) + NotificationsView;
  🔔 sidebar nav item with unread badge; DM nav item also shows
  unread conversation count; badges clear on open/select

- Keyboard shortcuts: useKeyboardShortcuts hook + HelpModal;
  n=compose, /=search, j/k=feed nav with ring highlight,
  Esc=back, ?=help overlay

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 20:39:30 +01:00
Jure
d72dfe56d8 Search improvements — NIP-50 relay detection + smarter zero-results (roadmap #12)
- relayInfo.ts: checkNip50Support fetches NIP-11 relay info (Accept:
  application/nostr+json) and checks supported_nips for 50; results
  cached per session with 4s timeout; getNip50Relays checks all relays
  in parallel

- SearchView: relay NIP-50 support checked on mount in the background
  and shown as context in the idle state ("N of M relays support
  full-text search") and in zero-results states

- Zero results for full-text search now shows:
  - relay NIP-50 count (or "none of your relays support full-text")
  - prominent "Search #<query>" one-click button to retry as hashtag

- Tabs (notes / people) now always rendered after any search, not only
  when both result types are non-empty — makes the UI consistent

- Per-tab zero-results explanations: people tab explains NIP-50
  requirement when no relay supports it

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 20:21:22 +01:00
Jure
b7853a14e2 Wire up NIP-19 / NIP-21 navigation + hashtag search from notes
- Mention clicks (nostr:npub1, nostr:nprofile) open internal ProfileView
- njump.me links intercepted: npub/nprofile decoded and opened internally,
  note/nevent/naddr fall through to browser (no reader yet)
- Hashtag clicks navigate to SearchView and auto-run the search
- openSearch(query) action added to UIStore; pendingSearch consumed on mount

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 20:47:57 +01:00
Jure
2370fc21f9 Add search view (NIP-50 + hashtag + people)
- searchNotes: NIP-50 full-text for text queries, #t tag filter for #hashtags
- searchUsers: NIP-50 kind 0 search for people
- SearchView with tabbed notes/people results, follow/unfollow inline
- Hashtag queries skip people search and use universal #t filter
- Graceful empty state explains NIP-50 relay support caveat
- Search added to sidebar nav (⌕)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 17:38:54 +01:00