Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
efe9d977cd | ||
|
|
bff0bca411 | ||
|
|
fee3ffc764 |
@@ -556,9 +556,8 @@ import { initPostCards } from './js/post-interactions2.mjs';
|
||||
const now = Math.floor(Date.now() / 1000);
|
||||
const since = newestKnown > 0 ? Math.max(0, newestKnown - 30) : (now - 3600);
|
||||
|
||||
// Fire-and-forget: NDK.subscribe already calls trackUsers internally,
|
||||
// but doing it explicitly avoids relying on internal timing.
|
||||
void warmOutbox(authors).catch(() => {});
|
||||
// NDK.subscribe already calls outboxTracker.trackUsers internally,
|
||||
// so no explicit warmOutbox call is needed here.
|
||||
|
||||
subscribe(
|
||||
{ kinds: [1], authors, since },
|
||||
@@ -594,11 +593,8 @@ import { initPostCards } from './js/post-interactions2.mjs';
|
||||
}
|
||||
|
||||
if (newAuthors.length > 0) {
|
||||
try {
|
||||
await warmOutbox(newAuthors);
|
||||
} catch (e) {
|
||||
console.warn('[feed.html] warmOutbox for new authors failed (non-blocking):', e?.message || e);
|
||||
}
|
||||
// NDK's fetchEvents/subscribe already calls outboxTracker.trackUsers
|
||||
// internally for author-based filters, so no explicit warmOutbox needed.
|
||||
try {
|
||||
await fetchFeedWindow(newAuthors, { limit: INITIAL_POSTS_LOAD });
|
||||
renderFeed();
|
||||
|
||||
@@ -1038,7 +1038,7 @@ export async function getRelayData() {
|
||||
|
||||
pendingRequests.set(requestId, { resolve, reject });
|
||||
|
||||
// Set timeout
|
||||
// Set timeout (15s — worker may be busy processing outbox/NDK events)
|
||||
setTimeout(() => {
|
||||
if (pendingRequests.has(requestId)) {
|
||||
pendingRequests.delete(requestId);
|
||||
@@ -1046,7 +1046,7 @@ export async function getRelayData() {
|
||||
console.warn('[init-ndk] Get relay data timeout, returning empty array');
|
||||
resolve([]);
|
||||
}
|
||||
}, 5000);
|
||||
}, 15000);
|
||||
|
||||
ndkWorker.port.postMessage({
|
||||
type: 'getRelayData',
|
||||
@@ -1071,7 +1071,7 @@ export async function getRelayStats() {
|
||||
|
||||
pendingRequests.set(requestId, { resolve, reject });
|
||||
|
||||
// Set timeout
|
||||
// Set timeout (15s — worker may be busy processing outbox/NDK events)
|
||||
setTimeout(() => {
|
||||
if (pendingRequests.has(requestId)) {
|
||||
pendingRequests.delete(requestId);
|
||||
@@ -1079,7 +1079,7 @@ export async function getRelayStats() {
|
||||
console.warn('[init-ndk] Get relay stats timeout, returning empty object');
|
||||
resolve({});
|
||||
}
|
||||
}, 5000);
|
||||
}, 15000);
|
||||
|
||||
ndkWorker.port.postMessage({
|
||||
type: 'getRelayStats',
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"VERSION": "v0.7.46",
|
||||
"VERSION_NUMBER": "0.7.46",
|
||||
"BUILD_DATE": "2026-06-26T14:11:55.621Z"
|
||||
"VERSION": "v0.7.49",
|
||||
"VERSION_NUMBER": "0.7.49",
|
||||
"BUILD_DATE": "2026-06-26T14:27:42.415Z"
|
||||
}
|
||||
|
||||
@@ -6930,7 +6930,10 @@ self.onconnect = (event) => {
|
||||
break;
|
||||
|
||||
case 'warmOutbox':
|
||||
await handleWarmOutbox(requestId, pubkeys, port);
|
||||
// Don't await — trackUsers involves network I/O to outbox pool
|
||||
// relays and would block the entire message dispatch loop,
|
||||
// starving getRelayData/getRelayStats messages.
|
||||
void handleWarmOutbox(requestId, pubkeys, port);
|
||||
break;
|
||||
|
||||
case 'setRelayEventLogging':
|
||||
|
||||
Reference in New Issue
Block a user