@@ -2366,22 +2366,21 @@ DIFF should be in the form returned by `agent-shell--make-diff-info':
23662366 "Clean up resources.
23672367
23682368For example, shut down ACP client."
2369- (unless (derived-mode-p 'agent-shell-mode)
2370- (error "Not in a shell"))
2371- (agent-shell--cancel-idle-timer)
2372- (agent-shell--emit-event :event 'clean-up)
2373- (agent-shell--shutdown)
2374- ;; Kill any open diff buffers associated with tool calls.
2375- (map-do (lambda (_tool-call-id tool-call-data)
2376- (when-let ((diff-buf (map-elt tool-call-data :diff-buffer)))
2377- (agent-shell-diff-kill-buffer diff-buf)))
2378- (map-elt (agent-shell--state) :tool-calls))
2379- (when-let (((map-elt (agent-shell--state) :buffer))
2380- (viewport-buffer (agent-shell-viewport--buffer
2381- :shell-buffer (map-elt (agent-shell--state) :buffer)
2382- :existing-only t))
2383- (buffer-live-p viewport-buffer))
2384- (kill-buffer viewport-buffer)))
2369+ (when (derived-mode-p 'agent-shell-mode)
2370+ (agent-shell--cancel-idle-timer)
2371+ (agent-shell--emit-event :event 'clean-up)
2372+ (agent-shell--shutdown)
2373+ ;; Kill any open diff buffers associated with tool calls.
2374+ (map-do (lambda (_tool-call-id tool-call-data)
2375+ (when-let ((diff-buf (map-elt tool-call-data :diff-buffer)))
2376+ (agent-shell-diff-kill-buffer diff-buf)))
2377+ (map-elt (agent-shell--state) :tool-calls))
2378+ (when-let (((map-elt (agent-shell--state) :buffer))
2379+ (viewport-buffer (agent-shell-viewport--buffer
2380+ :shell-buffer (map-elt (agent-shell--state) :buffer)
2381+ :existing-only t))
2382+ (buffer-live-p viewport-buffer))
2383+ (kill-buffer viewport-buffer))))
23852384
23862385(defun agent-shell--shutdown ()
23872386 "Shut down shell activity."
@@ -2774,6 +2773,7 @@ variable (see makunbound)"))
27742773 (setq-local filter-buffer-substring-function #'agent-shell--filter-buffer-substring)
27752774 (agent-shell--update-header-and-mode-line)
27762775 (add-hook 'kill-buffer-hook #'agent-shell--clean-up nil t)
2776+ (add-hook 'change-major-mode-hook #'agent-shell--clean-up nil t)
27772777 (agent-shell-ui-mode +1)
27782778 (when agent-shell-file-completion-enabled
27792779 (agent-shell-completion-mode +1))
0 commit comments