From ea11bb5a872babf27f7f0c247af64f69f4b10505 Mon Sep 17 00:00:00 2001 From: Laan Tungir Date: Wed, 19 Aug 2026 13:08:03 -0400 Subject: [PATCH] v0.0.4 - TUI: show correct Qube address with qrexec service name and nsigner_client command --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/lib.rs | 2 +- src/tui.rs | 14 ++++++++++---- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8863c44..8465ff8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1490,7 +1490,7 @@ dependencies = [ [[package]] name = "nsigner" -version = "0.0.2" +version = "0.0.3" dependencies = [ "base64", "chacha20poly1305", diff --git a/Cargo.toml b/Cargo.toml index d39c536..155afd1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nsigner" -version = "0.0.3" +version = "0.0.4" edition = "2021" license = "MIT" description = "Attended Nostr signing daemon — Rust port of n_signer" diff --git a/src/lib.rs b/src/lib.rs index 55fac55..884a489 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -31,4 +31,4 @@ pub mod error; pub use error::NsignerError; /// Version string (matches C NSIGNER_VERSION). -pub const VERSION: &str = "v0.0.3"; +pub const VERSION: &str = "v0.0.4"; diff --git a/src/tui.rs b/src/tui.rs index 5eff4f9..2176367 100644 --- a/src/tui.rs +++ b/src/tui.rs @@ -34,6 +34,10 @@ pub const TRANSPORT_QREXEC_BRIDGE: u8 = 0x02; pub const TRANSPORT_TCP: u8 = 0x04; pub const TRANSPORT_HTTP: u8 = 0x08; +/// Qrexec service name used for the bridge transport. +/// Matches NSIGNER_QREXEC_SERVICE_NAME in n_signer/src/main.c. +pub const QREXEC_SERVICE_NAME: &str = "qubes.NsignerRpc"; + /// Number of focusable commands on the main screen: /// 4 transports + Add + Delete + Clear + Help + Quit. pub const FOCUS_COUNT: usize = 9; @@ -1273,7 +1277,7 @@ impl App { .spacing(Spacing::Overlap(1))); let [info, transport, roles] = left.layout(&Layout::vertical([ - Constraint::Length(13), + Constraint::Length(14), Constraint::Length(7), Constraint::Min(0), ]) @@ -1329,9 +1333,11 @@ impl App { lines.push(Line::from("Qube address:")); if self.transport_toggles[1] { - // Qrexec is a one-request-per-invocation transport: there is - // no persistent bind address, so show how callers reach it. - lines.push(Line::from(" qrexec (one request per invocation)")); + // Qrexec bridge transport. Show the service name and the + // client command that callers use to reach the signer, + // matching the connection info in n_signer's main.c. + lines.push(Line::from(format!(" qrexec service: {}", QREXEC_SERVICE_NAME))); + lines.push(Line::from(format!(" nsigner_client --qrexec :{}", QREXEC_SERVICE_NAME))); } else { lines.push(Line::from(" (inactive)")); }