         session-client (repl/client-session repl-client :session session-id)
         responses-promise (promise)]
     (.setHistoryActionFn repl-view history-action-fn)
+    
+    ;; TODO need to make client-session accept a single arg to avoid
+    ;; dummy message sends
+    (handle-responses repl-view log-panel nil (session-client {:op "describe"}))
+    
     (comp (partial eval-expression repl-view log-panel session-client)
       (fn [expr add-to-log?]
         (reset! retained-input nil)

                (if (log-styles k)
                  (log log-component v k)
                  (CCWPlugin/log (str "Cannot handle REPL response: " k (pr-str resp)))))
              ;(CCWPlugin/log (str resp))
              (doseq [status status]
                (case status
                  "interrupted" (log log-component (eval-failure-msg status expr) :err)

(defn eval-expression
  [repl-view log-component client expr]
  (try
    (repl/message client
      (if (map? expr)
        expr
        {:op :eval :code expr :ns (.getCurrentNamespace repl-view)}))  
    (catch Throwable t
      (CCWPlugin/logError (eval-failure-msg nil expr) t)
      (log log-component (eval-failure-msg nil expr) :err))))
