diff --git a/AGENTS.md b/AGENTS.md
index bbdb8e6a..dd86e61f 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -166,7 +166,12 @@ The non-negotiables that decide most changes:
made when a control directly helps a user *recover from breakage*.
2. **Privacy-preserving by construction.** No SSL/TLS interception, ever. Detection
works off DNS metadata; SNI/TLS parsing is confined to an opt-in research mode
- because acting on it would leak the user's IP to the tracker first.
+ because acting on it would leak the user's IP to the tracker first. This SNI
+ parsing happens in the native `handle_ip()` block/allow decision (`ip.c`)
+ before traffic is dispatched to any egress path, so it runs the same way
+ whether remote routing (WireGuard) is on or off — when it is on, the
+ subsequent connection to the tracker goes out through the tunnel, so only
+ the VPN provider's IP leaks, not the device's real IP.
3. **Battery is a first-class constraint.** Anything periodic must be gated off
idle/screen-off. Do not make DoH a stronger default until its screen-off cost is
profiled and fixed. Battery is also frequently mis-attributed to the
diff --git a/README.md b/README.md
index dd773d66..5ec956e1 100644
--- a/README.md
+++ b/README.md
@@ -97,7 +97,7 @@ TrackerControl combines two analysis techniques: network traffic analysis and tr
Mobile trackers send personal data over the internet, so tracking can be detected from network traffic. This is TrackerControl's core functionality. The advantage over library analysis is that *actual* evidence of data sharing is gathered — libraries present in app code may never be activated at runtime.
-TrackerControl analyses traffic locally using DNS-based detection. TLS Server Name Indication (SNI) extraction is disabled by default because it requires connecting to tracker servers, which would leak the user's IP address. SNI is enabled only when Research mode is turned on, for measurement purposes.
+TrackerControl analyses traffic locally using DNS-based detection. TLS Server Name Indication (SNI) extraction is disabled by default because it requires connecting to tracker servers, which would leak the user's IP address. SNI is enabled only when Research mode is turned on, for measurement purposes. The SNI itself is read locally, from the same traffic TrackerControl already inspects — no separate connection is made to read it — so if remote routing (WireGuard) is also enabled, the connection to the tracker goes out through the VPN tunnel and the tracker sees the VPN provider's IP rather than the device's real IP.
Follow the in-app steps to enable the VPN, then interact with the apps you want to inspect (apps must actually run to share data with tracking companies). Results can be exported via the menu ("Export as CSV"); exporting from the main screen produces data compatible with the visualisation tools by [Hestia Labs](https://digipower.academy/experience/tracker-control).
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b3825919..587ffd8b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -605,7 +605,7 @@ Sincerely,\n\n]]>
When an IP has both tracker and non-tracker hostname evidence, still block it. Disable this to reduce app breakage.
SNI extraction (research)
- Extract hostnames from TLS connections for more accurate tracker detection. Warning: this leaks your IP address to tracker servers. Only enable for research.
+ Extract hostnames from TLS connections for more accurate tracker detection. Warning: this leaks your IP address to tracker servers (or, if remote routing is enabled, the VPN provider\'s IP). Only enable for research.
Blocking Mode
Minimal: Only blocks trackers from the DuckDuckGo list that are safe to block. Browsers stay routed through the VPN, but tracker protection is off by default. Known incompatible apps are excluded. Limited app breakage.