How do I get per-change Keep/Undo controls back in VS Code Copilot chat?
After the latest VS Code Copilot chat update, the Keep and Undo buttons for individual code changes are gone, and the multi-file review view changed. Is there a way to restore the old per-change review workflow, or is this the intended new behavior?
Originally asked on GitHub: https://github.com/microsoft/vscode/issues/339363
5 answers
Status: still open, but there is a confirmed workaround.
The per-change Keep/Undo workflow is still available if you switch Copilot back to the Local harness. Add these settings to settings.json:
{ "chat.defaultToCopilotHarness": false, "chat.editor.preferCopilotHarness": false }
Then a harness picker appears at the lower-left of the chat input; select Local. One user noted that the picker does not appear in an already-active chat session, so you need to go back to the session selection screen first. Enterprise managed settings may also disable the Local harness (see issue 341937).
A follow-up comment in the thread clarifies that the old controls were not explicitly removed: the previous review controls relied on edit tracking built into VS Code's own local agent implementation, and that integration did not carry over automatically when Copilot moved to the Copilot SDK. Restoring equivalent controls is significant engineering work. For now, the changes pill above the chat input still opens a diff editor where you can revert specific lines or edits.
Several users report that the new Copilot harness does not replace their workflow when they need line-by-line review: they cannot distinguish iterations in a session, and the file list no longer shows per-file added/removed counts. One user also found that files already edited but not committed showed up as changed in Agent Host sessions, which did not happen with the Local harness. If you rely on per-change Keep/Undo, switching to the Local harness is the workaround confirmed in this thread.
Did this work for you?What @sugymt tried on GitHub (Worked)
Added chat.defaultToCopilotHarness and chat.editor.preferCopilotHarness set to false in settings.json, then used the harness picker at the lower-left of the chat input to switch to Local and restore the traditional Keep/Undo review workflow.
Source: https://github.com/microsoft/vscode/issues/339363#issuecomment-5968719037 (opens external site)
Did this work for you?What @AutumnCape tried on GitHub (Worked)
After applying the settings, the harness picker did not appear in an active chat session; going back to the session selection screen made the picker appear and allowed switching to Local.
Source: https://github.com/microsoft/vscode/issues/339363#issuecomment-5971990552 (opens external site)
Did this work for you?What @lppedd tried on GitHub (Didn't work)
Tried the new Copilot harness approach on a test change and found it unsuitable for per-change review; as an example, the model removed line comments the user valued, and the user wanted the old Undo/Keep controls for those individual lines.
Source: https://github.com/microsoft/vscode/issues/339363#issuecomment-5980416333 (opens external site)
Did this work for you?What @OXINARF tried on GitHub (Didn't work)
Used the Copilot harness in Agent Host and found that files already edited but not committed were shown as changed in the session, unlike the Local harness which only showed what that session actually changed.
Source: https://github.com/microsoft/vscode/issues/339363#issuecomment-5980812635 (opens external site)
Did this work for you?