Skip to content

feat(desktop): show current relay-authenticated binding status - #4987

Draft
cea-block wants to merge 40 commits into
cea/o5-durable-audit-operator-lifecycle-4941806from
cea/j3c-current-binding-status
Draft

feat(desktop): show current relay-authenticated binding status#4987
cea-block wants to merge 40 commits into
cea/o5-durable-audit-operator-lifecycle-4941806from
cea/j3c-current-binding-status

Conversation

@cea-block

Copy link
Copy Markdown

Why

The desktop should present trust from the relay-authenticated current binding status associated with its active connection. Profile metadata and NIP-85-derived names are not connection-scoped authority and can outlive a withdrawal, expiry, reconnect, or binding change.

This PR follows #4847 and adds the desktop consumer for the current-binding status protocol introduced earlier in the stack.

What changed

  • Bootstrap current-binding status within the authenticated relay connection and bind the native session to the exact socket, relay signer, author, domain, epoch, and expiry.
  • Keep the desktop projection memory-only and fail closed on malformed, stale, conflicting, withdrawn, expired, disconnected, or replaced status.
  • Show a generic current-binding badge only when the message event signer exactly matches the current relay-authenticated projection.
  • Remove profile- and NIP-85-derived trust presentation and verified-name fallback while retaining the inherited compatibility plumbing.
  • Exercise the production queue, native projection channel, and desktop presentation through real loopback WebSocket and browser flows without adding a production fixture or provider.

Risk boundary

The projection is current-connection state, not durable identity state. It is cleared whenever its authenticated scope or freshness cannot be established, and it is never restored from profile metadata. The stock relay still installs no deployment-specific authorization provider, and this change does not enable protected behavior, operator routes, or external identity policy.

Validation

  • Exact production outbound bytes across a real loopback WebSocket into the production native status session
  • Signed connection-scope relay harness, including withdrawal, expiry, reconnect, scope changes, malformed status, and replay ordering
  • Native production connection/session trace through the production projection channel
  • Focused desktop projection, author-match, socket-binding, and expiry tests
  • TypeScript and production desktop builds
  • Dedicated Playwright coverage using only the Rust-produced projection trace
  • Production artifact scan for test hooks and retired trust-presentation markers

Generated with Codex.

Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>

# Conflicts:
#	desktop/tests/e2e/current-binding-status.spec.ts
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
Signed-off-by: Cea Stapleton Cordasco <261786559+cea-block@users.noreply.github.com>
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