   ;; (>!!output worker-state {:type :repl/runtime-disconnect :runtime-id runtime-id})
   (-> worker-state
       (update :runtimes dissoc runtime-id)
+      (maybe-pick-different-default-runtime runtime-id)
       ;; clean all sessions for that runtime
       (update :repl-sessions (fn [sessions]
                                (reduce-kv

                        (update :repl-sources repl-sources-as-client-resources build-state))})

  ;; (>!!output worker-state {:type :repl/runtime-connect :runtime-id runtime-id :runtime-info runtime-info})
  (update worker-state :runtimes assoc runtime-id
    {:runtime-id runtime-id
     :runtime-out runtime-out
     :runtime-info runtime-info
     :init-sent true}))

(defmethod do-proc-control :runtime-disconnect
  [worker-state {:keys [runtime-id]}]

      worker-state)))

(defmethod do-proc-control :repl-eval
  [{:keys [build-state runtimes default-runtime-id] :as worker-state}
   {:keys [result-chan input session-id runtime-id] :as msg}]
  (log/debug ::repl-eval {:session-id session-id :runtime-id runtime-id})
  (let [runtime-count (count runtimes)

        runtime-id
        (or runtime-id default-runtime-id)]

    (cond
      (nil? build-state)
