                            (merge (map #(listen-el (gdom/getElement %) "click")
                                        (keys cbfg.world.lane/cmd-handlers))))
               expand-ch (listen-el (gdom/getElement (str el-prefix "-html")) "click")
-              prog (get-el-value "prog")
-              prog-js (str "with (cbfg.world.t1) {" prog "}")
+              prog-in (get-el-value "prog")
+              prog-js (str "with (cbfg.world.t1) {" prog-in "}")
               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-base)

          (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-curr [:clients (:client msg) :req-ch])]
                        (aput cmd-dispatch-loop client-req-ch msg))
                      (recur (inc num-dispatches))))
          (println :prog-res prog-res)

                          ;   :net-connect-ch => ch
                          ;   :res-ch => ch }

(def prog-frame ; The last / current prog-frame.
  (atom {:servers {}    ; { server-addr => ports }.
         :clients {}})) ; { client-addr => client-info }.

(def prog-frame-hover (atom nil))

(def prog-history (atom [])) ; Each event is [ts label @prog-frame].

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

(defn render-prog-frame [prog-frame owner]
  (apply dom/ul nil
         (map (fn [[k v]] (dom/li nil (str k ":" (count v))))
              prog-frame)))

(defn on-event-focus [ts label prog-frame]
  (reset! prog-frame-hover prog-frame)
  (.add gdom/classes (gdom/getElement "world-container") "hover"))

(defn on-event-blur []
  (reset! prog-frame-hover nil)
  (.remove gdom/classes (gdom/getElement "world-container") "hover"))

(defn render-events [app owner]
  (apply dom/ul nil
         (map (fn [[ts label prog-frame]]
                (dom/li #js {:onMouseEnter #(on-event-focus ts label prog-frame)
                             :onMouseLeave #(on-event-blur)}
                        (str ts (apply str label) prog-frame)))
              app)))

(defn render-clients [app owner]
