 (defonce app-state 
   (atom {:ready? false
          :deployments {}
-         :deployment {:jobs []
+         :deployment {:tracking-id nil
+                      :jobs []
                       :selected-job nil
-                      :entries []}}))
+                      :message-id-max nil
+                      :entries {}}}))
 
 (let [{:keys [chsk ch-recv send-fn state]}
       (sente/make-channel-socket! "/chsk" {:type :auto})]

                     (dom/th "ID")
                     (dom/th "Time")))
                 (dom/tbody
                   (for [job (reverse (time (sort-by :created-at (vals jobs))))] 
                     (let [job-id (:id job)] 
                       (dom/tr {; make this a class
                                :style {:background-color (if (= job-id selected-job)

                       (dom/th "Time")
                       (dom/th "fn")))
                   (dom/tbody ;{:height "500px" :position "absolute" :overflow-y "scroll"}
                              ; Entries may not exist if they have come in out of order from sente, 
                              ; thus we only keep the not nil entries
                              (for [entry (keep entries (reverse displayed-msg-ids))] 
                                (dom/tr {:key (str "entry-" (:message-id entry))
                                         :title (str (om/value entry))}
                                        (dom/td (str (:id (:args entry))))
