Summary
Sweeping the fork's "model-facing text must not name tools the current environment cannot dispatch" fixes (Pinvou/CodeWhale #56/#41/#71), most hunks landed upstream independently (thank you — 105ad9d3e, the mcp-discovery rewrite, the goal no-progress machinery), but several residual sites on current main still command calls a catalog can never return. Each is small; we're listing them with exact locations and can send one small PR per site (or a batch) if that's easier. Some touch prompt/prompts/-adjacent content, so we're asking before opening PRs against that surface.
Residual sites (verified on 5f7ca5016)
crates/tui/src/core/engine/context.rs:270 — "verify side effects with File actions like read or list": File is a hidden replay-only alias (model_visible=false), so this teaches a call the model-visible catalog never offers. Same file ~:272: the handle-read line has no activation hint.
crates/tui/src/commands/groups/core/agent.rs:62 — /agent dispatch brief tells the child to gather evidence without any tool_search activation fallback for deferred tools.
crates/tui/src/commands/groups/project/goal.rs:94 — bare /goal brief cites tools without the deferred-tool activation path.
crates/tui/src/prompts/text.rs:222-224 — GOAL_CONTINUATION_PROMPT names tools that can be deferred/hidden on the running surface; no tool_search fallback taught.
crates/tui/src/tools/rlm.rs — three runtime output strings (redaction note ~:366, stdout-handle note ~:564, preview truncation footer :873) and the eval/fan-out description() (:179) command handle_read with no teaching of how to activate it when it isn't first-turn-visible. (Fork wove a shared HANDLE_READ_ACTIVATION_HINT through all four.)
crates/tui/src/tools/canonical_action.rs:217 — RETIRED_TOOL_NAMES's doc claims "None of them can dispatch", but the list contains live, model-visible tools (grep_files, list_dir, file_search): the comment is stale even where the guard's intent is fine, and the companion test no_advertised_tool_teaches_a_retired_name therefore checks the wrong invariant for those names. Either split the list (truly-retired vs. live-but-renamed) or fix the doc; today the false comment can mislead the next person into "fixing" live tools.
workflows/stopship.workflow.js — separate PR coming (routed the scout through tool_search/grep_files; skipping here).
Offer
For items 1–5 we have fork-tested wording that treats every mention as "name the visible tool + teach the activation path" and would re-derive per site against current code. Item 6 is a docs/comment-level fix. Tell us which you want and in what grouping — or if you'd rather own the wording, the fork diffs are the reference.
Linked fork work
Summary
Sweeping the fork's "model-facing text must not name tools the current environment cannot dispatch" fixes (Pinvou/CodeWhale #56/#41/#71), most hunks landed upstream independently (thank you —
105ad9d3e, the mcp-discovery rewrite, the goal no-progress machinery), but several residual sites on currentmainstill command calls a catalog can never return. Each is small; we're listing them with exact locations and can send one small PR per site (or a batch) if that's easier. Some touch prompt/prompts/-adjacent content, so we're asking before opening PRs against that surface.Residual sites (verified on
5f7ca5016)crates/tui/src/core/engine/context.rs:270— "verify side effects withFileactions likereadorlist":Fileis a hidden replay-only alias (model_visible=false), so this teaches a call the model-visible catalog never offers. Same file ~:272: the handle-read line has no activation hint.crates/tui/src/commands/groups/core/agent.rs:62— /agent dispatch brief tells the child to gather evidence without any tool_search activation fallback for deferred tools.crates/tui/src/commands/groups/project/goal.rs:94— bare /goal brief cites tools without the deferred-tool activation path.crates/tui/src/prompts/text.rs:222-224—GOAL_CONTINUATION_PROMPTnames tools that can be deferred/hidden on the running surface; notool_searchfallback taught.crates/tui/src/tools/rlm.rs— three runtime output strings (redaction note ~:366, stdout-handle note ~:564, preview truncation footer:873) and the eval/fan-out:179) commanddescription()(handle_readwith no teaching of how to activate it when it isn't first-turn-visible. (Fork wove a sharedHANDLE_READ_ACTIVATION_HINTthrough all four.)crates/tui/src/tools/canonical_action.rs:217—RETIRED_TOOL_NAMES's doc claims "None of them can dispatch", but the list contains live, model-visible tools (grep_files,list_dir,file_search): the comment is stale even where the guard's intent is fine, and the companion testno_advertised_tool_teaches_a_retired_nametherefore checks the wrong invariant for those names. Either split the list (truly-retired vs. live-but-renamed) or fix the doc; today the false comment can mislead the next person into "fixing" live tools.workflows/stopship.workflow.js— separate PR coming (routed the scout throughtool_search/grep_files; skipping here).Offer
For items 1–5 we have fork-tested wording that treats every mention as "name the visible tool + teach the activation path" and would re-derive per site against current code. Item 6 is a docs/comment-level fix. Tell us which you want and in what grouping — or if you'd rather own the wording, the fork diffs are the reference.
Linked fork work
72e98fd89(Transcript scrolling gets stuck after up/down navigation #56),c3a35216e(Phase 1: Native repl block parser in core engine #41),7a7f65e8f(MCP server: better error diagnostics on connection failure #71),92427bd8d(TUI: animated 'working…' water-spout strip in the footer while a turn is live #61).