Skip to content

docs(roadmap): add #452 — claw models/list/help/--help falls through to prompt dispatch (prompt misdelivery, sibling of #78)#3065

Open
Yeachan-Heo wants to merge 1 commit into
mainfrom
docs/roadmap-452-models-falls-through-to-prompt
Open

docs(roadmap): add #452 — claw models/list/help/--help falls through to prompt dispatch (prompt misdelivery, sibling of #78)#3065
Yeachan-Heo wants to merge 1 commit into
mainfrom
docs/roadmap-452-models-falls-through-to-prompt

Conversation

@Yeachan-Heo
Copy link
Copy Markdown
Contributor

ROADMAP pinpoint #452 — prompt misdelivery

Dogfooded for the 2026-05-24 05:00 Clawhip pinpoint nudge (message 1507971434704797716).

Repro (fully clean isolated env: HOME=/tmp/iso2/home with {} settings, fresh /tmp/iso2/proj git-init'd workspace, stdin=/dev/null)

$ env -u ANTHROPIC_API_KEY -u ANTHROPIC_AUTH_TOKEN HOME=/tmp/iso2/home \
    timeout 8 ./rust/target/debug/claw models list </dev/null
[error-kind: missing_credentials]
error: missing Anthropic credentials; export ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY before calling the Anthropic API …

The missing_credentials envelope comes from the Anthropic provider path — proving that the string models list was dispatched to the LLM as a user prompt instead of being handled locally.

With credentials present, every spelling (models list, bare models, models help, models --help) shows only the LLM "Thinking…" spinner ANSI on stdout and never returns within an 8s budget:

stdout hex: \x1b[38;5;12m⠋ 🦀 Thinking…\x1b[0m

Code evidence

models dispatch is grep-clean across rust/crates/:

$ git grep -nE 'CliAction::Models|"/models"|"models"' rust/
(0 hits)

$ git grep -nE 'CliAction::Plugins' rust/crates/rusty-claude-cli/src/main.rs
356, 891, 10153, 10158, 10167, 10180, 10193  ← wired correctly

So models is the analogous unrouted command exactly the way plugins was before #78 landed.

Why distinct from existing items

Why it matters

models list is the canonical model-registry discovery spelling across competing CLIs (gh models list, openai api models.list, codex models). A claw or operator who reaches for it before deciding --model <alias> cannot discover what models exist, cannot validate an alias before paying for a prompt, and — worst case — burns provider tokens on a meaningless completion. The cost-of-doing-nothing is real spend, not just opacity.

Required fix shape (full detail in ROADMAP entry)

(a) Add CliAction::Models { action: ModelsAction } with List, Show, Help variants in parse_args next to CliAction::Plugins; (b) implement models list to return resolved provider registry merged from built-ins + modelProviders.* profiles; (c) static bounded help for models --help / models help; (d) mirror /models REPL command; (e) regression coverage (parses_models_subcommand) proving every spelling resolves to CliAction::Models and never to CliAction::Prompt.


[repo owner's gaebal-gajae (clawdbot) 🦞]

…to prompt dispatch (prompt misdelivery, sibling of #78)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants