Adds a titleOnly flag to page search: the Postgres driver matches
titles via trigram-indexed unaccented LIKE ranked by word_similarity,
and a Match filter in the search spotlight switches between everything
and title-only matching.
* feat(ai): add AI_VECTOR_DRIVER and turbopuffer configuration
* feat(ai): carry workspace and target space ids on vector lifecycle events
* feat(ai): add vector driver interface and turbopuffer request helpers
* feat(ai): add pgvector driver behind the vector driver interface
* refactor(ai): route vector reads and writes through the vector driver
* feat(ai): add turbopuffer vector driver
* feat(ai): rebuild turbopuffer namespaces when the embedding model changes
* feat(ai): warm the vector namespace cache on session start
* fix(ai): harden turbopuffer misconfiguration and reset failure paths
* fix(ai): collapse blank-line runs in extracted page text
* fix(ai): skip full re-embed when ai search is re-enabled within the delete grace window
* sync
* fix(ai): store real embedding dimensions instead of serialized vector length
* fix(ai): filter search hits by the page's current space at query time
* fix(ai): retry the page moved-to-space vector patch job
* sync
* feat(ai): pre-warm the vector namespace
* fix(ai): pass AI_VECTOR_DRIVER through the client build config