504 Commits

Author SHA1 Message Date
Alejandro Gómez
891d152a51 fix: show rich text in inline replies 2026-04-05 22:54:22 +02:00
Alejandro Gómez
0c9eab5b0c fix: show all known kinds and mark supported ones 2026-04-05 22:46:59 +02:00
Alejandro Gómez
85fe5bee65 feat: nip-22 threads 2026-04-05 22:09:51 +02:00
Alejandro Gómez
ca6c1a6625 feat: color moments 2026-04-03 12:04:31 +02:00
Alejandro Gómez
075cdcb97b refactor: cleanup skills 2026-04-03 11:07:14 +02:00
Alejandro Gómez
a530898b07 perf: deduplicate event menu hooks and memoize kind renderers
Extract shared useEventActions hook so EventMenu and EventContextMenu
share a single set of hook subscriptions instead of duplicating them.
Wrap callbacks in useCallback and memoize KindRenderer/DetailKindRenderer
to reduce unnecessary re-renders in event feeds.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 10:58:03 +02:00
Alejandro Gómez
be3b97be6d feat: bookmark nip-29 groups and always fetch group list 2026-04-03 10:48:56 +02:00
Alejandro Gómez
5eb67631ec fix: correct settingsManager import in useFavoriteList
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 15:48:56 +02:00
Alejandro Gómez
aa65ed9911 fix: outbox, replace client tag 2026-04-01 15:43:30 +02:00
Alejandro Gómez
7fdd91d095 feat: bookmarks 2026-04-01 15:24:29 +02:00
Alejandro Gómez
a985442ae3 fix: add client tags in nip-10 replies/reactions 2026-04-01 11:48:21 +02:00
Alejandro Gómez
093a760b20 fix: actual stable sorting 2026-04-01 11:33:04 +02:00
Alejandro Gómez
6a1753196f ui: remove ugly scroll 2026-04-01 11:22:29 +02:00
Alejandro Gómez
5efc7d9501 ui: message reactions that scale for many reactions, tap to react on popover 2026-04-01 11:17:55 +02:00
Alejandro Gómez
f29480fc0a ui: avoid username overflow, condense event view 2026-04-01 10:39:06 +02:00
Alejandro Gómez
799538e5f6 chore: remove old docs 2026-04-01 09:14:15 +02:00
Alejandro Gómez
4e694945b3 feat: profile & badge sets 2026-03-31 23:02:24 +02:00
Alejandro Gómez
fcc9b50d25 fix: pick oldest emoji tag 2026-03-31 22:21:35 +02:00
Alejandro Gómez
d24b33ef7d fix: align relay links in text 2026-03-31 19:00:41 +02:00
Alejandro Gómez
32f7d1b531 ux: use popover for reactions 2026-03-31 18:47:03 +02:00
Alejandro Gómez
89ef0e2c5e feat: event dialog 2026-03-31 18:41:28 +02:00
Alejandro Gómez
ea8d2123ba fix: improve reaction tooltip with user names and proper emoji
Replace plain HTML title tooltip (truncated hex pubkeys, shortcodes) with
a Radix tooltip showing actual emoji and resolved user display names.
2026-03-31 16:51:20 +02:00
Alejandro Gómez
297c7cdbe0 feat: fav repos and git author lists 2026-03-31 13:18:14 +02:00
Alejandro Gómez
0a4318ae8c ai: plan for blocked relays 2026-03-31 12:49:50 +02:00
Alejandro Gómez
e124ffc89e fix: set up nsite to be published by grimoire key 2026-03-31 11:48:45 +02:00
Alejandro Gómez
143fa7b4b6 feat: refactor emoji search with singleton service, Dexie caching, and keyword-enriched search
Replace hand-rolled ~350-entry emoji list with unicode-emoji-json (~1,900 emojis) and emojilib
keywords for richer search matching. Move EmojiSearchService to a singleton with Dexie-backed
caching for instant availability on startup. Add recency+frequency emoji usage tracking shared
across the emoji picker and editor autocomplete.
2026-03-31 10:19:04 +02:00
Alejandro Gómez
0af86b667e fix: make sure condensed view works in pop out windows 2026-03-31 09:03:19 +02:00
Alejandro Gómez
4ca9c2ffbd feat: app handler definition 2026-03-31 08:59:27 +02:00
Alejandro Gómez
c60a7b2249 feat: add nsite config 2026-03-30 17:03:39 +02:00
Alejandro Gómez
d99288698e chore: update TODO.md 2026-03-30 16:28:37 +02:00
Alejandro Gómez
48ce35cbea feat: nip-5a nsites 2026-03-27 14:27:28 +01:00
Alejandro Gómez
4a501634c5 chore: sync NIPs 2026-03-26 09:58:07 +01:00
Alejandro Gómez
5d22403235 ai: sync-nips command 2026-03-26 09:22:32 +01:00
Alejandro Gómez
b14dce2d55 fix: center spellbook dropdown 2026-03-25 11:23:35 +01:00
Alejandro Gómez
9ded99420f feat: favorite spells 2026-03-24 17:37:20 +01:00
Alejandro Gómez
5ff9bbd5c2 fix: use aggregator relays as NIP-65 fallback and show accurate per-relay counts
- Use AGGREGATOR_RELAYS as fallback for follows without kind:10002,
  not the user's personal relays. Personal inbox/write relays were
  being assigned as outbox for hundreds of unknown follows, inflating
  counts and sending unnecessary queries to niche relays.
