Milestone 1 — live web search:
- mock/server.js: /search + /search-status proxy to the self-hosted
SearXNG (third leg of the 3-source blend; engine endpoint stays
server-side), /spatial + /spatial-status proxy to the spatial service
- mock/app.js: background enrichment of suggestion cards — each
candidate gets a web element (discovery cards + "you might like"
rows) that is checked via SearXNG in the background (one in-flight
query per place, 1 h TTL, failures retry in ~5 min) and APPENDS
sourced facts with provenance URLs; never reorders/rewrites the plan.
New LLM tools: web_search (cite URLs) and poi_near (PostGIS). Status
badge gains 'web' / 'spatial'.
- styles.css: .cc-web live-facts blocks, t-web verified chip
Milestone 2 — PostGIS spatial DB (code complete; needs docker access
to run — see spatial/README.md):
- spatial/: docker-compose (postgis/postgis:16-3.4 + osm2pgsql:16
one-shot importer + spatiald), schema.sql (poi table w/ GIST index,
spatial_extract bookkeeping, refresh_poi()), import.sh for the PBF
extracts in ../osm, spatiald (Go, lib/pq): /health, /near
(ST_DWithin), /nearest (KNN), /corridor (ST_Buffer along a route),
with kind/name/extract/limit filters