Function: eca-chat--handle-open-response

eca-chat--handle-open-response is a natively compiled function defined in eca-chat.el.

Signature

(eca-chat--handle-open-response SESSION FROM-BUFFER CHAT-ID RESPONSE)

Documentation

Hydrate CHAT-ID from chat/open RESPONSE for SESSION.

FROM-BUFFER is the buffer where the resume command started.

Source Code

;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-chat.el
(defun eca-chat--handle-open-response
    (session from-buffer chat-id response)
  "Hydrate CHAT-ID from chat/open RESPONSE for SESSION.
FROM-BUFFER is the buffer where the resume command started."
  (eca-chat--finish-opening session chat-id)
  (cond
   ((not (eca-chat--open-response-found-p response))
    (user-error "Server could not open chat %s" chat-id))
   ((plist-get response :error)
    (user-error
     "Server could not open chat %s: %s"
     chat-id
     (plist-get (plist-get response :error) :message)))
   ((not (buffer-live-p (eca-get (eca--session-chats session) chat-id)))
    (user-error "Resume: no buffer was registered for chat %s" chat-id))
   (t
    (let ((chat-buffer (eca-get (eca--session-chats session) chat-id)))
      (when (plist-member response :selection)
        (eca-chat--apply-selection-snapshot
         (plist-get response :selection)
         chat-buffer))
      (setf (eca--session-last-chat-buffer session) chat-buffer)
      (eca-chat--with-current-buffer chat-buffer
        (when-let* ((title (plist-get response :title)))
          (setq-local eca-chat--title title)
          (eca-chat--invalidate-tab-line-cache session))
        (eca-chat--apply-history-meta (plist-get response :meta))
        (eca-chat--refresh-load-older-control)
        (eca-chat--protect-non-prompt))
      (eca-chat-open session)
      (eca-chat--kill-empty-welcome-buffer
       session from-buffer chat-buffer)
      chat-buffer))))