## Why
Compressed rollout searches recompiled the same query patterns for every file.
## What changed
Lazily compile and reuse the JSON-escaped and content search patterns across each scan, including the fallback scan when `ripgrep` is unavailable. Keep compilation failures within the existing per-file error handling and open files before compiling patterns.
## Testing
Add regression coverage verifying that an oversized query does not fail the compressed rollout scan and that a missing file still returns `NotFound` before query compilation.
GitOrigin-RevId: 0d41cbca6e1f716fc234c268493d8dd94c34975e