 
     last? and not (last.type() == action.type())
 
+  estimated_time: (current_build_millis) =>
+    valid = (estimated_millis) ->
+      estimate_is_not_too_low = current_build_millis < estimated_millis * 1.5
+      estimate_is_positive = estimated_millis > 0
+
+      return estimate_is_positive and estimate_is_not_too_low
+
+    if @previous_successful_build()?
+      estimated_millis = @previous_successful_build().build_time_millis
+
+      if valid estimated_millis
+        return " of about " + moment().add('milliseconds', estimated_millis).fromNow(true)
+    ""
+
   urlForBuildNum: (num) =>
     "#{@project_path()}/#{num}"
 

    name: null
    branch: "unknown"
    previous: null
    retry_of: null
    subject: null
    parallel: null

          # build was canceled from the queue
          "canceled"
        else if @start_time()
          duration_millis = @updatingDuration(@start_time())
          CI.time.as_duration(duration_millis) + @estimated_time(duration_millis)

    # don't try to show queue information if the build is pre-usage_queue
    @show_queued_p = @komp =>
