Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d49a3e800f | ||
|
|
9d9d0f88f5 | ||
|
|
b11161862a |
+3
-3
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"VERSION": "v0.7.43",
|
||||
"VERSION_NUMBER": "0.7.43",
|
||||
"BUILD_DATE": "2026-06-26T13:46:35.892Z"
|
||||
"VERSION": "v0.7.46",
|
||||
"VERSION_NUMBER": "0.7.46",
|
||||
"BUILD_DATE": "2026-06-26T14:11:55.621Z"
|
||||
}
|
||||
|
||||
+35
-3
@@ -6470,11 +6470,22 @@ async function handleGetDiscoveredRelays(requestId, port) {
|
||||
try {
|
||||
const trackerData = ndk?.outboxTracker?.data;
|
||||
if (trackerData) {
|
||||
// Debug: log what the LRU cache looks like
|
||||
const trackerKeys = typeof trackerData.keys === 'function' ? Array.from(trackerData.keys()) :
|
||||
(trackerData instanceof Map ? Array.from(trackerData.keys()) : []);
|
||||
console.log('[Worker] getDiscoveredRelays: tracker has', trackerKeys.length, 'entries');
|
||||
|
||||
let pubkeysProcessed = 0;
|
||||
let pubkeysWithWriteRelays = 0;
|
||||
|
||||
const collectForPubkey = (pubkey) => {
|
||||
pubkeysProcessed++;
|
||||
try {
|
||||
const outboxItem = trackerData.get(pubkey);
|
||||
const writeRelays = outboxItem?.writeRelays;
|
||||
if (!writeRelays) return;
|
||||
if (!outboxItem) return;
|
||||
const writeRelays = outboxItem.writeRelays;
|
||||
if (!writeRelays || writeRelays.size === 0) return;
|
||||
pubkeysWithWriteRelays++;
|
||||
for (const r of writeRelays) {
|
||||
const rUrl = r?.url ? normalizeRelayUrl(r.url) : (typeof r === 'string' ? normalizeRelayUrl(r) : null);
|
||||
if (!rUrl) continue;
|
||||
@@ -6516,7 +6527,26 @@ async function handleGetDiscoveredRelays(requestId, port) {
|
||||
for (const pubkey of trackerData.keys()) {
|
||||
collectForPubkey(pubkey);
|
||||
}
|
||||
iterated = true;
|
||||
}
|
||||
|
||||
// Strategy 4: try internal storage if LRU cache has it
|
||||
if (!iterated) {
|
||||
try {
|
||||
// Some LRU caches store entries in an internal Map or object
|
||||
const internal = trackerData._map || trackerData.cache || trackerData._cache;
|
||||
if (internal instanceof Map) {
|
||||
for (const [pubkey] of internal) {
|
||||
collectForPubkey(pubkey);
|
||||
}
|
||||
iterated = true;
|
||||
}
|
||||
} catch (_) {}
|
||||
}
|
||||
|
||||
console.log('[Worker] getDiscoveredRelays: processed', pubkeysProcessed, 'pubkeys,', pubkeysWithWriteRelays, 'with write relays, iterated:', iterated, ', relayServesPubkeys size:', relayServesPubkeys.size);
|
||||
} else {
|
||||
console.log('[Worker] getDiscoveredRelays: no outbox tracker data available');
|
||||
}
|
||||
} catch (err) {
|
||||
console.warn('[Worker] getDiscoveredRelays: outbox tracker inversion failed:', err?.message || err);
|
||||
@@ -6908,7 +6938,9 @@ self.onconnect = (event) => {
|
||||
break;
|
||||
|
||||
case 'getDiscoveredRelays':
|
||||
await handleGetDiscoveredRelays(requestId, port);
|
||||
// Don't await — run fire-and-forget so this doesn't block
|
||||
// the message queue (getRelayData/getRelayStats must stay responsive).
|
||||
void handleGetDiscoveredRelays(requestId, port);
|
||||
break;
|
||||
|
||||
case 'setActiveSigningPort':
|
||||
|
||||
+3
-3
@@ -1414,9 +1414,6 @@ const versionInfo = await getVersion();
|
||||
const relays = await getRelayData();
|
||||
await createRelayTable(relays);
|
||||
|
||||
// Refresh discovered relays (outbox) table
|
||||
void refreshDiscoveredRelays();
|
||||
|
||||
// Keep relay debug history stable between polls; live updates are appended via ndkRelayEvent.
|
||||
} catch (error) {
|
||||
console.error('[relay2.html] Error getting relay data:', error);
|
||||
@@ -1589,6 +1586,9 @@ const versionInfo = await getVersion();
|
||||
// Refresh relay table every 5 seconds
|
||||
setInterval(refreshRelayData, 5000);
|
||||
|
||||
// Discovered relays are fetched only on manual expand click — no
|
||||
// auto-refresh interval, to avoid blocking the worker's message queue.
|
||||
|
||||
// Sync connection history toggle state from localStorage
|
||||
connectionHistoryEnabled = localStorage.getItem('relayConnectionHistory') === 'true';
|
||||
setRelayEventLogging(connectionHistoryEnabled);
|
||||
|
||||
Reference in New Issue
Block a user