diff --git a/nostr/commit-signatures.jsonl b/nostr/commit-signatures.jsonl
index 844cfea..f0a49ee 100644
--- a/nostr/commit-signatures.jsonl
+++ b/nostr/commit-signatures.jsonl
@@ -89,3 +89,4 @@
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772009909,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","fix cli sync and refine commit workflow"]],"content":"Signed commit: fix cli sync and refine commit workflow","id":"ddf0b49bb68139efbdacd6308b95b4a5329a37f479b319d609d712bee83e2d45","sig":"aacc22f02a3129d18cd2bdcfc4e2dda66e9358e552eac507cd4c4808bb47cd582298aed7d28f21b677418e1a91f3f1553c08f02671df8f1f43681cf7b19a744e"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772010107,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","fix build"]],"content":"Signed commit: fix build","id":"968af17f95f1ba0cf6a4d1f04ce108a6e4eb4ec3a4f72ca6a9d2529dacb92811","sig":"1891b6131effda70ec76577efadd9ea7374ebcbd4d738d0b0650e7dce46c3e7253eccb4b8455690297b63b7c30f61a0c7dcc1af0147b2f5a631bbd91c517c32b"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772011169,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","prevent zombie git processes"]],"content":"Signed commit: prevent zombie git processes","id":"fd370d2613105f16b0cfdd55b33f50c5b724ecef272109036a7cce5477da29bc","sig":"1d3cb4392f722b1b356247bde64691576d41fdb697e8dfe62d5e7ecd5ad8ea35757da2d56db310a2005e4b5528013aa1205256e37fc230f024d3b5a2e26735bf"}
+{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772087425,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","refactoring 1"]],"content":"Signed commit: refactoring 1","id":"533e9f7acbdd4dc16dbe304245469d57d8d37f0c0cce53b60d99719e2acf4502","sig":"0fad2d7c44f086ceb06ce40ea8cea2d4d002ebe8caec7d78e83483348b1404cfb6256d8d3796ebd9ae6f7866a431ec4a1abe84e417d3e238b9b554b4a32481e4"}
diff --git a/src/lib/components/CommentRenderer.svelte b/src/lib/components/CommentRenderer.svelte
new file mode 100644
index 0000000..84c9d9a
--- /dev/null
+++ b/src/lib/components/CommentRenderer.svelte
@@ -0,0 +1,218 @@
+
+
+
+
+
diff --git a/src/lib/components/DiscussionRenderer.svelte b/src/lib/components/DiscussionRenderer.svelte
new file mode 100644
index 0000000..c9befa0
--- /dev/null
+++ b/src/lib/components/DiscussionRenderer.svelte
@@ -0,0 +1,194 @@
+
+
+
+
+ {#if discussion.content}
+
+ {/if}
+ {#if discussion.type === 'thread' && hasComments}
+
+ {:else if discussion.type === 'comments' && hasComments}
+
+ {/if}
+
+
+
diff --git a/src/lib/components/PRDetail.svelte b/src/lib/components/PRDetail.svelte
index 3bbe5e4..9b11531 100644
--- a/src/lib/components/PRDetail.svelte
+++ b/src/lib/components/PRDetail.svelte
@@ -9,6 +9,10 @@
import { getPublicKeyWithNIP07 } from '../services/nostr/nip07-signer.js';
import { KIND } from '../types/nostr.js';
import { nip19 } from 'nostr-tools';
+ import CommentRenderer from './CommentRenderer.svelte';
+ import type { Comment } from './CommentRenderer.svelte';
+ import { loadNostrLinks } from '../utils/nostr-links.js';
+ import type { NostrEvent } from '../types/nostr.js';
interface Props {
pr: {
@@ -87,6 +91,10 @@
const highlightsService = new HighlightsService(DEFAULT_NOSTR_RELAYS);
const nostrClient = new NostrClient(DEFAULT_NOSTR_RELAYS);
+
+ // Event caches for Nostr links
+ let nostrLinkEvents = $state