- Per-relay REQ badges now show assigned count (from reasoning) as
  the primary number, with unassigned users shown dimmed as +N.
  Tooltips show the full breakdown.
- Switch to useStableRelayFilterMap for structural comparison.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 11:49:46 +01:00
Alejandro Gómez
b25c2db89d feat: add useStableRelayFilterMap with structural filter comparison
Stabilizes relay filter map references using isFilterEqual per relay
instead of JSON.stringify. Avoids serialization overhead for large
filter maps with many relays and pubkeys.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 11:49:39 +01:00
Alejandro Gómez
0851cb03e9 perf: reduce Map allocations and subscription churn in REQ timeline hook
- Skip duplicate events in setEventsMap (return prev if event.id exists)
- Only create new relayStates Map on actual state transitions (waiting→receiving),
  not on every event — counter increments applied in-place
- Don't add unknown relays to the state map (skip defensive init)
- Cap streaming eventsMap at 2000 with 25% batch eviction of oldest events
- Decouple relay filter map from subscription lifecycle: store in ref,
  only tear down subscriptions when the relay SET changes (not filter content)
- Use useStableRelayFilterMap for structural comparison instead of JSON.stringify

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 11:49:33 +01:00
Alejandro Gómez
62785fa336 feat: add inbox (#p) chunking to relay filter splitting and clean up logging
Extend relay filter chunking to route #p tags to inbox/read relays,
matching the existing outbox/write routing for authors. Remove debug
console.log statements across the codebase while preserving error-level
logging. Delete unused logger utility. Expand test coverage for all
chunking scenarios.
2026-03-23 09:59:24 +01:00
Alejandro Gómez
9af896127e wip: relay filter chunking for REQ subscriptions
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 09:59:24 +01:00
Alejandro Gómez
92ea6e347b fix: convert potential numbers (cached NIP-11 supported_nips) to strings 2026-03-20 10:52:34 +01:00
Alejandro Gómez
40c02cdac7 fix: track all auth events, avoid race condition 2026-03-20 10:44:14 +01:00
Alejandro Gómez
ff4f5f322b fix: tweak relay link text and icon size 2026-03-19 16:12:38 +01:00
Alejandro Gómez
d709d5d5d8 feat: rich relay links in chat 2026-03-19 12:31:02 +01:00
Alejandro Gómez
d3d038929e ui: show relay name if available instead of host 2026-03-19 12:17:42 +01:00
Alejandro Gómez
3261b2a36a feat: render keypackage relay lists as relay lists 2026-03-19 12:14:50 +01:00
Alejandro Gómez
5161c3a799 feat: add kind 10051 (KeyPackage Relays) to relay list settings
Uncomment kind 10051 in kinds registry with NIP-EE attribution and add
it to the relay list editor so users can manage MLS KeyPackage relays.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 12:11:54 +01:00
Alejandro Gómez
329265645b docs: full command refernce 2026-03-18 11:23:44 +01:00
Alejandro Gómez
cd889d70cb feat: add outbox relay resolution to spellbook loading
Spellbook URLs only queried hardcoded aggregator relays, missing events
published to other relays. Now fetches the author's kind:10002 relay list
and includes their outbox relays when loading kind:30777 spellbook events.

Extract useUserRelays hook from inline pattern and refactor
useRepositoryRelays to use it.
2026-03-18 11:07:46 +01:00
Alejandro Gómez
400e60107f fix: don't transition away from eose state 2026-03-17 10:25:25 +01:00