I agree. Before finalizing the changes, the AI could show you the diff and ask "is this what you had in mind or would you like me to change anything else?"
Are diffs really the best we can do though? Can't we come up with a better model of interaction?
I find that looking at code and looking at diffs are different mental modes, for lack of a better word. For me, parsing diffs seems to engage a different part in the brain, and is much more exhausting than reading code.
In comparison, reading code while someone makes changes to it seems to stay in the same code-mode. And I don't want to switch back and forth from code-mode to diff-mode all the time.
How about after being prompted, Copilot acts like a remote user in my code base, with its own cursor, changing the code at the speed that ChatGPT currently writes out answers? Perhaps even commenting on what it does next to it. You could still have accept/modify/reject buttons at the code change locations, but they would change the new version, not a diff.
Getting this slightly wrong will of course make you curse the whole thing to hell and back.