                           (:job-id entry))]
     (= entry-job-id job-id)))
 
-(defcomponent deployment-entries [{:keys [selected-job entries message-id-max]} owner]
-  (render [_]
-          (let [num-displayed 100
-                start-id (max 0 (- (inc message-id-max) num-displayed))
-                displayed-msg-ids (range start-id (inc message-id-max))]
+(defcomponent log-entry-row [entry owner]
+  (render [_] 
+          (dom/tr {:key (str "entry-" (:message-id entry))
+                   :title (str (om/value entry))}
+                  (dom/td (str (:id (:args entry))))
+                  (dom/td (.fromNow (js/moment (str (js/Date. (:created-at entry))))))
+                  (dom/td (str (:fn entry))))))
+
+(defcomponent log-entries-table [entries owner]
+  (render [_]
+          (let []
             (dom/pre
              (dom/h4 "Cluster Activity")
              (table {:striped? true :bordered? true :condensed? true :hover? true}
-                    (dom/thead
-                     (dom/tr
-                      (dom/th "ID")
-                      (dom/th "Time")
-                      (dom/th "fn")))
+                    (dom/thead (dom/tr (dom/th "ID") (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))))
-                               (dom/td (.fromNow (js/moment (str (js/Date. (:created-at entry))))))
-                               (dom/td (str (:fn entry)))))))))))
+                               (map (fn [entry]
+                                      (om/build log-entry-row entry {}))
+                                    entries)))))))
 
 (defn select-job [id]
-  (println "Selecting job " id)
   (swap! app-state assoc-in [:deployment :selected-job] id))
 
 (defcomponent job-selector [{:keys [selected-job jobs]} owner]

            (dom/aside {}
                       (dom/nav (om/build job-selector (:deployment app) {}))
                       (dom/nav (om/build job-info (:deployment app) {}))
                       (dom/nav (om/build deployment-entries (:deployment app) {}))))))))
    app-state
    {:target (. js/document (getElementById "app"))}))

    (case msg-type 
      :chsk/recv
      (let [[recv-type recv-msg] msg]
        ;(println "Recv event " event)
        (msg-controller recv-type recv-msg))
      :chsk/state (when (:first-open? msg)
                    (chsk-send! [:deployment/get-listing])
