anchor.diff:        (ensure-parent-exists (cookies-path buffer)))
       (setf (gethash (id buffer) (buffers *interface*)) buffer)
       (incf (total-buffer-count *interface*))
  -    (%rpc-send "buffer_make" (id buffer)
  -               `(("cookies-path" ,(namestring (cookies-path buffer)))))
  +    ;; (%rpc-send "buffer_make" (id buffer)
  +    ;;            `(("cookies-path" ,(namestring (cookies-path buffer)))))
       (unless (last-active-buffer *interface*)
         ;; When starting from a REPL, it's possible that the window is spawned in
         ;; the background and current-buffer would then return nil.
  
positive.code:        (when *use-session*
           (funcall f))))))
  
  (declaim (ftype (function (buffer string)) rpc-buffer-load))
  @export
  (defun rpc-buffer-load (buffer uri)
    (%rpc-send "buffer_load" (id buffer) uri))
  
  (declaim (ftype (function (buffer string &key (:callback function))) rpc-buffer-evaluate-javascript))
  @export
  (defun rpc-buffer-evaluate-javascript (buffer javascript &key callback)
    (let ((callback-id
            (%rpc-send "buffer_evaluate_javascript" (id buffer) javascript)))
      (setf (gethash callback-id (callbacks buffer)) callback)
      callback-id))
  
  (declaim (ftype (function (window string &key (:callback function))) rpc-minibuffer-evaluate-javascript))
  @export
  (defun rpc-minibuffer-evaluate-javascript (window javascript &key callback)
    ;; JS example: document.body.innerHTML = 'hello'
    (let ((callback-id
            (%rpc-send "minibuffer_evaluate_javascript" (id window) javascript)))
      (setf (gethash callback-id (minibuffer-callbacks window)) callback)
      callback-id))
  
  (declaim (ftype (function (window key-chord)) rpc-generate-input-event))
  @export
  (defun rpc-generate-input-event (window event)
    "For now, we only generate keyboard events.
  
negative.code:     (initialize-modes buffer)
      buffer))
  
  @export
  (defun rpc-buffer-delete (buffer)
    "Delete BUFFER from `*interface*'.
     Run BUFFER's `buffer-delete-hook' over BUFFER before deleting it."
    (next-hooks:run-hook (buffer-delete-hook buffer) buffer)
    (let ((parent-window (find-if
                          (lambda (window) (eql (active-buffer window) buffer))
                          (alexandria:hash-table-values (windows *interface*))))
          (replacement-buffer (or (%get-inactive-buffer)
                                  (rpc-buffer-make))))
      ; (%rpc-send "buffer_delete" (id buffer))
      (when parent-window
        (window-set-active-buffer parent-window replacement-buffer))
      (remhash (id buffer) (buffers *interface*))
  