fix(auto-approval): handle heredocs safely #10718
Open
+83
−3
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 command auto-approval false positives / hangs caused by parsing heredoc bodies as shell commands and by overly broad zsh process-substitution detection.
Changes
x=(...)does not trigger it.Repro / test case
Test
cd src && npx vitest run core/auto-approval/__tests__/commands.spec.tsImportant
Fixes command parsing issues by treating heredocs as single commands and refining zsh process substitution detection, with tests added.
parseCommand()inparse-command.ts.containsDangerousSubstitution()incommands.tsto avoid false positives with Python-style assignments.commands.spec.tsto verify heredoc handling and zsh process substitution detection.parseHeredocStart()inparse-command.tsto identify heredoc starts and delimiters.This description was created by
for 9ad3492. You can customize this summary. It will automatically update as commits are pushed.