[FIX] zsh ate the question mark before the wrapper ran

'tarbuckle opinion?' failed at '(eval):1: no matches found' — zsh expands ?, * and [ as
globs before the script is reached, and asking him a question is the natural use of the
one surface built for questions.

Three ways past it, and the wrapper's help now names all three in order of least fuss:
drop the ?, quote the phrase, or the noglob alias now in shell/.zshrc. ⚠ The alias is
listed LAST and with its limit stated, because it only helps if the calling shell is
interactive — .zshrc is not read otherwise — and that is exactly the kind of fix that
looks total and silently is not.

noglob for one command rather than 'unsetopt nomatch', which would change how every
command in the shell behaves to fix one of them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J6hZXNYSxEfZseBGTni4sf
This commit is contained in:
David F Glidden
2026-08-25 18:39:14 +02:00
co-authored by Claude Opus 5
parent bfe2ccdcd7
commit 4b3e08dc7f
2 changed files with 16 additions and 2 deletions
+8 -1
View File
@@ -205,4 +205,11 @@ typeset -U path PATH
# - Each section has clear purpose and boundaries
# - Graceful degradation when tools are missing
# - Performance considerations for different use cases
# - Modular structure for maintainability
# - Modular structure for maintainability
# Tarbuckle — call him by name with an actual question.
# zsh treats `?` (and `*`, `[`) as globs, so `tarbuckle opinion?` dies at
# "no matches found" before the wrapper is ever reached. noglob suspends filename
# generation for this command only. Not `unsetopt nomatch`, which would change how
# every command in the shell behaves to fix one of them.
alias tarbuckle='noglob tarbuckle'