Changelog
What's actually shipped — pulled from the commit log, not marketing.
Format: Keep a Changelog. Versioning: SemVer.
Unreleased
Added
- Docs site hosted as a subpath of the main app: insposearch.org/docs/. VitePress build output lives in
insposearch/docs/and ships with the Pages deploy — no separate Pages project - In-page contact form on the institutions page (FormSubmit.co-backed, no backend, honeypot-protected)
Changed
View DocsCTA and in-appdocslink now point to/docs/instead of the decommissionedinsposearch-docs.pages.dev
1.1.0 — 2026-04-21 (current)
Focus: stop the "infinite scroll runs out at page 2" problem, make exact mode genuinely exact, and put a real default AI provider in place so analysis works without BYOK.
Added
- Workers AI as default vision provider — LLaVA 1.5 runs on Cloudflare's edge; analyse now works with zero keys configured. BYOK (Gemini / Claude / OpenAI / Ollama) still overrides when set
- Opt-in community metadata layer — users can contribute enrichment tags via the
/contributeendpoint; data is reviewed before entering the shared corpus - 3-lane load-more dispatcher — Lane A (fresh pages), Lane B (query variations), Lane C (pool widening). Infinite scroll now keeps producing distinct results past page 5
- RRF fusion + MMR diversification on the unified result stream — reduces near-duplicates across sources, surfaces visually varied results first
- Deep-link URL state — query, mode, and source selection survive reload and are shareable
- Datamuse qualifier pool for Lane B rotation in exact mode — expands queries with linguistically related terms instead of synonyms that drift off-intent
- Paginated adapter coverage expanded from 17 to 29 sources — more sources participate in load-more instead of stalling after page 1
- Race-safe nightly fetch for CORS-blocked sources (GitHub Actions with rebase-and-retry push logic)
- Diacritic regression tests for Van Gogh / Dürer / Matisse-class queries across Met, Rijks, Europeana
Changed
- Worker endpoints expanded to 10:
/search,/sources,/random,/health,/proxy,/semantic,/caption,/tags,/contribute,/board - Fetch concurrency raised to 40; slow-source timeout ceiling raised to 12s
- Source health scoped per query intent, reset on each new query — a source that misses on
vermeeris no longer penalised when you searchbrutalism - Intent penalty relaxed for weakly-classified queries so ambiguous terms don't over-filter
Fixed
- Analyse button now acts on the panel-previewed item, not only the grid-selected one
- Analyse no longer early-returns when BYOK is empty — Workers AI default path fires as intended
- Met / Europeana / Rijks exact-mode matching across diacritic variants (
van gogh↔Van Gogh↔van Gog) - Load-more actually yields new items (was silently returning duplicates)
- Deep-link URL updates on every search (module binding reassignment bug)
- Met CORS proxy, Smithsonian 429 handling, KHM mixed content, favicon 504 flood, 7 dead source APIs disabled, 14 manifest validation errors
- Single-word category queries no longer collapse to empty results
- Image proxy URL corrected to the official subdomain
1.0.0 — 2025-10-01 — Initial public release
- Unified client-side search across 2,400+ cultural heritage sources (static registry + Europeana / DPLA dynamic provider discovery)
- Search modes: exact (precision) and explore (recall)
- Infinite-scroll result grid with quality gates and preload-then-append rendering
- Detail view with metadata, arrow-key navigation, colour palette extraction
- Board view (localStorage + shared-via-KV boards with 30-day TTL)
- Deep zoom via OpenSeadragon for IIIF-compatible sources
- 3D constellation view for visual similarity exploration
- Interpret: cross-reference any image across all sources
- 101 interface languages (6 hand-translated + 95 generated)
- Keys panel for optional provider authentication (stored in localStorage, sent only to the respective provider)
- Dark-first monospace UI (Cormorant Garamond + DM Mono), AGPL-3.0
Reading the commit log directly
For anything between releases: github.com/GI-Synth/InspoSearch/commits/main.