Skip to content

fix: correct zsh _arguments syntax in completion script#22713

Closed
Ninso112 wants to merge 2 commits into
NousResearch:mainfrom
Ninso112:fix/zsh-completion-syntax
Closed

fix: correct zsh _arguments syntax in completion script#22713
Ninso112 wants to merge 2 commits into
NousResearch:mainfrom
Ninso112:fix/zsh-completion-syntax

Conversation

@Ninso112

@Ninso112 Ninso112 commented May 9, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Fix invalid _arguments syntax in the generated zsh completion script that caused zsh to reject it with invalid argument errors
  • Add a zsh -n syntax validation test to prevent future regressions (matching existing bash/fish tests)

What changed

The zsh completion generator produced lines like:

'(-h --help){-h,--help}[Show help and exit]'

This is invalid because _arguments exclusion groups () must contain only short options, not long options with spaces. The correct syntax is:

'(-)'{-h,--help}'[Show help and exit]'

Where (-) means the option can be combined with any other option.

Why

Users with zsh shell integration get a broken completion script on every invocation of hermes completion zsh. The fix follows zsh's official completion syntax guidelines.

Closes #22686.

Ninso112 added 2 commits May 9, 2026 18:56
When a user replies using Telegram's native quote feature to select only
part of a previous message, the adapter was ignoring message.quote and
injecting the entire replied-to message as reply_to_text. This could
materially change the user's intent by exposing unrelated text to the
agent.

Now checks for message.quote (TextQuote) first and uses quote.text when
available, falling back to the full reply_to_message.text only when no
native quote exists.

Fixes NousResearch#22619
The generated zsh completion script used invalid _arguments syntax
like '(-h --help){-h,--help}[...]' which causes zsh to reject the
script with 'invalid argument' errors. The exclusion group () must
contain only short options, not long options with spaces.

Changed to '(-)'{-h,--help}'[...]' which is the correct zsh syntax
where (-) means the option can be combined with any other option.

Also added a zsh syntax validation test (zsh -n) to prevent
regressions, matching the existing bash and fish syntax tests.

Fixes NousResearch#22686
@teknium1

teknium1 commented May 9, 2026

Copy link
Copy Markdown
Contributor

Closing in favor of #22802 (salvage of #22727). The completion.py fix was correct but bundled with an unrelated Telegram quote feature. Credited in the salvage PR body. Thanks!

@teknium1 teknium1 closed this May 9, 2026
@alt-glitch alt-glitch added type/bug Something isn't working comp/cli CLI entry point, hermes_cli/, setup wizard P2 Medium — degraded but workaround exists labels May 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard P2 Medium — degraded but workaround exists type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

BUG: zsh completion script has invalid _arguments syntax

3 participants