diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-28 15:29:37 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-28 15:29:37 -0400 |
| commit | 3c54def0bb2637da6b0700d72defa3a3f838909b (patch) | |
| tree | 5bdb2fe703c79193986703f63063afe685798fd6 /modules/ai-term.el | |
| parent | 7cdd9a7490e6a3d0725adcf6fea8c678fafc4416 (diff) | |
| download | dotemacs-3c54def0bb2637da6b0700d72defa3a3f838909b.tar.gz dotemacs-3c54def0bb2637da6b0700d72defa3a3f838909b.zip | |
fix(ai-term): keep agent buffers alive through the kill-all sweep
F1 (cj/dashboard-only) kills every other buffer, burying only those on the undead list. Agent buffers were never registered, so the sweep killed live agents and detached their sessions.
Agent buffers are a dynamic family ("agent [<project>]") that an exact-name list can't pre-enumerate, so undead-buffers gains a regexp list (cj/undead-buffer-regexps) and a centralized cj/--buffer-undead-p predicate. Both kill paths route through it. ai-term registers the "agent [" pattern, so every agent -- current or future, however created -- is buried rather than killed.
Diffstat (limited to 'modules/ai-term.el')
| -rw-r--r-- | modules/ai-term.el | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/modules/ai-term.el b/modules/ai-term.el index ff240b9bf..6dfb669a9 100644 --- a/modules/ai-term.el +++ b/modules/ai-term.el @@ -30,6 +30,7 @@ (require 'keybindings) ;; provides cj/register-prefix-map (C-; a) (declare-function eat "eat" (&optional program arg)) +(declare-function cj/make-buffer-pattern-undead "undead-buffers") (defvar eat-buffer-name) (defvar eat-semi-char-mode-map) @@ -516,6 +517,12 @@ repeated capture/replay drifts the dock height a couple rows per cycle." (add-hook 'window-configuration-change-hook #'cj/--ai-term-track-geometry) +;; Agent buffers ("agent [<project>]") are buried, not killed, by the +;; kill-all sweep (F1 / `cj/dashboard-only'). Register the family pattern so +;; every agent -- however and whenever created -- survives with its session. +(with-eval-after-load 'undead-buffers + (cj/make-buffer-pattern-undead "\\`agent \\[")) + (defun cj/--ai-term-reuse-existing-agent (buffer _alist) "Display-buffer action: reuse any window in this frame already showing an agent buffer. |
