Feature Request: Selective per-file accept/revert for Copilot CLI agent changes like `git add -p`
- Dominant language
- Shell
- Stars
- 11.2k
- Forks
- 1.9k
- Avg merge
- 14h 16m
- Merged PRs (30d)
- 6
Description
### Describe the feature or problem you'd like to solve
After Copilot CLI applies file changes in a turn, the only recovery option is `/rewind` which reverts **everything** in that turn. There is no way to selectively keep some file changes while discarding others.
### Proposed solution
1. **post-apply interactive review**: After a turn completes, offer a `/review-changes` command that lists modified files and lets you revert selected ones
2. **`/rewind --file `**: Extend `/rewind` to accept a file path argument
3. **Plan mode enhancement**: In plan mode, show actual code diffs (not just natural language descriptions) before execution, with per-file approval
4. **VS Code `/ide` integration**: When connected via `/ide`, route file-level accept/discard through VS Code's native diff editor
Any of these would be a significant improvement over the current all or nothing model
### Example prompts or workflows
After a turn applies file changes, users should be able to selectively accept or revert on a **per-file** basis and ideally **per chunk** within a file similar to `git add -p`.
Something like:
Copilot modified 5 files. Review changes?
[1] src/auth.ts - 12 lines changed [keep/revert]
[2] src/config.ts - 4 lines changed [keep/revert]
[3] tests/auth.test.ts - 28 lines changed [keep/revert]
### Additional context
### Problems
| Mechanism | Granularity | Limitation |
|---|---|---|
| Write permission prompt | Per write-call | Binary yes/no; one call can touch many files |
| `/diff` | Read-only, post-apply | Shows changes but cannot act on them |
| `/rewind` | Entire turn | All-or-nothing cannot keep partial changes |
`/rewind` is a blunt instrument - it treats a multi-file turn as atomic. Real-world agent tasks often span several files, and it's common for most changes to be correct while one file went in an unintended direction. Forcing an all-or-nothing revert actively works against iterative, confident use of the agent.
Contributor guide
Assessment
This issue has not been assessed yet.