          ;; TODO: This seems like a pretty important detail
          [:chsk/uidport-close _] (log/error "Remote port closed: need to clean up its resources")
          [:chsk/ws-ping _] (ping this ev-msg)
+         [:cljs/load-ns _] (request-ns-load! this ?data ?reply-fn)
          [:frereth/blank-slate _] (initiate-auth! this ev-msg)
-         [:frereth/load-ns _] (request-ns-load! this ev-msg)
          [:frereth/pong _] (forward this ev-msg)
          [:frereth/response _] (log/info "Response from renderer:\n"
                                          (util/pretty ?data))

           event-loop
           (async/go
             (loop []
               (log/debug "Top of websocket event loop"  #_(util/pretty {:stopper stopper
                                                                         :receiver rcvr
                                                                         :ws-controller ws-controller
                                                                         :web-sock-handler ((complement nil?) web-sock-handler)}))
               ;; TODO: I'm pretty sure I have 5 minutes defined somewhere useful
               (let [t-o (async/timeout (* 1000 60 5))
                     [v ch] (async/alts! [t-o stopper rcvr ws-controller])]

                   (do
                     (let [event (-> v :event first)]
                       (when-not (= event :chsk/ws-ping)
                         ;; Handle the ping, but don't log about it: this happens far too often
                         ;; to spam the logs with the basic fact
                         (log/debug "Message to handle:\n" (util/pretty (select-keys v [:client-id :connected-uids :uid :event])))))
                     (try
