diff --git a/nostr/commit-signatures.jsonl b/nostr/commit-signatures.jsonl
index 249d993..a43ff10 100644
--- a/nostr/commit-signatures.jsonl
+++ b/nostr/commit-signatures.jsonl
@@ -108,3 +108,4 @@
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772142448,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","refactor 11"]],"content":"Signed commit: refactor 11","id":"bb9d5c56a291e48221df96868fb925e309cb560aa350c2cf5f9c4ddd5e5c4a6b","sig":"75662c916bf4d8bb3d70cdae4e4882382692c6f1ca67598a69abe3dc96069ef6f2bda5a1b8f91b724aa43b3cb3c6b8ad6cbce286b5d165377a34a881e7275d2a"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772142558,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","remove redundancy"]],"content":"Signed commit: remove redundancy","id":"11ac91151bebd4dd49b91bcdef7b0b7157f0afd8ce710f7231be4860fb073d08","sig":"a7efcafa5ea83a0c37eae4562a84a7581c3d5c5dd1416f8f3e2bd2633d8523ae0eb7cc56dc4292c127ea16fb2dd5bc639483cb096263a850956b47312ed7ff6f"}
{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772182112,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","refactor 12"]],"content":"Signed commit: refactor 12","id":"73671ae6535309f9eae164f7a3ec403b1bc818ef811b9692fd0122d0b72c2774","sig":"0df56b009f5afb77de334225ab30cff55586ac0cf48f5ee435428201a1e72dc357a0fb5e80ef196f5bd76d6d448056d25f0feab0b1bcbe45f9af1a2a0d5453ca"}
+{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772188835,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","refactor 13"]],"content":"Signed commit: refactor 13","id":"f41c8662dcbf1be408c560d11eda0890c40582a8ea8bb3220116e645cc6a2bb5","sig":"2b7b70089cecfa4652fe236fa586a6fe1b05c1c95434a160717cbf5ee2f37382cdd8e8f31d7b3a7576ee5264e9e70c7a8651591caaea0cd311d1be4c561d282f"}
diff --git a/src/app.css b/src/app.css
index e19172c..6baadb6 100644
--- a/src/app.css
+++ b/src/app.css
@@ -938,11 +938,22 @@ button.theme-option.active img.theme-icon-option,
[data-theme="dark"] .verification-badge.unverified .icon-inline img,
[data-theme="black"] .verification-badge.unverified .icon-inline img {
- filter: brightness(0) saturate(100%) invert(0.5) sepia(1) saturate(3) hue-rotate(0deg);
+ filter: brightness(0) saturate(100%) invert(1) sepia(1) saturate(5) hue-rotate(0deg);
}
[data-theme="light"] .verification-badge.unverified .icon-inline img {
- filter: brightness(0) saturate(100%) invert(0.3) sepia(1) saturate(3) hue-rotate(0deg);
+ filter: brightness(0) saturate(100%) invert(0.2) sepia(1) saturate(3) hue-rotate(0deg);
+}
+
+/* Alert triangle icons in verification badges - ensure visibility on dark backgrounds */
+.verification-badge.unverified img[src*="alert-triangle.svg"].icon-inline,
+.verification-badge.unverified .icon-inline img[src*="alert-triangle.svg"] {
+ filter: brightness(0) saturate(100%) invert(1) sepia(1) saturate(5) hue-rotate(0deg);
+}
+
+[data-theme="light"] .verification-badge.unverified img[src*="alert-triangle.svg"].icon-inline,
+[data-theme="light"] .verification-badge.unverified .icon-inline img[src*="alert-triangle.svg"] {
+ filter: brightness(0) saturate(100%) invert(0.2) sepia(1) saturate(3) hue-rotate(0deg);
}
.clear-lookup-button img,
diff --git a/src/lib/components/RepoHeaderEnhanced.svelte b/src/lib/components/RepoHeaderEnhanced.svelte
index 63f46af..efb6186 100644
--- a/src/lib/components/RepoHeaderEnhanced.svelte
+++ b/src/lib/components/RepoHeaderEnhanced.svelte
@@ -89,6 +89,28 @@
topics = []
}: Props = $props();
+ // Check if user is the repo owner
+ // userPubkey can be in npub format, so we need to decode it if needed
+ const userPubkeyHex = $derived.by(() => {
+ if (!userPubkey) return null;
+ // If it's already hex (64 chars), return as-is
+ if (/^[0-9a-f]{64}$/i.test(userPubkey)) {
+ return userPubkey.toLowerCase();
+ }
+ // Try to decode as npub
+ try {
+ const decoded = nip19.decode(userPubkey);
+ if (decoded.type === 'npub') {
+ return decoded.data as string;
+ }
+ } catch {
+ // Not an npub, assume it's hex
+ }
+ return userPubkey.toLowerCase();
+ });
+
+ const isOwner = $derived(userPubkeyHex && ownerPubkey && userPubkeyHex === ownerPubkey.toLowerCase());
+
let showMoreMenu = $state(false);
let showBranchMenu = $state(false);
let showOwnerMenu = $state(false);
@@ -208,20 +230,34 @@
Create Patch
{/if}
- {#if (isRepoCloned === false || isRepoCloned === null) && onCloneToServer}
-
+ {#if (isRepoCloned === false || isRepoCloned === null)}
+ {#if isOwner && onCloneToServer}
+
+ {:else if !isOwner && onFork && hasUnlimitedAccess}
+
+ {/if}
{/if}
{#if isMaintainer && onSettings}