You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue tracks the work originally scoped in #556 / #564 / #569 (and iOS counterpart barrydeen/wisp-ios#173) to sync user preferences across devices using NIP-78 (kind 30078 app-specific data with NIP-44 encryption).
The slim-PR series #570–#576 landed the client-side UI and per-account scoping pieces of that work, but deliberately deferred the actual cross-device sync infrastructure so each PR could ship and be reviewed in isolation.
In scope when this is picked up
NIP-78 publisher / subscriber — kind 30078 events keyed by a stable d tag (e.g. wisp-app-settings:v1, wisp-zap-presets:v1, wisp-wallet-meta:v1)
NIP-44 encryption of the JSON body (preferences contain account-level state that should not be public)
Schema definition PR (both repos in lockstep) — define the kind-30078 JSON envelope, d tag namespacing, version field, encryption envelope. No actual sync wiring yet, just types + serialization.
Android publisher PR — write on every relevant SharedPreferences change, debounced
iOS publisher PR — equivalent
Subscriber + Restore UX (both repos) — on launch, fetch latest 30078 events for the user's pubkey, decrypt, surface a confirmation before overwriting local state (avoid surprise loss of local edits)
Settings toggle + "Restore from relays" button wiring on both platforms
Deferred phase
This issue tracks the work originally scoped in #556 / #564 / #569 (and iOS counterpart barrydeen/wisp-ios#173) to sync user preferences across devices using NIP-78 (kind 30078 app-specific data with NIP-44 encryption).
The slim-PR series #570–#576 landed the client-side UI and per-account scoping pieces of that work, but deliberately deferred the actual cross-device sync infrastructure so each PR could ship and be reviewed in isolation.
In scope when this is picked up
dtag (e.g.wisp-app-settings:v1,wisp-zap-presets:v1,wisp-wallet-meta:v1)v1baseline matching iOS; bump on breaking changescreated_at, with a manual "Restore from relays" affordance (the UI hook already exists from feat(settings): NIP-78 cross-device sync of Interface preferences #564's earlier iteration but is currently inert)Out of scope (already landed)
InterfacePreferences.activePubkey+reload(pubkey)+ per-key namespacing already donemain)Superseded PRs (closed when this issue was filed)
Suggested future-phase plan
dtag namespacing, version field, encryption envelope. No actual sync wiring yet, just types + serialization.Related