This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

Fix edge links in island UI.

Separate source and target links in edge and highlight rows so clicks no longer hijack to the first URL.

👾 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta Code <noreply@letta.com>

author
nandi
co-author
Letta Code
date (May 27, 2026, 11:43 PM -0700) commit 7715e47f parent b0856c82
+30 -18
+20 -14
src/frontend/app.ts
··· 1169 1169 const targetTitle = targetMeta?.title || truncateUri(e.target); 1170 1170 const type = connectionTypeLabel(e.connectionType); 1171 1171 const icon = connectionTypeIcon(e.connectionType); 1172 - const seemsUrl = e.source.startsWith("http") ? `https://semble.so/url/${encodeURIComponent(e.source)}` : ""; 1173 - return `<a href="${escHtml(seemsUrl)}" class="strata-edge hot-edge" target="_blank" rel="noopener"${!seemsUrl ? ' onclick="event.preventDefault()"' : ""}> 1172 + return `<div class="strata-edge hot-edge"> 1174 1173 <span class="hot-badge">&#9733;</span> 1175 - <span class="strata-edge-node"><span class="strata-edge-title">${escHtml(sourceTitle)}</span><span class="strata-edge-url">${escHtml(canonicalUrlLabel(e.source))}</span></span> 1174 + <a href="${escHtml(e.source)}" class="strata-edge-node strata-edge-link" target="_blank" rel="noopener"><span class="strata-edge-title">${escHtml(sourceTitle)}</span><span class="strata-edge-url">${escHtml(canonicalUrlLabel(e.source))}</span></a> 1176 1175 <span class="strata-edge-type">${icon} ${escHtml(type)}</span> 1177 - <span class="strata-edge-node"><span class="strata-edge-title">${escHtml(targetTitle)}</span><span class="strata-edge-url">${escHtml(canonicalUrlLabel(e.target))}</span></span> 1176 + <a href="${escHtml(e.target)}" class="strata-edge-node strata-edge-link" target="_blank" rel="noopener"><span class="strata-edge-title">${escHtml(targetTitle)}</span><span class="strata-edge-url">${escHtml(canonicalUrlLabel(e.target))}</span></a> 1178 1177 ${e.note ? `<span class="strata-edge-note">${escHtml(e.note)}</span>` : ""} 1179 1178 ${e.handle ? `<span class="strata-edge-handle">@${escHtml(e.handle)}</span>` : ""} 1180 - </a>`; 1179 + </div>`; 1181 1180 }).join("") || `<div class="empty">No highlighted edges matched the current edge URIs.</div>`}</div> 1182 1181 </div>` : ""} 1183 1182 ··· 1195 1194 const targetTitle = targetMeta?.title || truncateUri(e.target); 1196 1195 const type = connectionTypeLabel(e.connectionType); 1197 1196 const icon = connectionTypeIcon(e.connectionType); 1198 - const seemsUrl = e.source.startsWith("http") ? `https://semble.so/url/${encodeURIComponent(e.source)}` : ""; 1199 1197 return `<div class="strata-edge-row" data-edge-idx="${i}"> 1200 1198 <span class="edge-remove hidden" title="Remove edge">&times;</span> 1201 - <a href="${escHtml(seemsUrl)}" class="strata-edge" target="_blank" rel="noopener"${!seemsUrl ? ' onclick="event.preventDefault()"' : ""}> 1202 - <span class="strata-edge-node"><span class="strata-edge-title">${escHtml(sourceTitle)}</span><span class="strata-edge-url">${escHtml(canonicalUrlLabel(e.source))}</span></span> 1199 + <div class="strata-edge"> 1200 + <a href="${escHtml(e.source)}" class="strata-edge-node strata-edge-link" target="_blank" rel="noopener"> 1201 + <span class="strata-edge-title">${escHtml(sourceTitle)}</span><span class="strata-edge-url">${escHtml(canonicalUrlLabel(e.source))}</span> 1202 + </a> 1203 1203 <span class="strata-edge-type">${icon} ${escHtml(type)}</span> 1204 - <span class="strata-edge-node"><span class="strata-edge-title">${escHtml(targetTitle)}</span><span class="strata-edge-url">${escHtml(canonicalUrlLabel(e.target))}</span></span> 1204 + <a href="${escHtml(e.target)}" class="strata-edge-node strata-edge-link" target="_blank" rel="noopener"> 1205 + <span class="strata-edge-title">${escHtml(targetTitle)}</span><span class="strata-edge-url">${escHtml(canonicalUrlLabel(e.target))}</span> 1206 + </a> 1205 1207 ${e.note ? `<span class="strata-edge-note">${escHtml(e.note)}</span>` : ""} 1206 1208 ${e.handle ? `<span class="strata-edge-handle">@${escHtml(e.handle)}</span>` : ""} 1207 - </a> 1209 + </div> 1208 1210 </div>`; 1209 1211 }).join("")}</div> 1210 1212 <div class="edge-add-form hidden" id="edge-add-form"> ··· 1370 1372 row.dataset.note = note; 1371 1373 row.innerHTML = ` 1372 1374 <span class="edge-remove" title="Remove edge">&times;</span> 1373 - <a class="strata-edge" onclick="event.preventDefault()"> 1374 - <span class="strata-edge-node"><span class="strata-edge-title">${escHtml(truncateUri(source))}</span><span class="strata-edge-url">${escHtml(canonicalUrlLabel(source))}</span></span> 1375 + <div class="strata-edge"> 1376 + <a href="${escHtml(source)}" class="strata-edge-node strata-edge-link" target="_blank" rel="noopener"> 1377 + <span class="strata-edge-title">${escHtml(truncateUri(source))}</span><span class="strata-edge-url">${escHtml(canonicalUrlLabel(source))}</span> 1378 + </a> 1375 1379 <span class="strata-edge-type">${connectionTypeIcon(type)} ${escHtml(connectionTypeLabel(type))}</span> 1376 - <span class="strata-edge-node"><span class="strata-edge-title">${escHtml(truncateUri(target))}</span><span class="strata-edge-url">${escHtml(canonicalUrlLabel(target))}</span></span> 1380 + <a href="${escHtml(target)}" class="strata-edge-node strata-edge-link" target="_blank" rel="noopener"> 1381 + <span class="strata-edge-title">${escHtml(truncateUri(target))}</span><span class="strata-edge-url">${escHtml(canonicalUrlLabel(target))}</span> 1382 + </a> 1377 1383 ${note ? `<span class="strata-edge-note">${escHtml(note)}</span>` : ""} 1378 - </a>`; 1384 + </div>`; 1379 1385 row.querySelector(".edge-remove")!.addEventListener("click", () => { row.remove(); markDirty(); }); 1380 1386 edgeList.appendChild(row); 1381 1387
+10 -4
src/landing-page.ts
··· 1080 1080 flex-direction: column; 1081 1081 gap: 0; 1082 1082 } 1083 - a.strata-edge { 1083 + .strata-edge { 1084 1084 display: flex; 1085 1085 align-items: center; 1086 1086 gap: 0.5rem; ··· 1088 1088 padding: 0.375rem 0.5rem; 1089 1089 font-size: 0.8125rem; 1090 1090 border-bottom: 1px solid var(--border); 1091 - text-decoration: none; 1092 1091 color: var(--text); 1093 1092 transition: background 0.1s; 1094 1093 min-width: 0; 1095 1094 overflow: hidden; 1096 1095 } 1097 - a.strata-edge:hover { 1096 + .strata-edge:hover { 1098 1097 background: var(--surface); 1099 1098 } 1100 - a.strata-edge:last-child { border-bottom: none; } 1099 + .strata-edge-row:last-child .strata-edge { border-bottom: none; } 1101 1100 .strata-edge-source, .strata-edge-target { 1102 1101 color: var(--accent); 1103 1102 overflow: hidden; ··· 1114 1113 max-width: 42%; 1115 1114 gap: 0.4rem; 1116 1115 overflow: hidden; 1116 + } 1117 + a.strata-edge-link { 1118 + text-decoration: none; 1119 + color: var(--accent); 1120 + } 1121 + a.strata-edge-link:hover .strata-edge-title { 1122 + text-decoration: underline; 1117 1123 } 1118 1124 .strata-edge-title { 1119 1125 color: var(--text);