fix(tor): resolve app ports dynamically + auto-create hidden service on install
'Add Service' only worked for the 19 apps in the hardcoded known_service_port map — everything else failed with 'Unknown app'. tor.create-service and tor.toggle-app now fall back to the app's live launch address from the scanner state, so any manifest-driven app gets a .onion without a per-app entry (the static map still wins for protocol services like bitcoin, which must expose 8333, not a UI port). toggle-app also no longer writes a broken port-0 HiddenServicePort for unknown apps. Every successful package.install now auto-creates the app's hidden service (detached, best-effort, retries while the scanner derives the port; skips protocol services and existing entries). The demo mock gains stateful tor.create-service/tor.delete-service so the demo round-trips instead of erroring. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
5d4d40e9e8
commit
0f5ea9ae15
@@ -804,7 +804,7 @@ async fn http_launch_url_reachable(url: &str) -> bool {
|
||||
}
|
||||
}
|
||||
|
||||
fn port_from_url(url: &str) -> Option<u16> {
|
||||
pub(in crate::api::rpc) fn port_from_url(url: &str) -> Option<u16> {
|
||||
let after_colon = url.rsplit_once(':')?.1;
|
||||
let port = after_colon
|
||||
.chars()
|
||||
|
||||
Reference in New Issue
Block a user