Channel grid: always query bundled default relays (fix videos on nos.lol never showing)

Root cause of "a known video never shows on the channel": the video was a
whitelisted creator's NIP-71 note that lives ONLY on nos.lol, but the channel
fetch queried nostrClient.relays — the user's CAPPED NIP-65 read set — which
dropped nos.lol, so we never queried the one relay that had it. Confirmed by
per-relay probe: snort/damus/primal returned 0, nos.lol returned the 2 videos.

loadUserVideos now unions the user's relays with DEFAULT_RELAY_URLS (nos.lol,
damus, primal, snort) for the scoped channel fetch, so a creator's videos on
any bundled default relay are found regardless of the read cap. Channel pages
are a deliberate request for one creator, so the slightly wider fan-out is fine.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
thePR0M3TH3ANandClaude Opus 4.8 committed 2026-07-08 09:38:22 -04:00
1 parent 31848a1e51
commit 8d331be1d5
1 file changed
+8 -1
+8 -1
View File
@@ -5611,7 +5611,14 @@ async function loadUserVideos(pubkey) {
const knownRelays = Array.isArray(nostrClient.relays)
? nostrClient.relays
: Array.from(nostrClient.relays || []);
const relayList = knownRelays.filter((url) => isValidRelayUrl(url));
// ALWAYS include the bundled defaults. A creator's videos can live only on
// a default relay (e.g. a NIP-71 video that's only on nos.lol) that the
// user's capped NIP-65 read set excludes — otherwise a known, whitelisted
// video never shows on the channel because we never query the one relay
// that has it.
const relayList = [
...new Set([...knownRelays, ...DEFAULT_RELAY_URLS]),
].filter((url) => isValidRelayUrl(url));
// Route one fetch through the app's PROVEN path (the same one "My Videos"
// uses on refresh). It streams into the shared cache, so this grid, its