aboutsummaryrefslogtreecommitdiffstats
path: root/src/features/messages.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-10-01 21:58:21 -0700
committerAdam Soltys <[email protected]>2026-10-01 21:58:21 -0700
commit4e3def3db32630ecd59d6b40c2436068708fe54b (patch)
tree957ef9cfe45021e292dfbd5b54d8a3e495b9631c /src/features/messages.js
parent5b98e56c84783c46e0de043b9729c245be6ad902 (diff)
downloadcoinosv3-4e3def3db32630ecd59d6b40c2436068708fe54b.tar.gz
coinosv3-4e3def3db32630ecd59d6b40c2436068708fe54b.zip
Ask each open outbox relay about everyone who writes there
The planner picked relays to cover each followed author once, so an author was read on a single relay even when several of their write relays were open in the same plan. Fishcake's posts on damus and primal never showed because he was assigned to nos.lol alone. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/features/messages.js')
-rw-r--r--src/features/messages.js7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/features/messages.js b/src/features/messages.js
index 1559f06..48df13a 100644
--- a/src/features/messages.js
+++ b/src/features/messages.js
@@ -3926,7 +3926,12 @@ export function messagesFeature(ctx) {
if (n > bestN) { bestN = n; best = url; }
}
if (!best) break;
- const take = [...byRelay.get(best)].filter((pk) => left.has(pk));
+ // The socket is open either way, so it's asked about EVERYONE who
+ // writes there, not just the people it was picked to cover. Covering
+ // each author once read a five-relay author on nos.lol alone, and his
+ // posts that only reached damus and primal — both in the plan, both
+ // open — never showed, while Amethyst had them.
+ const take = [...byRelay.get(best)];
plan.push({ relays: [best], authors: take });
for (const pk of take) left.delete(pk);
byRelay.delete(best);