                           (dwim-shell--exec-reporter exec)
                           (dwim-shell--exec-on-completion exec))))
 
+(defun dwim-shell--filter (process string)
+  (when-let* ((exec (map-elt dwim-shell--execs (process-name process)))
+              (reporter (dwim-shell--exec-reporter exec)))
+    (progress-reporter-update reporter))
+  (comint-output-filter process string))
+
 (provide 'dwim-shell)

    (setq template (funcall post-process-template template file)))
  template)

(defun dwim-shell--filter (process string)
  (when-let* ((exec (map-elt dwim-shell--execs (process-name process)))
              (reporter (dwim-shell--exec-reporter exec)))
    (progress-reporter-update reporter))
  (comint-output-filter process string))

(defun dwim-shell--buffer-files ()
  (cond ((equal major-mode 'dired-mode)
         (dwim-shell--dired-files))
        (default-directory

          (when revert-buffer-function
            (funcall revert-buffer-function))
          (when-let* ((oldest-new-file (car (last (seq-sort #'file-newer-than-file-p
                                                            (seq-difference (dwim-shell--default-directory)
                                                                            files-before))))))
            (dired-jump nil oldest-new-file)))
        (when on-completion
