- Rename package com.wisp.app -> com.darkwisp.app
- Set applicationId/namespace to com.darkwisp.app
- Reset version to 1.0.0 (versionCode 1) as a new app
- Update display name to Dark Wisp / Dark Wisp Debug
- Update NIP-89 client tag to "Dark Wisp"
- Rebrand user-facing strings across all locales and README
- rootProject.name -> dark-wisp-android
Drops the embedded kmp-tor client, all .onion relay support, the Tor
toggle UI on splash/auth/drawer screens, the SOCKS proxy plumbing in
HttpClientFactory, all Tor-related strings across 11 locales, the
TorManager singleton, and the kmp-tor dependencies and ProGuard rules.
Relay URL validation now accepts only wss:// (with hostname, no port,
non-localhost, non-IP). The cleartextTrafficPermitted network security
flag stays — still needed for local relays on RFC1918 / loopback.
- Add RelayFailure flow and cooldown-aware reconnection to Relay/RelayPool
- RelayPool.reconnectAll() reconnects all persistent/DM relays on app resume
- Status-aware cooldowns: 10min for down relays, 1min for 4xx errors
- FeedViewModel.onAppResume() reconnects before resubscribing feeds
- Refactor notifications into grouped model (reactions, zaps, replies, reposts)
- Add zap message extraction (Nip57.getZapMessage)
- Show bottom bar on all routes except auth/onboarding
- Profile edit receives RelayPool for relay-aware editing
- Add LICENSE and README