diff --git a/explorer.qmd b/explorer.qmd index bfa6390..fcd15ef 100644 --- a/explorer.qmd +++ b/explorer.qmd @@ -822,7 +822,7 @@ lite_url = `${R2_BASE}/isamples_202608_samples_map_lite_v3.parquet` // pinning the version here keeps staging and prod each self-consistent. wide_url = `${R2_BASE}/isamples_202608_wide.parquet` // v2 carries object_type alongside material and context (URI-string columns). -facets_url = `${R2_BASE}/isamples_202608_sample_facets_v3.parquet` +facets_url = `${R2_BASE}/isamples_202608_sample_facets_v4.parquet` facet_summaries_url = `${R2_BASE}/isamples_202608_facet_summaries.parquet` // Pre-aggregated single-filter cache for fast cross-filtered facet counts. cross_filter_url = `${R2_BASE}/isamples_202608_facet_cross_filter.parquet` diff --git a/tests/test_smoke.py b/tests/test_smoke.py index ebe5630..4bd51cd 100644 --- a/tests/test_smoke.py +++ b/tests/test_smoke.py @@ -122,10 +122,20 @@ def _on_console(msg): const t = (el && el.textContent || '').trim(); return t && !/Searching/i.test(t) && /result/i.test(t); }""", - # Aligned with the perf test's 90s search budget — a cold - # DuckDB-WASM query + remote parquet fetch on a slow CI - # runner can exceed 60s without the build being broken. - timeout=90_000, + # Liveness budget, not a latency SLA. A cold DuckDB-WASM query + # must download the FULL facets parquet on CI (the #190 + # range-request fallback), then ILIKE-scan it; on a slow shared + # runner 90s was already marginal for broad terms like + # "pottery", and the #326 place-name rebuild grew the file + # 62.5→69.4 MB (real place strings), which pushed borderline + # runners over: the same commit passed this gate at 06:20 and + # failed it twice ~07:15 on 2026-07-10. 150s keeps the gate + # meaningful (dead search wiring still fails fast via the + # pageerror/fatal-console asserts below) without flaking on + # runner variance. Search *latency* is tracked separately + # (#167 perf instrumentation, #190 fallback, #169–#172 FTS as + # the real fix). + timeout=150_000, ) results_text = page.locator("#searchResults").inner_text().strip()