Summary
There is a frontend state leakage issue in the Antigravity composer. When draft text is cut (Ctrl+X) in one conversation and you switch to another conversation, pressing Ctrl+Z (Undo) restores the cut text from the previous conversation into the active conversation’s input field.
Environment
- Antigravity Version:
v2.17.0 - OS: Windows 10 Pro
- Client: Desktop App & Web Client
Steps to Reproduce
- Open Conversation A.
- Type some draft text into the composer input field.
- Select the text and cut it with
Ctrl+X(input becomes empty). - Switch to Conversation B using the left sidebar.
- In Conversation B’s empty input field, press
Ctrl+Z(Undo).
Actual Result
The text previously cut from Conversation A is restored directly into Conversation B’s composer!
Impact & Risk
- Violation of the Principle of Least Astonishment:
Ctrl+Zis universally expected to be local to the current active view/document. - Accidental Prompt / Secret Contamination: If a user drafts proprietary code, database credentials, or private logic in a private project, decides not to submit and cuts it, switching to a public/different conversation and accidentally pressing
Ctrl+Z+ Enter can inadvertently leak sensitive data into an unrelated session’s model transcript.
Root Cause & Suggested Fix
The editor component (e.g. ProseMirror / Lexical / Monaco) is reused across conversation switches without resetting its internal UndoManager history stack.
Suggested Fix:
- Call
editor.clearHistory()/ reset the undo stack on route/conversation switch (onConversationChange), OR - Scope the undo/redo history state per
conversation_id.