fix: prevent tokio runtime deadlock in credential issue/verify

The credential issuance and verification handlers used
Handle::block_on() directly inside the tokio runtime, causing a
deadlock. Wrapped with block_in_place() to properly yield the
runtime thread.

Also completed full feature verification across all 25 test groups
(~175 checks) on live server.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-09 07:43:12 +00:00
co-authored by Claude Opus 4.6
parent 5ce8b7965c
commit e3aa95a103
81 changed files with 11492 additions and 649 deletions
@@ -126,6 +126,16 @@ impl DockerPackageScanner {
// Fedimint built-in Guardian UI on port 8175
debug!("Using fedimint built-in Guardian UI: http://localhost:8175");
Some("http://localhost:8175".to_string())
} else if app_id == "fedimint-gateway" {
// Fedimint Gateway API on port 8176
debug!("Using fedimint gateway: http://localhost:8176");
Some("http://localhost:8176".to_string())
} else if app_id == "nostr-rs-relay" {
debug!("Using Nostr relay: http://localhost:18081");
Some("http://localhost:18081".to_string())
} else if app_id == "dwn" {
debug!("Using DWN server: http://localhost:3100");
Some("http://localhost:3100".to_string())
} else if app_id == "mempool-electrs" || app_id == "electrs" {
// Electrs UI runs on host at port 50002
debug!("Using electrs-ui for mempool-electrs: http://localhost:50002");
@@ -312,7 +322,13 @@ fn get_app_metadata(app_id: &str) -> AppMetadata {
},
"fedimint" => AppMetadata {
title: "Fedimint".to_string(),
description: "Federated Bitcoin mint".to_string(),
description: "Federated Bitcoin mint with Guardian and Gateway".to_string(),
icon: "/assets/img/app-icons/fedimint.png".to_string(),
repo: "https://github.com/fedimint/fedimint".to_string(),
},
"fedimint-gateway" => AppMetadata {
title: "Fedimint Gateway".to_string(),
description: "Fedimint Lightning gateway for ecash payments".to_string(),
icon: "/assets/img/app-icons/fedimint.png".to_string(),
repo: "https://github.com/fedimint/fedimint".to_string(),
},
@@ -430,6 +446,18 @@ fn get_app_metadata(app_id: &str) -> AppMetadata {
icon: "/assets/img/app-icons/indeedhub.png".to_string(),
repo: "https://github.com/indeedhub/indeedhub".to_string(),
},
"nostr-rs-relay" => AppMetadata {
title: "Nostr Relay".to_string(),
description: "Run your own Nostr relay for sovereign event storage".to_string(),
icon: "/assets/img/app-icons/nostr-rs-relay.svg".to_string(),
repo: "https://sr.ht/~gheartsfield/nostr-rs-relay/".to_string(),
},
"dwn" => AppMetadata {
title: "Decentralized Web Node".to_string(),
description: "Store and sync personal data with DID-based access control".to_string(),
icon: "/assets/img/app-icons/dwn.svg".to_string(),
repo: "https://github.com/TBD54566975/dwn-server".to_string(),
},
"tor" | "archy-tor" => AppMetadata {
title: "Tor".to_string(),
description: "Anonymous overlay network for privacy".to_string(),