diff --git a/app/static/index.html b/app/static/index.html
index 4100be3..f5eba23 100644
--- a/app/static/index.html
+++ b/app/static/index.html
@@ -868,6 +868,7 @@
Opacity 80%
Cloud-penetrating C-band. Last 7 days, viewport bbox. Tiles from same-origin TiTiler — not fetched on load.
+ SAR + AIS: bright radar with no boat icon is a candidate, not a detection.
diff --git a/tests/test_frontend_reliability.py b/tests/test_frontend_reliability.py
index d734f49..f573bac 100644
--- a/tests/test_frontend_reliability.py
+++ b/tests/test_frontend_reliability.py
@@ -76,3 +76,25 @@ def test_phone_chokepoints_use_select_not_buttons():
mobile = HTML.split("@media (max-width: 820px)")[1].split("@media (prefers-reduced-motion")[0]
assert "#chokepoint-select { display: block; }" in mobile
assert ".chokepoint-btns { display: none; }" in mobile or "#chokepoint-label, .chokepoint-btns { display: none; }" in mobile
+
+
+def test_dark_hull_v1_sar_ais_candidate_note():
+ sar = HTML.split('id="sentinel-1-sar"')[1].split('class="lp-layer"')[0]
+ assert "SAR + AIS:" in sar
+ assert "candidate" in sar
+ assert "not a detection" in sar
+ assert sar.count('class="lp-note"') >= 2
+
+
+def test_hormuz_tap_enables_sar_and_vesselapi_src():
+ apply = HTML.split("function applyChokepoint")[1].split("function currentBBox")[0]
+ assert "p.vesselapi ? 'vesselapi' : ''" in apply
+ assert "vChk.checked = true" in apply
+ assert "vesselsOn = true" in apply
+ assert "p.id === 'hormuz' || p.vesselapi" in apply
+ assert "sChk.checked = true" in apply
+ assert "sentinelOn = true" in apply
+ assert "if (vesselsOn) loadVessels();" in apply
+ assert "if (sentinelOn) loadSentinel1();" in apply
+ load = HTML.split("async function loadVessels")[1].split("async function toggleStorms")[0]
+ assert "&src=${encodeURIComponent(vesselSrcPref)}" in load or "src=${encodeURIComponent(vesselSrcPref)}" in load