diff options
| author | Adam Soltys <[email protected]> | 2026-09-15 22:19:58 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-09-15 22:19:58 -0700 |
| commit | 12e069fc62bff8715de189aedc777b69d1e56377 (patch) | |
| tree | 0fdabbc693c6b1c3ca04460960d49954d8b991a2 | |
| parent | b58e3dc1eb2a578f1cae441d8bba9503bec94567 (diff) | |
| download | coinosv3-12e069fc62bff8715de189aedc777b69d1e56377.tar.gz coinosv3-12e069fc62bff8715de189aedc777b69d1e56377.zip | |
Community reactions carry the target author's p tag, as Concord specifies.
A reaction sent from v3 never showed in Vector: its parser requires the
NIP-25 p tag naming the reacted-to message's author (CORD examples §2.3
has e, p and k), and ours sent only e and k. Added.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JuwQqNWtDJcxPWtEm9134z
| -rw-r--r-- | src/features/messages.js | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/features/messages.js b/src/features/messages.js index 429c8fc..e5646e9 100644 --- a/src/features/messages.js +++ b/src/features/messages.js @@ -1370,7 +1370,10 @@ export function messagesFeature(ctx) { const { created_at, ms } = msTags(Date.now()); const rumor = rumorWithId({ kind: 7, pubkey: id.pubkey, content: emoji, - tags: [['channel', chId], ['epoch', String(room.chEpoch(chId))], ['e', m.rumor.id], ['k', '9'], ...reactEmojiTags(emoji), ms], created_at, + // NIP-25 shape per CORD examples §2.3: e = the message, p = ITS AUTHOR, + // k = its kind. Vector refuses a reaction without the p tag, so ours + // never showed there until it was added. + tags: [['channel', chId], ['epoch', String(room.chEpoch(chId))], ['e', m.rumor.id], ['p', m.author], ['k', '9'], ...reactEmojiTags(emoji), ms], created_at, }); const r = room.reactions.get(m.rumor.id) || room.reactions.set(m.rumor.id, new Map()).get(m.rumor.id); const prev = r.get(id.pubkey); |
