feat(gui): track VSCode diff process, close it when patch modal closes
- Store _vscode_diff_process after launching external editor - Add _close_vscode_diff() helper to terminate the process - Call _close_vscode_diff() when Apply Patch or Reject is clicked
This commit is contained in:
@@ -2201,8 +2201,10 @@ class App:
|
||||
imgui.same_line()
|
||||
if imgui.button("Apply Patch"):
|
||||
self._apply_pending_patch()
|
||||
self._close_vscode_diff()
|
||||
imgui.same_line()
|
||||
if imgui.button("Reject"):
|
||||
self._close_vscode_diff()
|
||||
self._show_patch_modal = False
|
||||
self._pending_patch_text = None
|
||||
self._pending_patch_files = []
|
||||
@@ -2252,9 +2254,18 @@ class App:
|
||||
self._patch_error_message = "Failed to launch external editor"
|
||||
else:
|
||||
self._patch_error_message = None
|
||||
self._vscode_diff_process = result
|
||||
except Exception as e:
|
||||
self._patch_error_message = str(e)
|
||||
|
||||
def _close_vscode_diff(self) -> None:
|
||||
if hasattr(self, '_vscode_diff_process') and self._vscode_diff_process:
|
||||
try:
|
||||
self._vscode_diff_process.terminate()
|
||||
except Exception:
|
||||
pass
|
||||
self._vscode_diff_process = None
|
||||
|
||||
def request_patch_from_tier4(self, error: str, file_context: str) -> None:
|
||||
try:
|
||||
from src import ai_client
|
||||
|
||||
Reference in New Issue
Block a user