branch: elpa/aidermacs
commit 51a4e839876823330518036b482e2a282964ede0
Author: Mingde (Matthew) Zeng <matthew...@posteo.net>
Commit: Mingde (Matthew) Zeng <matthew...@posteo.net>

    Ensure aidermacs--send-command runs with a running aider session
    
    Signed-off-by: Mingde (Matthew) Zeng <matthew...@posteo.net>
---
 aidermacs-models.el |  9 ---------
 aidermacs.el        | 11 ++++++++---
 2 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/aidermacs-models.el b/aidermacs-models.el
index f60a1274da..ec24e2c730 100644
--- a/aidermacs-models.el
+++ b/aidermacs-models.el
@@ -224,19 +224,10 @@ This is useful when available models have changed."
   (setq aidermacs--cached-models nil)
   (message "Model cache cleared"))
 
-;;;###autoload
 (defun aidermacs-change-model (&optional arg)
   "Interactively select and change AI model in current aidermacs session.
    With prefix ARG, only allow setting the weak model."
   (interactive "P")
-  ;; Ensure a session is running and initialized
-  (let ((buffer-name (aidermacs-get-buffer-name)))
-    (unless (and (get-buffer buffer-name)
-                 (process-live-p (get-buffer-process buffer-name)))
-      (aidermacs-run)
-      ;; Wait briefly for the prompt to appear
-      (sit-for 1)))
-
   (unless aidermacs--cached-models
     (aidermacs--get-available-models))
   (aidermacs--select-model arg))
diff --git a/aidermacs.el b/aidermacs.el
index e684c04877..b4f02faebd 100644
--- a/aidermacs.el
+++ b/aidermacs.el
@@ -348,9 +348,14 @@ If USE-EXISTING is non-nil, use an existing buffer instead 
of creating new.
 If REDIRECT is non-nil it redirects the output (hidden) for comint backend.
 If CALLBACK is non-nil it will be called after the command finishes."
   (let* ((buffer-name (aidermacs-get-buffer-name use-existing))
-         (buffer (or (get-buffer buffer-name)
-                     (progn (aidermacs-run)
-                            (get-buffer buffer-name))))
+         (buffer (if (and (get-buffer buffer-name)
+                          (process-live-p (get-buffer-process buffer-name)))
+                     (get-buffer buffer-name)
+                   (when (get-buffer buffer-name)
+                     (kill-buffer buffer-name))
+                   (aidermacs-run)
+                   (sit-for 1)
+                   (get-buffer buffer-name)))
          (processed-command (aidermacs--process-message-if-multi-line 
command)))
     ;; Check if command may edit files and prepare accordingly
     (with-current-buffer buffer

Reply via email to