ef1c622105
Add a runtime_validator callback to generate_title() / auto_title_session() / maybe_auto_title(). Callers snapshot the session's model+provider when spawning the background titler; the validator runs right before the LLM request and skips it silently when the live runtime no longer matches — so a stale title request can't reload a model that strict_single_load already evicted after a user model switch. Fail-open: a raising validator never disables titling. Wired at all four call sites (cli, gateway, tui_gateway, acp_adapter). Surgical reapply of PR #19137 (base was 8k+ commits stale; the original patch predates the pinned-language prompts, the atomic-write helper, and the moved TUI/ACP call sites). Original work by @Thatgfsj. Closes #19027.