Skip to content

Model-facing text still names tools the current environment lacks (7 residual sites) #6747

Description

@asto18089

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)

  1. 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.
  2. 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.
  3. crates/tui/src/commands/groups/project/goal.rs:94 — bare /goal brief cites tools without the deferred-tool activation path.
  4. 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.
  5. 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.)
  6. 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.
  7. 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageNew external report awaiting maintainer triage; repro, logs and version output help

    Projects

    • Status
      Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions