Skip to content

feat: add relay health browser screen#191

Merged
barrydeen merged 1 commit intomainfrom
feat/relay-health-browser
Mar 10, 2026
Merged

feat: add relay health browser screen#191
barrydeen merged 1 commit intomainfrom
feat/relay-health-browser

Conversation

@barrydeen
Copy link
Copy Markdown
Owner

Summary

  • New Relay Health screen accessible from Settings in the navigation drawer
  • Shows all relays (persistent, DM, ephemeral) with real-time connection status, relay icons (via NIP-11 prefetch), and operator profiles
  • Displays inbox author coverage from the scoreboard with overlapping profile pictures (matching the "covers N" data from the feed relay picker)
  • Shows cooldown reasons (from console log failure entries) and bad relay reasons (zero-event sessions, disconnects, rate limits)
  • Supports sorting by status/failures/events/name and filtering by all/bad-only/errors-only
  • Tapping a relay navigates to the existing RelayDetailScreen for a deep dive

Changes

  • New: RelayHealthScreen.kt — health dashboard UI
  • New: RelayHealthViewModel.kt — aggregates data from RelayPool, RelayHealthTracker, RelayScoreBoard, RelayInfoRepository, and EventRepository
  • Modified: RelayHealthTracker.kt — exposed session history/active sessions, added bad relay reasons tracking
  • Modified: RelayPool.kt — added getEphemeralRelayUrls() and getAllRelayUrls()
  • Modified: RelayDetailScreen.kt — made format helpers internal for reuse
  • Modified: Navigation.kt, FeedScreen.kt, WispDrawerContent.kt — wired up route and drawer item

Test plan

  • Drawer shows "Relay Health" item under Settings
  • Screen loads with all relays listed with icons and connection status dots
  • Relay icons load (not just fallback letters)
  • Inbox author profile pictures appear for scored relays
  • Bad relays show reason text (e.g. "8/10 sessions received 0 events")
  • Cooldown relays show reason text from last failure
  • Sorting and filtering chips work
  • Tapping a relay navigates to RelayDetailScreen
  • Stats update every ~2 seconds

Add a new Relay Health screen accessible from the navigation drawer that
provides a cross-relay health dashboard. Shows all relays (persistent, DM,
ephemeral) with connection status, relay icons, operator profiles, inbox
author coverage from the scoreboard, session health, cooldown reasons,
and bad relay reasons. Supports sorting by status/failures/events/name
and filtering by all/bad/errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@barrydeen barrydeen merged commit 7598a31 into main Mar 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant