diff --git a/agent-shell-heartbeat.el b/agent-shell-heartbeat.el index 0474dd41..1a572a4f 100644 --- a/agent-shell-heartbeat.el +++ b/agent-shell-heartbeat.el @@ -84,12 +84,12 @@ Returns the heartbeat alist with the timer started." (map-put! heartbeat :heartbeat-timer (run-at-time 0 (/ 1.0 (map-elt heartbeat :beats-per-second)) (lambda () - (map-put! heartbeat :status 'busy) - (map-put! heartbeat :value - (1+ (map-elt heartbeat :value))) - (funcall (map-elt heartbeat :on-heartbeat) - (map-elt heartbeat :value) - (map-elt heartbeat :status)))))) + (when-let ((value (map-elt heartbeat :value))) + (map-put! heartbeat :status 'busy) + (map-put! heartbeat :value (1+ value)) + (funcall (map-elt heartbeat :on-heartbeat) + (map-elt heartbeat :value) + (map-elt heartbeat :status))))))) heartbeat)) (cl-defun agent-shell-heartbeat-stop (&key heartbeat) diff --git a/agent-shell.el b/agent-shell.el index 6f8bee80..d6d90a0a 100644 --- a/agent-shell.el +++ b/agent-shell.el @@ -5176,9 +5176,9 @@ See https://agentclientprotocol.com/protocol/session-modes for details." ('dots-round '("⢎⡰" "⢎⡡" "⢎⡑" "⢎⠱" "⠎⡱" "⢊⡱" "⢌⡱" "⢆⡱")) ('wide '("░ " "░░ " "░░░ " "░░░░" "░░░ " "░░ " "░ " " ")) ((pred listp) agent-shell-busy-indicator-frames) - (_ '("▁" "▂" "▃" "▄" "▅" "▆" "▇" "█" "▇" "▆" "▅" "▄" "▃" "▂"))))) - (concat " " (seq-elt frames (mod (map-nested-elt (agent-shell--state) '(:heartbeat :value)) - (length frames)))))) + (_ '("▁" "▂" "▃" "▄" "▅" "▆" "▇" "█" "▇" "▆" "▅" "▄" "▃" "▂")))) + (value (map-nested-elt (agent-shell--state) '(:heartbeat :value)))) + (concat " " (seq-elt frames (mod value (length frames)))))) (defun agent-shell--mode-line-format () "Return `agent-shell''s mode-line format.