diff options
| author | Adam Soltys <[email protected]> | 2026-10-01 21:58:21 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-10-01 21:58:21 -0700 |
| commit | 4e3def3db32630ecd59d6b40c2436068708fe54b (patch) | |
| tree | 957ef9cfe45021e292dfbd5b54d8a3e495b9631c | |
| parent | 5b98e56c84783c46e0de043b9729c245be6ad902 (diff) | |
| download | coinosv3-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]>
| -rw-r--r-- | src/features/messages.js | 7 |
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); |
