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
- post-apply interactive review: After a turn completes, offer a
/review-changes command that lists modified files and lets you revert selected ones
/rewind --file <path>: Extend /rewind to accept a file path argument
- Plan mode enhancement: In plan mode, show actual code diffs (not just natural language descriptions) before execution, with per-file approval
- 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.
Describe the feature or problem you'd like to solve
After Copilot CLI applies file changes in a turn, the only recovery option is
/rewindwhich reverts everything in that turn. There is no way to selectively keep some file changes while discarding others.Proposed solution
/review-changescommand that lists modified files and lets you revert selected ones/rewind --file <path>: Extend/rewindto accept a file path argument/ideintegration: When connected via/ide, route file-level accept/discard through VS Code's native diff editorAny 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
/diff/rewind/rewindis 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.