Skip to content

Proxy & signing reliability: event cache, request dedup, fresh-npub onboarding #82

Description

@DocNR

Verified still open against current source (build 102, 2026-08-10).

  • Oversized-push events fall through to a broken relay-fetch path. Payloads over the 3500B embed guard currently just log "too large... omitting embed" with no fallback delivery. Add an in-memory TTL+LRU cache on the proxy keyed by event id, plus a NIP-98-authed GET /event/:id endpoint, so NSE can fetch large events it couldn't get embedded. relay-proxy/proxy.js:521. Gate on evidence from the daily dashboard before building — don't build pre-emptively if this rarely fires in practice.
  • Multi-relay-publish clients trigger duplicate approval prompts. Clients like Nostur that publish the same NIP-46 request to multiple outbox relays can generate 3-4 separate sign_event approval prompts for one semantic user action. Existing dedup in LightSigner.swift:83-110 only catches literal re-delivery of the same event id, not semantic duplicates (same signer+client+method+params). Consider a short-TTL semantic dedup cache if this keeps showing up in the wild.
  • Fresh accounts have no NIP-65 relay list. New keys generated/imported into Clave never get a kind:10002 published, which causes some clients (observed with Coracle) to silently degrade — relay pool stays empty, signings fail with confusing errors. Consider an invisible one-time default kind:10002 publish on generateAccount()/addAccount(). Clave/AppState+AccountManager.swift.
  • Connected Clients list shows raw pubkeys instead of names. Bunker-paired clients that publish a kind:0 identity (e.g. clave.casa) never get looked up — there's no client-scoped profile fetch/cache, only the existing account-scoped one. Clave/AppState+ProfileFetcher.swift.

Source: internal backlog triage, 2026-08-10.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions