fix: include cover images in semantic and similar search results
Semantic and similar searches used tpuf.QueryResult which lacks
cover_image. Now fetchLocalExtras() fetches both snippets and
cover images from local SQLite in a single query per URI. Hybrid
search also falls back to local DB for semantic-only cover images.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>