         menu (:ui/menu (st/get-ui-opts))
         target (.-target e)
         ]
-    (println "CLICK" button "@" (.-clientX e) "," (.-clientY e)
-      "b?" browser-contextmenu?)
+    ;; (println "CLICK" button "@" (.-clientX e) "," (.-clientY e)
+    ;;   "b?" browser-contextmenu?)
     ;; (reset! debug-target target)
     ;; (println "bubbles" (.-bubbles e)
     ;;   "cancelable" (.-cancelable e))

                  (partial max
                    (get-in edge-states [state policy]))))
              (if-not network-updates?
                (st/plans-merge-edge (assoc
                                       (dissoc edge
                                         :plans/ui-opts
                                         :edge/from :edge/to)
                                       :edge/hidden hidden)))
              (when (activity? type)
                (node-key-fn to)))))))
    (get (if (keyword-identical? policy :parallel)

(defn user-action [action]
  (println "USER-ACTION" action)
  (let [client (st/app-get :app/client)
        ui-opts (st/get-ui-opts)
        showing (:ui/show-plan ui-opts)
        show-network (:ui/show-network ui-opts)
        auto-on? (auto?)
        blank-screen? (no-plan? showing)
        {:keys [planviz remote nick type plid selection pan zoom chat
                tag node edge url tab info network-flows]} action
        action-type type
        {:keys [loaded? type corresponding]} (st/app-get-plan plid)
        plid-type type
        plid-loaded? loaded?
        {:keys [loaded?]} (st/app-get-plan corresponding)
        load-corresponding? (and corresponding (not loaded?))
        [tpn-plan htn-plan] (if (keyword-identical? plid-type :htn-network)
                              [corresponding plid]
                              [plid corresponding])
        to-show (if (and auto-on?
                      (not= remote client))
                  (or corresponding plid))
        ready? (and plid-loaded? (not load-corresponding?)
                 (= showing to-show))
        opts {:auto true}]
    (println "  blank-screen?" blank-screen? "showing" showing
      "plid" plid "plid-loaded?" plid-loaded?
      "corresponding" corresponding "loaded?" loaded?
      "tpn-plan" tpn-plan "htn-plan" htn-plan
      "to-show" to-show "ready?" ready?)
    (if ready?
      (do
        (case action-type
          :selection
          (when (and (not= remote client) auto-on?)
            (println "REMOTE SET-SELECTION" action)
            (set-selection plid selection opts)
            (if (keyword-identical? corresponding showing)
              (highlight-relevant (or nick remote))))
          :pan-zoom
