Browse Source

bug-fixes

imwald
Silberengel 1 month ago
parent
commit
9bc601c16d
  1. 4
      package-lock.json
  2. 2
      package.json
  3. 22
      src/lib/error-suppression.ts
  4. 25
      src/services/client.service.ts

4
package-lock.json generated

@ -1,12 +1,12 @@
{ {
"name": "jumble-imwald", "name": "jumble-imwald",
"version": "16.1.1", "version": "16.1.2",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "jumble-imwald", "name": "jumble-imwald",
"version": "16.1.1", "version": "16.1.2",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@asciidoctor/core": "^3.0.4", "@asciidoctor/core": "^3.0.4",

2
package.json

@ -1,6 +1,6 @@
{ {
"name": "jumble-imwald", "name": "jumble-imwald",
"version": "16.1.1", "version": "16.1.2",
"description": "A user-friendly Nostr client focused on relay feed browsing and relay discovery, forked from Jumble", "description": "A user-friendly Nostr client focused on relay feed browsing and relay discovery, forked from Jumble",
"private": true, "private": true,
"type": "module", "type": "module",

22
src/lib/error-suppression.ts

@ -56,6 +56,17 @@ export function suppressExpectedErrors() {
return return
} }
// Suppress Radix UI Dialog accessibility warnings
// These are informational warnings about DialogTitle/Description
// All our dialogs have titles (some hidden with sr-only for accessibility)
if (message.includes('DialogContent') && (
message.includes('requires a DialogTitle') ||
message.includes('Missing `Description`') ||
message.includes('aria-describedby')
)) {
return
}
// Suppress Workbox precaching errors for development modules // Suppress Workbox precaching errors for development modules
if (message.includes('Precaching did not find a match') && ( if (message.includes('Precaching did not find a match') && (
message.includes('@vite/client') || message.includes('@vite/client') ||
@ -166,6 +177,17 @@ export function suppressExpectedErrors() {
return return
} }
// Suppress Radix UI Dialog accessibility warnings
// These are informational warnings about DialogTitle/Description
// All our dialogs have titles (some hidden with sr-only for accessibility)
if (message.includes('DialogContent') && (
message.includes('requires a DialogTitle') ||
message.includes('Missing `Description`') ||
message.includes('aria-describedby')
)) {
return
}
// Call original console.warn for unexpected warnings // Call original console.warn for unexpected warnings
originalConsoleWarn.apply(console, args) originalConsoleWarn.apply(console, args)
} }

25
src/services/client.service.ts

@ -163,7 +163,6 @@ class ClientService extends EventTarget {
kinds.RelayList, kinds.RelayList,
ExtendedKind.CACHE_RELAYS, ExtendedKind.CACHE_RELAYS,
kinds.Contacts, kinds.Contacts,
ExtendedKind.FAVORITE_RELAYS,
ExtendedKind.BLOSSOM_SERVER_LIST, ExtendedKind.BLOSSOM_SERVER_LIST,
ExtendedKind.RELAY_REVIEW ExtendedKind.RELAY_REVIEW
].includes(event.kind) ].includes(event.kind)
@ -175,18 +174,26 @@ class ClientService extends EventTarget {
profileRelays: PROFILE_RELAY_URLS, profileRelays: PROFILE_RELAY_URLS,
additionalRelayCount: _additionalRelayUrls.length additionalRelayCount: _additionalRelayUrls.length
}) })
} else if (event.kind === ExtendedKind.FAVORITE_RELAYS) {
// Use fast write relays for favorite relays to avoid timeouts and payment requirements
_additionalRelayUrls.push(...FAST_WRITE_RELAY_URLS)
logger.debug('[DetermineTargetRelays] Favorite relays event detected, adding FAST_WRITE_RELAY_URLS', {
kind: event.kind,
fastWriteRelays: FAST_WRITE_RELAY_URLS,
additionalRelayCount: _additionalRelayUrls.length
})
} else if (event.kind === ExtendedKind.RSS_FEED_LIST) { } else if (event.kind === ExtendedKind.RSS_FEED_LIST) {
_additionalRelayUrls.push(...FAST_WRITE_RELAY_URLS, ...PROFILE_RELAY_URLS) _additionalRelayUrls.push(...FAST_WRITE_RELAY_URLS, ...PROFILE_RELAY_URLS)
} }
if (event.kind === kinds.RelayList) { if (event.kind === kinds.RelayList || event.kind === ExtendedKind.FAVORITE_RELAYS) {
logger.debug('[DetermineTargetRelays] Fetching user relay list for relay list event publication', { logger.debug('[DetermineTargetRelays] Fetching user relay list for event publication', {
pubkey: event.pubkey?.substring(0, 8), pubkey: event.pubkey?.substring(0, 8),
kind: event.kind kind: event.kind
}) })
} }
const relayList = await this.fetchRelayList(event.pubkey) const relayList = await this.fetchRelayList(event.pubkey)
if (event.kind === kinds.RelayList) { if (event.kind === kinds.RelayList || event.kind === ExtendedKind.FAVORITE_RELAYS) {
logger.debug('[DetermineTargetRelays] User relay list fetched', { logger.debug('[DetermineTargetRelays] User relay list fetched', {
hasRelayList: !!relayList, hasRelayList: !!relayList,
writeRelayCount: relayList?.write?.length ?? 0, writeRelayCount: relayList?.write?.length ?? 0,
@ -197,8 +204,9 @@ class ClientService extends EventTarget {
relays = (relayList?.write.slice(0, 10) ?? []).concat( relays = (relayList?.write.slice(0, 10) ?? []).concat(
Array.from(new Set(_additionalRelayUrls)) ?? [] Array.from(new Set(_additionalRelayUrls)) ?? []
) )
if (event.kind === kinds.RelayList) { if (event.kind === kinds.RelayList || event.kind === ExtendedKind.FAVORITE_RELAYS) {
logger.info('[DetermineTargetRelays] Final relay list for relay list event publication', { logger.info('[DetermineTargetRelays] Final relay list for event publication', {
kind: event.kind,
totalRelayCount: relays.length, totalRelayCount: relays.length,
userWriteRelays: relayList?.write?.slice(0, 10) ?? [], userWriteRelays: relayList?.write?.slice(0, 10) ?? [],
additionalRelays: Array.from(new Set(_additionalRelayUrls)), additionalRelays: Array.from(new Set(_additionalRelayUrls)),
@ -222,9 +230,10 @@ class ClientService extends EventTarget {
}) })
const uniqueRelayUrls = Array.from(new Set(relayUrls)) const uniqueRelayUrls = Array.from(new Set(relayUrls))
if (event.kind === kinds.RelayList) { if (event.kind === kinds.RelayList || event.kind === ExtendedKind.FAVORITE_RELAYS) {
logger.info('[PublishEvent] Publishing relay list event to relays', { logger.info('[PublishEvent] Publishing event to relays', {
eventId: event.id?.substring(0, 8), eventId: event.id?.substring(0, 8),
kind: event.kind,
totalRelayCount: uniqueRelayUrls.length, totalRelayCount: uniqueRelayUrls.length,
allRelays: uniqueRelayUrls allRelays: uniqueRelayUrls
}) })

Loading…
Cancel
Save