refactor(search): 죽은 search-cache + search --explain scaffold 제거

in-process LRU search cache 는 spine 재작성(#214)에서 이미 삭제됐는데
그 비계(scaffold)만 남아 있었다. 잔존물 제거:

- App::search/search_uncached 붕괴 (search() 는 1줄 위임자였음)
- search_uncached_with_config facade + 그 테스트 삭제
- 죽은 `search --no-cache` / `search --explain` CLI 플래그 제거
  (ask --explain 은 live — 건드리지 않음)
- 안 읽히던 RagCfg.explain_default config 필드 + fixture 제거
- 제거된 표면을 가리키던 stale 주석/문서(citation_helper/hybrid/
  search·app-facade README/DOGFOOD/HANDOFF) 정정

코어 검색 출력은 byte-identical (search_uncached 본문이 search() 로
verbatim 이동). `search_cache: false` wire capability 는 유지 — 제거 시
schema.v1 breaking bump 이라 손해. 적대적 검증 2렌즈(correctness-preserved
+ wire/config-safe) 통과, dead-symbol-complete 가 잡은 5건 주석/문서 정정 완료.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Mc6W1fgsrbFKTsqA6P8La
This commit is contained in:
2026-06-26 17:12:55 +00:00
parent fd3b4ae3d2
commit db9090c87b
17 changed files with 22 additions and 92 deletions

View File

@@ -424,15 +424,7 @@ $KB search 'tokenizer' --mode lexical --json | jq '.hits | length' # ≥ 1 if co
- `next_cursor` opaque token.
- `corpus_revision` mismatch → `stale_cursor` error.
### §2.6 Search cache (p9-fb-19)
```bash
"$RELEASE_BIN" search "query" --json # first call
"$RELEASE_BIN" search "query" --json # cached (in-process LRU, no-op in CLI)
"$RELEASE_BIN" search "query" --no-cache --json # force fresh
```
### §2.7 Bulk search
### §2.6 Bulk search
stdin ndjson — 줄당 하나의 query object (`{"query":"<text>"}` 필수, 나머지 optional):
```bash