fix: disable zsh history expansion to prevent commands with ! from failing (#807) #4926
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #807
Added
setopt NO_BANG_HISTto the zsh initialization inShellIntegrationManager.This prevents zsh from interpreting the
!character as a history expansion character.Problem
When commands contain
!(like in--collectCoverageFrom="!services/refactor-code/**/*.test.ts"),zsh interprets it as history expansion and the command fails with "event not found" error,
causing Kilo Code to get stuck in a "waiting" state.
Solution
The fix adds
setopt NO_BANG_HISTto the temporary.zshrcfile created byShellIntegrationManager. This disables history expansion for non-interactive shells,
which is the desired behavior for programmatic command execution.
This is similar to how we already handle other zsh-specific issues like
PROMPT_EOL_MARKfor special characters in output.
Testing
All existing tests pass (7386 passed, 87 skipped).
🤖 Generated with Claude Code