This repository has no description
0

Configure Feed

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

fix: separate Highlights section + pdsls link on strata page

- Highlights section shows only hot edges with star badges
- Edges section shows all edges without hot styling (no duplication)
- recordUri now pulled from getRecord response onto island object
- pdsls.dev link uses actual recordUri

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

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

author
nandi
co-author
Letta Code
date (May 14, 2026, 6:25 AM UTC) commit 9bcc046e parent cd58e324
+24 -4
+24 -4
src/frontend/app.ts
··· 632 632 try { 633 633 const data = await apiGet<{ island: Island; recordUri: string }>(`/xrpc/org.latha.strata.getRecord?uri=${encodeURIComponent(islandId)}`); 634 634 island = data.island; 635 + island.recordUri = data.recordUri; 635 636 } catch { 636 637 content.innerHTML = '<div class="empty">Strata record not found.</div>'; 637 638 return; ··· 720 721 <span class="save-status" id="save-status"></span> 721 722 </div> 722 723 724 + ${s.highlights.length > 0 ? `<div class="strata-section"> 725 + <h3>Highlights <span class="highlights-count">${s.highlights.length} hot edges</span></h3> 726 + <div class="strata-edges">${island.edges!.filter(e => s.highlights.includes(e.uri)).map(e => { 727 + const sourceMeta = island.vertexMeta![e.source]; 728 + const targetMeta = island.vertexMeta![e.target]; 729 + const sourceTitle = sourceMeta?.title || truncateUri(e.source); 730 + const targetTitle = targetMeta?.title || truncateUri(e.target); 731 + const type = connectionTypeLabel(e.connectionType); 732 + const icon = connectionTypeIcon(e.connectionType); 733 + const seemsUrl = e.source.startsWith("http") ? `https://semble.so/url/${encodeURIComponent(e.source)}` : ""; 734 + return `<a href="${escHtml(seemsUrl)}" class="strata-edge hot-edge" target="_blank" rel="noopener"${!seemsUrl ? ' onclick="event.preventDefault()"' : ""}> 735 + <span class="hot-badge">&#9733;</span> 736 + <span class="strata-edge-source">${escHtml(sourceTitle)}</span> 737 + <span class="strata-edge-type">${icon} ${escHtml(type)}</span> 738 + <span class="strata-edge-target">${escHtml(targetTitle)}</span> 739 + ${e.note ? `<span class="strata-edge-note">${escHtml(e.note)}</span>` : ""} 740 + ${e.handle ? `<span class="strata-edge-handle">@${escHtml(e.handle)}</span>` : ""} 741 + </a>`; 742 + }).join("")}</div> 743 + </div>` : ""} 744 + 723 745 <div class="strata-section"> 724 - <h3>Edges${s.highlights.length > 0 ? ` <span class="highlights-count">${s.highlights.length} hot</span>` : ""}</h3> 746 + <h3>Edges</h3> 725 747 <div class="strata-edges">${island.edges!.map(e => { 726 748 const sourceMeta = island.vertexMeta![e.source]; 727 749 const targetMeta = island.vertexMeta![e.target]; ··· 730 752 const type = connectionTypeLabel(e.connectionType); 731 753 const icon = connectionTypeIcon(e.connectionType); 732 754 const seemsUrl = e.source.startsWith("http") ? `https://semble.so/url/${encodeURIComponent(e.source)}` : ""; 733 - const isHot = s.highlights.includes(e.uri); 734 - return `<a href="${escHtml(seemsUrl)}" class="strata-edge${isHot ? " hot-edge" : ""}" target="_blank" rel="noopener"${!seemsUrl ? ' onclick="event.preventDefault()"' : ""}> 735 - ${isHot ? '<span class="hot-badge">&#9733;</span>' : ""} 755 + return `<a href="${escHtml(seemsUrl)}" class="strata-edge" target="_blank" rel="noopener"${!seemsUrl ? ' onclick="event.preventDefault()"' : ""}> 736 756 <span class="strata-edge-source">${escHtml(sourceTitle)}</span> 737 757 <span class="strata-edge-type">${icon} ${escHtml(type)}</span> 738 758 <span class="strata-edge-target">${escHtml(targetTitle)}</span>