Skip to content

Ask: a shell task reaches command suggestions, not the nearest capability (#446) - #447

Merged
raiseCatError merged 1 commit into
release/v0.22.0from
fix/v022-ask-suggestion-routing
Oct 19, 2026
Merged

raiseCatError merged 1 commit into
release/v0.22.0from
fix/v022-ask-suggestion-routing

Conversation

@raiseCatError

Copy link
Copy Markdown
Owner

Fixes #446 (QA F04: v0.22 physical QA A12 failed).

Cause: Ask's resolver called shell tasks unclear, so Auto let the intent model read them. Qwen3 0.6B mapped "convert every png here to webp" to files.list at 0.99999, NMSh answered "list files", and the suggestion step never ran. Reproduced with that model through the real Ask path.

Change

  • Ask recognises shell tasks it has no capability for: bulk changes to files (convert, resize, rename, "turn X into Y"…) and finding files by size, age, duplicates or a count. It answers that it doesn't run these itself. With suggestions on, the local model is asked for one command (Copy/Insert only, as before).
  • Archives keep their recipes, destructive requests stay refusals, and NMSh's own nouns (branches, panes, sessions, themes) are not shell tasks.
  • A refusal or an "Ask doesn't do this" answer is never re-read by the intent model, in Auto or Always. Always could turn "delete all my files" into a file listing.
  • Suggestions Off: the answer says where Command suggestions are. A model that declines is named instead of the answer silently falling back.

Tests: tests/askCommandSuggestionsApp.test.ts, 5 new tests that fail on 68c1cbb7, using the QA model's own answer as the intent stub. Related suites: 157/157 (all tests/ask*, intelligenceHardening, understanding, setupCoverage). Typecheck clean.

Real model, after the fix: the QA request returns a suggestion with NMSh's check and attribution. The 0.6B model's command quality is low (for example convert -density 100 -quality 100 *png* webp); NMSh labels it "changes things" and never runs it. Whether that quality is fit to advertise is a separate release-scope question, raised in #444.

Physical retest: A12 steps 1, 3, 4 and 6.

…lity (QA F04)

Physical QA (A12, Ghostty zsh, 68c1cbb): with Command suggestions set to
Local model and Qwen3 0.6B running, `/btw convert every png here to webp`
showed the folder listing instead of a suggestion. Reproduced with that
model through the real Ask path: Ask's resolver had no notion of a shell
task, so it called the request unclear; Auto then let the intent model
read it, which answered {"capability":"files.list","confidence":0.99999},
and NMSh answered that capability's canonical "list files". Suggestions
only follow what Ask cannot place, so the step never ran. "rename all
.jpeg files to .jpg" became "Install which shell?" the same way. The
existing test stubbed the intent model to say nothing, which hid it.

- Ask recognises shell tasks it has no capability for: changing files in
  bulk (convert, resize, rename, "turn X into Y"…) and finding them by
  size, age, duplicates or a count. It says it does not run these itself;
  archives keep their recipes and destructive requests stay refusals.
- A refusal or such an answer is never re-read by the intent model, in
  Auto or Always. Always could also turn "delete all my files" into a
  file listing.
- Suggestions Off: the answer says where Command suggestions are. A model
  that declines is named ("suggested no command for this") instead of the
  answer silently falling back.

Tests: tests/askCommandSuggestionsApp.test.ts, the QA model's own answer
as the intent stub, Auto and Always, nine safe tasks, and NMSh's own
nouns (branch, pane, session, theme) never taken for shell tasks.
@raiseCatError
raiseCatError merged commit d5388da into release/v0.22.0 Oct 19, 2026
12 checks passed
@raiseCatError

Copy link
Copy Markdown
Owner Author

Integrated into release/v0.22.0 at fa7ec665 (merge commits, in the order #448, #449, #456, #447, #451, #453, #455). Dispatched CI on that exact head: all 13 jobs green (run 39257608055).

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.

1 participant