All checks were successful
CI / Unit & Component Tests (pull_request) Successful in 3m29s
CI / OCR Service Tests (pull_request) Successful in 25s
CI / Backend Unit Tests (pull_request) Successful in 3m52s
CI / fail2ban Regex (pull_request) Successful in 45s
CI / Semgrep Security Scan (pull_request) Successful in 20s
CI / Compose Bucket Idempotency (pull_request) Successful in 1m3s
The global undated-count rework moved the pure-text-RELEVANCE shortcut into runSearch, where it ran after the unconditional findAllMatchingIdsByFts call. That routed pure-text relevance through the in-memory id path and returned empty match data, breaking FTS rank order and snippet/offset enrichment. Hoist the shortcut back to the top of searchDocuments so it short-circuits to findFtsPageRaw before findAllMatchingIdsByFts, while still computing the global undatedCount for all non-fast-path searches. Refs #668 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>