fix(approvals): harden target regex against scheme truncation

The target-extraction regex stopped at ':' and '/', so a dialog
containing a full URL (e.g. 'http://verify.muse-dev.online/api/...')
was captured as just the scheme ('http'). Add an optional
'(?:https?://)?' prefix so the hostname is captured instead.

This is defense-in-depth: the 2026-10-11 bare-scheme dialogs render
'http' directly from the app (closed source), but if the app resumes
rendering full URLs, the extractor will now yield the hostname rather
than the scheme.

Verified against 5 cases: bare 'http' unchanged, full http/https URLs
now yield hostnames, IPs and single-label hosts unchanged.
This commit is contained in:
opm
2026-10-11 20:06:32 -04:00
parent 78d22bd950
commit ce1b8def77
+1 -1
View File
@@ -735,7 +735,7 @@ def inspect_node_approvals(node: str) -> dict:
ip = None ip = None
target = None target = None
m_t = re.search( m_t = re.search(
r"(?:connection to|share information with|contact|connect to)\s+([A-Za-z0-9][A-Za-z0-9.-]*[A-Za-z0-9])", r"(?:connection to|share information with|contact|connect to)\s+(?:https?://)?([A-Za-z0-9][A-Za-z0-9.-]*[A-Za-z0-9])",
card_text, card_text,
) )
if m_t: if m_t: