          (map (fn [[k v]] (dom/li nil (str k ":" v))) app)))
 
 (defn on-event-focus [snapshot-ts event-ts]
-  (when-let [ss (get-in @run-history [:snapshots snapshot-ts])]
+  (when-let [ss (get-in @prog-history [:snapshots snapshot-ts])]
     (reset! run-world-hover ss)
     (.add gdom/classes (gdom/getElement "world-container") "hover")))
 

; --------------------------------------------

(defn kv-server [server-addr & ports]
  (let [world (:world @prog-world)
        done (atom false)]
    (act server-init world
         (doseq [port ports]
           (when-let [listen-result-ch (achan server-init)]
             (aput server-init (:net-listen-ch @prog-world)
                   [server-addr port listen-result-ch])
             (when-let [[accept-ch close-accept-ch] (atake server-init listen-result-ch)]
               (cbfg.world.net/server-accept-loop world accept-ch close-accept-ch)
               (swap! prog-world #(update-in % [:servers server-addr] conj port)))))
         (reset! done true))
    (wait-done done)))

(defn kv-client [client-addr server-addr server-port]
  (let [world (:world @prog-world)
        done (atom false)]
    (act client-init world
         (let [req-ch (cbfg.world.net/client-loop world (:net-connect-ch @prog-world)
                                                  server-addr server-port
                                                  client-addr (:res-ch @prog-world))]
           (swap! prog-world #(assoc-in % [:clients client-addr]
                                        {:client-addr client-addr
                                         :server-addr server-addr
                                         :server-port server-port
                                         :req-ch req-ch}))
           (reset! done true)))
    (wait-done done)))

              prog-js (str "with (cbfg.world.t1) {" prog "}")
              prog-res (try (js/eval prog-js) (catch js/Object ex ex))]
          (world-cmd-loop world cbfg.world.lane/cmd-handlers cmd-ch
                          req-ch (:res-ch (:prog-world @prog-history))
                          vis-chs world-vis-init el-prefix)
          (act-loop cmd-dispatch-loop world [num-dispatches 0]
                    (when-let [msg (atake cmd-dispatch-loop req-ch)]
                      (when-let [client-req-ch
                                 (get-in @prog-history
                                         [:prog-world :clients (:client msg) :req-ch])]
                        (aput cmd-dispatch-loop client-req-ch msg))
                      (recur (inc num-dispatches))))
          (println :prog-res prog-res)
