- Extract the duplicated `_document_is_searchable`/`_note_is_searchable`
helpers into a shared, Playwright-free `tests/integration/_search_helpers.py`
(`document_is_searchable`), used by both the plotly and sampling tests.
- Resolve the sampling Medium finding: `wait_for_vector_sync` now triggers the
searchability path on `search_term` alone (matching the plotly variant)
instead of requiring both `search_term` and `note_id`, removing the silent
fall-through to the unreliable gauge-delta path.
- Tighten `_get_with_retry`'s `last_exc` annotation to `httpx.TransportError`.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>