        (map #(assoc-in % [:key] (swap! line-num inc)))))
 
 (defn- log-handler
-  [service-id task-id]
+  [service-id task-id since]
   (ajax/get
     (routes/path-for-backend :service-logs {:id service-id})
     {:state      [:fetching]
-     :on-success (fn [{:keys [response]}]
-                   (let [logs (filter-logs task-id response)]
-                     (reset! last-glow (count logs))
-                     (state/update-value [:initialized] true state/form-state-cursor)
-                     (state/set-value logs state/form-value-cursor)))
-     :on-error   #(state/update-value [:error] true state/form-state-cursor)}))
+     :params     (when since {:since since})
+     :on-success (fn [{:keys [origin? response]}]
+                   (when origin?
+                     (let [logs (filter-logs task-id response)]
+                       (reset! last-glow (count logs))
+                       (state/update-value [:initialized] true state/form-state-cursor)
+                       (state/set-value logs state/form-value-cursor))))
+     :on-error   (fn [{:keys [origin?]}]
+                   (when origin?
+                     (state/update-value [:error] true state/form-state-cursor)))}))
 
 (defn- log-append-handler
-  [service-id task-id from-timestamp]
+  [service-id task-id since]
   (ajax/get
     (routes/path-for-backend :service-logs {:id service-id})
     {:state      [:fetching]
-     :params     (if from-timestamp {:from from-timestamp})
-     :on-success (fn [{:keys [response]}]
-                   (state/set-value (-> (state/get-value state/form-value-cursor)
-                                        (concat (filter-logs task-id response))) state/form-value-cursor))}))
+     :params     (if since
+                   {:since (-> since (time/to-unix) (inc))}
+                   {:since "1m"})
+     :on-success (fn [{:keys [origin? response]}]
+                   (when origin?
+                     (state/set-value (-> (state/get-value state/form-value-cursor)
+                                          (concat (filter-logs task-id response))) state/form-value-cursor)))}))
 
 (defn- init-form-state
   []

(def mixin-refresh-form
  (mixin/refresh-form
    (fn [{{:keys [id taskId]} :params}]
      (when (not (:fetching (state/get-value state/form-state-cursor)))
        (log-append-handler id taskId (-> (state/get-value state/form-value-cursor)
                                          (last)
                                          :timestamp))))))

(def mixin-init-form
  (mixin/init-form
    (fn [{{:keys [id taskId]} :params}]
      (init-form-state)
      (service-handler id)
      (log-handler id taskId))))

(rum/defc line < rum/static [service item index]
  [:div
   [:a.log-info {:href (routes/path-for-frontend :service-task-log {:id (:serviceName service) :taskId (:task item)})}
    (str (subs (:task item) 0 7))]
   [:span {:class (if (< @last-glow index)
                    (do (swap! last-glow inc)

  (reset! last-scroll 0)
  (reset! line-num 0)
  (state/set-value {:filter      {:predicate ""}
                    :history     "15m"
                    :initialized false
                    :fetching    false
                    :autoscroll  false
