Keep review comment editor open while interacting with the diff
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What variant of Codex are you using?
App
What feature would you like to see?
This is a UX improvement request for composing review annotations.
The main issue is not simply that an annotation editor can eventually be dismissed when the user interacts outside of it. The deeper problem is that the current interaction model treats writing an annotation as a relatively atomic action: open the editor, already know what you want to say, write it, confirm it, and move on.
That model feels particularly restrictive in Codex, because this is not only a traditional code-review workflow. It is also a conversation between a human and an agent.
In a conversation, I do not necessarily have a fully formed statement before I start responding. Very often, I develop the argument while interacting with what the agent produced. I may start writing an annotation, realize that I need to verify something, reread another part of the agent's response, inspect the diff, copy some context, compare another change, and then return to the annotation with a clearer or even different conclusion.
In other words, writing the annotation is part of the reasoning process itself.
The current UX does not give that reasoning process much room. It effectively encourages me to either already know exactly what I want to say and commit the annotation, or avoid leaving the editor until I do.
That is a significant limitation for a human-agent interaction. A discussion should support forming, testing, revising, and sometimes abandoning a thought. It should not require every piece of feedback to already be finalized before I interact with the rest of the conversation.
There is already useful visual feedback when interacting outside the annotation editor, so an accidental click does not necessarily dismiss it immediately. However, this only partially solves the problem. If my attention is on selecting text, rereading another response, or inspecting the diff, I may not notice that visual warning at all.
As a result, some of my attention has to remain on protecting the annotation from the UI:
Did I confirm this annotation already?
Is it safe to interact with something else?
Do I need to save it before copying this text?
Could I lose what I have already written?
This is UI bookkeeping that competes directly with the actual thinking process.
It is especially uncomfortable because losing an in-progress annotation does not appear to have an obvious undo or history mechanism. Therefore, even if data loss is relatively difficult to trigger accidentally, the user still has to think about the possibility.
I think a cleaner model would be to separate persistence from focus / visual state.
The contents of an annotation could be continuously autosaved while the user edits it. Interacting with the diff, chat, another annotation, or other surrounding content would then have no effect on whether the text is preserved.
Under such a model, the existing checkmark would not need to mean “save this annotation”. It could instead mean something closer to “done editing / collapse”.
This also avoids introducing a complicated additional draft-management workflow. The user should not need to keep track of which annotations are saved drafts, which are unfinished, and which need another explicit persistence action before submitting the overall review.
The latest contents of each annotation could simply remain persisted automatically.
If several annotations are being worked on, they do not all need to remain visually expanded. Starting or focusing another annotation could collapse the previous one while preserving its latest contents. The important distinction is:
losing focus or collapsing an editor should not mean losing the thought being developed inside it.
The mental model I would expect is:
I can start expressing an idea, explore the agent's response while I am still forming that idea, inspect or copy relevant context, revise my position, work on another annotation, and return later without having to think about whether my text is safe.
That feels much closer to an actual human-agent discussion.
The UI should protect the user's unfinished thought and let them concentrate on reasoning and formulating feedback, rather than requiring them to manage the lifecycle of the editor while they are still deciding what they want to say.
Additional information
This request is related to, but different from, a few existing review-comment issues:
#28890 — comment input resets while a previous job is running
#30761 — unsent review comments are lost after reload
#29613 — accidental deletion after submitting a local review comment
This request is specifically about the interaction model while composing a comment: users should be able to click, select, and copy content from the diff without the comment editor being dismissed.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue does not identify files, tests, or an entry point. Start by locating the App's review annotation editor and tracing how focus changes affect its contents; done means interacting with the diff or another annotation preserves unfinished text and allows returning to it later.
Written by the indexing model from the issue text.
Assessment
- Domain
- design
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100