The scope is search over data that LobeHub itself stores, such as agents, topics, messages, files, knowledge bases, documents, chat groups and memories. Web search providers that an agent calls at run time are out of scope. Searches follow one path: routers and services call `createFtsSearchRepo`, which returns an `FtsSearchRepo` that talks to the selected backend and keeps the existing result shapes.
Each part of the stack has a named owner. A server service picks the provider per request and holds the Elasticsearch client, the database package holds the PostgreSQL and Elasticsearch repositories plus document mappings, and a sync outbox captures changes with claims, retries, dead letters and revision fences. A resumable script handles full reindexing. `FTS_SEARCH_PROVIDER` selects `pg_search`, `elasticsearch` or `pg_like` per deployment, and provider errors must surface instead of silently falling back. A reference file covers Elasticsearch mapping migrations.