fix: handle array flags by expanding to multiple flag pairs #959
+22
−19
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.
Description
Fixes #949 by handling array values in CLI flags properly, using a different approach from #952.
When users provide multiple values for a flag (e.g.,
ccr code --settings valueA valueB), minimist parses it as an array. The previous code wouldJSON.stringify()the entire array, resulting in malformed command construction like:This caused errors such as:
Approach
This PR takes a different approach from #952 by keeping the original design intact while adding proper array handling:
Changes Made
✅ Array flag handling: Detects array values and expands them into separate flag-value pairs
✅ Removed
shell-quotedependency: No longer needed with proper array handling✅ Added
@types/minimist: Improved TypeScript support✅ Type safety improvements: Fixed type annotations for
envandsettingsFlagBenefits of This Approach
Testing
This fix allows commands like this to work correctly:
Related
Note: Both this PR and #952 are valid solutions. This approach preserves more of the existing architecture, while #952 simplifies the overall design. The maintainers can choose which approach better fits the project's direction.