Skip to content

feat: normalize ContextManager tool arguments#346

Closed
chrisnestrud wants to merge 1 commit intocecli-dev:mainfrom
chrisnestrud:fix/context-manager-json
Closed

feat: normalize ContextManager tool arguments#346
chrisnestrud wants to merge 1 commit intocecli-dev:mainfrom
chrisnestrud:fix/context-manager-json

Conversation

@chrisnestrud
Copy link
Copy Markdown

  • add helper to coerce remove/edit/view/create args into lists, accepting JSON strings, whitespace, or single paths
  • treat empty or whitespace-only strings as empty lists so validation still triggers when nothing is requested
  • cover parser behavior, error propagation, and the escaped quote regression with dedicated tests

Rationale: recent tool calls emitted JSON-encoded lists like "["aider/coders/base_coder.py"]", which the tool previously iterated character by character. Normalizing inputs prevents mis-parsing and preserves explicit error handling when no work is specified.

- add helper to coerce remove/edit/view/create args into lists, accepting JSON strings, whitespace, or single paths
- treat empty or whitespace-only strings as empty lists so validation still triggers when nothing is requested
- cover parser behavior, error propagation, and the escaped quote regression with dedicated tests

Rationale: recent tool calls emitted JSON-encoded lists like "[\"aider/coders/base_coder.py\"]", which the tool previously iterated character by character. Normalizing inputs prevents mis-parsing and preserves explicit error handling when no work is specified.
@dwash96
Copy link
Copy Markdown
Collaborator

dwash96 commented Jan 1, 2026

Ha, while working on the rename, I ran into this. I used your implementation to add a "parse_arg_as_list" method in the aider/tool/helpers.py file so this will be in the next version definitely

@dwash96 dwash96 closed this Jan 1, 2026
@chrisnestrud chrisnestrud deleted the fix/context-manager-json branch January 5, 2026 12:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants