<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/modules/ai-conversations.el, branch load-graph-classify-start</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-start</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-start'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-05-16T22:39:56+00:00</updated>
<entry>
<title>feat(ai-conversations): autosave on a periodic timer</title>
<updated>2026-05-16T22:39:56+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-16T22:39:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=1fef9aed248aaf7586950475aa22849e413f1c04'/>
<id>urn:sha1:1fef9aed248aaf7586950475aa22849e413f1c04</id>
<content type='text'>
The existing autosave only fired after gptel-send returned, so a
conversation paused mid-thought wasn't on disk if Emacs crashed. I
added a buffer-local repeating timer that calls
cj/gptel--save-buffer-to-file every cj/gptel-autosave-interval seconds
(default 60) for as long as cj/gptel--autosave-active-p holds.
Toggle-off and kill-buffer-hook cancel it cleanly.

Tests cover start/stop idempotency, the active-p predicate, the
kill-buffer cleanup hook, and the toggle integration.
</content>
</entry>
<entry>
<title>feat(ai-conversations): add cj/gptel-autosave-toggle with [AS] mode-line indicator</title>
<updated>2026-05-16T06:42:30+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-16T06:42:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=a8c7e8bf822535470d1a4621030b0edd07aaccb4'/>
<id>urn:sha1:a8c7e8bf822535470d1a4621030b0edd07aaccb4</id>
<content type='text'>
`cj/gptel-autosave-enabled` flipped to t inside the save/load entry
points with no way back off short of editing the variable or
clearing the buffer, and no visible indicator that it was on.

Two pieces:

- `cj/gptel-autosave-toggle` flips the buffer-local state in the
  current GPTel buffer.  Bound to `C-; a A` via `cj/ai-keymap`
  (which-key: "toggle autosave").  When autosave is OFF and no
  filepath is configured yet, the command prompts to save the
  conversation first so a save target exists; otherwise it just
  flips the bit.
- `cj/gptel-autosave-mode-line-format` surfaces " [AS]" in the
  mode-line when autosave is on, blank when off.  Installed via a
  `gptel-mode-hook` so every GPTel buffer picks it up.  The install
  helper is idempotent.

6 new tests cover enable/disable paths, the no-filepath prompt path,
the not-a-gptel-buffer error path, the mode-line format evaluation,
and the install idempotence.
</content>
</entry>
<entry>
<title>chore: Remove redundant autoload directives from modules</title>
<updated>2025-10-27T04:06:31+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-27T04:06:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=cd64af4642fd54a4d7b7be93bfb317fc64f623a6'/>
<id>urn:sha1:cd64af4642fd54a4d7b7be93bfb317fc64f623a6</id>
<content type='text'>
Remove unnecessary autoload directives from various functions across
multiple modules, cleaning up the codebase and improving
readability. These directives were redundant and not needed for the
current project setup.
</content>
</entry>
<entry>
<title>changing repositories</title>
<updated>2025-10-12T16:47:26+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-10-12T16:47:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=092304d9e0ccc37cc0ddaa9b136457e56a1cac20'/>
<id>urn:sha1:092304d9e0ccc37cc0ddaa9b136457e56a1cac20</id>
<content type='text'>
</content>
</entry>
</feed>
