From 4945382a2b80f310becad5912e9d80aa0a7798a5 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Fri, 15 May 2026 02:14:36 -0500 Subject: chore(todo): reopen gptel-toggle and buffer-source tasks with follow-up bugs Two recent DONE tasks turned out to have follow-up issues worth tracking explicitly instead of leaving them in the closed pile. The gptel-toggle work (=M-= rebind) now triggers a make compile warning that =cj/toggle-gptel= is not known to be defined when ai-vterm.el loads. The binding still works in normal startup because ai-config.el loads later, but the cross-module load-order dependency should be made explicit via an autoload declaration plus a test that loads ai-vterm.el without preloading ai-config.el. The buffer-source extension shipped an Info-mode dispatcher that copies =info:(manual)Node= rather than the documented org-style bracket link =[[info:(manual)Node][label]]=. The output is a valid org link target but not the labeled form a Notes paste would expect. Both parent tasks move back to DOING with sub-TODOs that name the remaining work, the file/test to update, and the commands to re-run. --- todo.org | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/todo.org b/todo.org index 4c7bfed0..2fd99a29 100644 --- a/todo.org +++ b/todo.org @@ -60,8 +60,7 @@ gptel's bundled =:models= list only goes through May-2025 model IDs but the constructor passes whatever string you supply straight to the API, so newer model names work fine without a gptel upgrade. -** DONE [#B] Add gptel toggle to M-F9 :refactor: -CLOSED: [2026-05-14 Thu] +** DOING [#B] Add gptel toggle to M-F9 :refactor: Rebound =M-= from =cj/ai-vterm-pick-buffer= to =cj/toggle-gptel= in both the global keymap and =vterm-mode-map=. The pick-buffer command and its helper =cj/--ai-vterm-pick-buffer-candidates= were @@ -80,6 +79,21 @@ new function). Module commentary + the =cj/ai-vterm= docstring updated to describe the new M-F9 behavior. +*** TODO [#B] Add explicit ai-vterm -> ai-config command boundary for =cj/toggle-gptel= :bug: +=make compile= now warns from =modules/ai-vterm.el= that +=cj/toggle-gptel= is not known to be defined. The binding works in +normal startup only because =init.el= loads =ai-config= later, but +=ai-vterm.el= now has an implicit load-order dependency on a command +defined in another module. + +Recommended fix: add an interactive autoload for =cj/toggle-gptel= +near the other cross-module declarations in =modules/ai-vterm.el=, +or otherwise make the dependency explicit without requiring all of +=ai-config= at ai-vterm load time. Add/adjust a test that loads +=ai-vterm= without preloading =ai-config= and verifies =M-= is +bound to an autoloadable interactive command. Re-run =make compile= +and =make test-file FILE=test-ai-vterm--f9-in-vterm.el=. + ** DONE [#B] Modify C-; b p :feature: CLOSED: [2026-05-15 Fri] - (EWW) copy EWW url when in an EWW buffer. @@ -107,8 +121,7 @@ heading, =help-mode=, =Info-mode=, =magit-log-mode= / These need format decisions (Message-ID vs link vs subject, id link vs CUSTOM_ID vs heading text, etc.) before implementation. -** DONE [#C] Extend cj/buffer-source-functions to more modes :feature: -CLOSED: [2026-05-15 Fri] +** DOING [#C] Extend cj/buffer-source-functions to more modes :feature: Followup to =Modify C-; b p=. The first batch covered eww, elfeed-show, dired/dirvish, and doc-view/pdf-view (via the buffer-file-name fallback). These modes still need a decision + @@ -122,6 +135,21 @@ Each one is a small addition to =cj/buffer-source-functions= in =modules/custom-buffer-file.el= plus a test. Pick a format per mode, then implement. +*** TODO [#C] Make Info buffer-source output match the documented org link format :bug: +The DONE commit added an =Info-mode= dispatcher, but it copies the +bare target string =info:(manual)Node=. The task body calls for an +org-style bracket link like =[[info:(manual)Node][label]]=. The +current output is a valid org link target, but pasting it into notes +does not produce the documented labeled link form. + +Recommended fix: decide the label convention, likely the Info node +name or =(manual) Node=, then change the =Info-mode= thunk in +=modules/custom-buffer-file.el= to return the full bracketed link. +Update =test-copy-buffer-source-info-mode-formats-as-org-info-link= +to assert the bracketed value and include a case for compressed +=.info.gz= files. Re-run +=make test-file FILE=test-custom-buffer-file-copy-buffer-source.el=. + *** 2026-05-15 Fri @ 00:11:47 -0500 Brainstorm: additional buffer-source ideas Today =C-; b p= invokes =cj/copy-path-to-buffer-file-as-kill=, which only -- cgit v1.2.3