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))))