diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-21 20:19:14 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-21 20:38:05 -0400 |
| commit | c38683f13cf361adc93b72c1e87244a0153b2387 (patch) | |
| tree | cf9d2d8abf282a7915a804d35aa9e7b5e0226e9b /modules/external-open.el | |
| parent | 89477ad8ae5cbfc7f526b80c70b9baa11ee1cd4f (diff) | |
| download | dotemacs-c38683f13cf361adc93b72c1e87244a0153b2387.tar.gz dotemacs-c38683f13cf361adc93b72c1e87244a0153b2387.zip | |
feat(ai-vterm): add graceful agent close on M-f9 / C-S-f9
cj/ai-vterm-close tears an agent down cleanly: it kills the agent's tmux session (stopping the process), removes the vterm window when it isn't the only one in the frame, then kills the buffer. It targets the current agent buffer, the sole live agent, or prompts among several, and confirms before killing since that interrupts work in progress.
I also folded the whole F9 family onto ai-vterm. M-f9 used to run cj/toggle-gptel, but gptel is broken right now (the local fork doesn't load, so gptel-make-anthropic is void), and grouping every ai-vterm command under F9 reads better anyway. M-f9 is the primary close binding. C-S-f9 is a second binding that the Wayland/PGTK layer may swallow on some machines.
I covered it with 7 tests over the tmux-kill helper, the per-buffer teardown, and target selection, mocking process-file and the prompt at the boundary.
Diffstat (limited to 'modules/external-open.el')
0 files changed, 0 insertions, 0 deletions
