9dd0d12cea
Two top-level tools shared the rlm_ prefix but did completely different things — rlm_query was a flat parallel-completion fan-out wearing an RLM-shaped name, and rlm_process was the actual recursive language model. The overlap was the source of the "our rlm query is completely wrong" confusion. rlm_process → rlm # single, honest name for the recursive tool rlm_query → parallel_fanout # honest name for the flat fanout Internal renames follow: Op::RlmQuery → Op::Rlm AppAction::RlmQuery → AppAction::Rlm handle_rlm_query → handle_rlm RlmProcessTool → RlmTool RlmQueryTool → ParallelFanoutTool RlmChildClient → FanoutChildClient with_rlm_process_tool → with_rlm_tool with_rlm_query_tool → with_parallel_fanout_tool The REPL helpers `rlm_query` / `rlm_query_batched` / `llm_query` / `llm_query_batched` keep their names — those are correctly named (they ARE recursive within the REPL) and the model knows them from the system prompt and metadata. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>