diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-15 22:15:45 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-15 22:15:45 -0500 |
| commit | 39034276542ef68e8be25bf3ff43733e237b3afa (patch) | |
| tree | 5601800d7774dcaa78cab3b8ad40aadb85eaf9f0 | |
| parent | cd1be10d4bcdb37b804e62157637e298006164dd (diff) | |
| download | dotemacs-39034276542ef68e8be25bf3ff43733e237b3afa.tar.gz dotemacs-39034276542ef68e8be25bf3ff43733e237b3afa.zip | |
chore(todo): close audit fixes, file roam captures, note gptel defer
Close reconcile-open-repos and dupre-theme-test-failures (the latter moot since dupre was retired and its test file deleted). File four roam-inbox studio/music captures. Note on the stale-elpa-gptel task that deleting the elpa copy standalone introduces a gptel-magit activation warning, so it must be paired with the gptel-magit dependency fix.
| -rw-r--r-- | todo.org | 27 |
1 files changed, 22 insertions, 5 deletions
@@ -44,11 +44,20 @@ Tags are additive. For example, a small wrong-behavior fix can be =:bug:quick:=, and a feature that requires internal restructuring can be =:feature:refactor:=. * Emacs Open Work +** TODO [#C] theme-studio: alphabetize the assignment view list below the package divider :feature:quick:solo:studio: +Sort the assignment view list alphabetically anywhere below the divider for the package views. From the roam inbox 2026-06-15. +** TODO [#C] theme-studio: calibre package doesn't color properly :bug:studio: +The calibre package preview has no elements to theme in the search list, and coloring switches to the string color on mismatched quotes. Investigate, then record a diagnosis and solution in this task before fixing. From the roam inbox 2026-06-15. +** TODO [#C] music: extract faces for music config :refactor:quick:solo: +Pull the music-config faces out to the theme (the config no longer defines faces directly): playlist name, status (paused, etc.), two mode colors per "button" (on vs off), a per-key symbol+text color, and a color for all other labels. Pairs with the 2026-06-14 face-stripping work (music-config faces were removed there and are currently undefined until the theme defines them). From the roam inbox 2026-06-15. +** TODO [#C] music: show song information in the modeline :feature: +Show basic song information in the modeline, with streaming-source support too. Write a spec for this one first. From the roam inbox 2026-06-15. ** TODO [#A] theme-studio: deploy-wip button on the browser page :feature:studio: Add a button on the theme-studio page that runs the make deploy-wip target locally (build WIP.json into the theme, live-reload the daemon). The page is served from file://, so the browser can't run make directly. Needs a local bridge: a tiny localhost helper the button POSTs to, or a watched trigger file the page writes. Pick the mechanism before building. From the roam inbox 2026-06-15. ** TODO [#A] theme-studio: cannot reassign fg color :bug:studio: Selecting the fg tile, changing its value, and clicking update errors that an fg already exists instead of updating it. The update path treats a reassign as an add. From the roam inbox. -** TODO [#A] theme-studio: remove the in-table preview column :refactor:studio: +** DONE [#A] theme-studio: remove the in-table preview column :refactor:studio: +CLOSED: [2026-06-15 Mon 20:57] Drop the per-row preview from the assignment tables and rely on the live buffer preview alone. Requires auditing every assignment view so each face in the faces column has a situationally appropriate representation in the live preview. Craig wants a reusable project workflow for that periodic audit, created before the refit so it can drive the fix. From the roam inbox. ** TODO [#A] calendar-sync drops final occurrences, resurrects cancelled meetings :bug:solo: :PROPERTIES: @@ -759,10 +768,13 @@ Ask: Reference values -- modus-vivendi: refine-changed bg #4a4a00 fg #efef80, changed bg #363300 fg #efef80. modus-operandi: refine-changed bg #fac090 fg #553d00, changed bg #ffdfa9 fg #553d00. Side-by-side legibility render: [[file:assets/2026-06-07-dupre-diff-face-legibility-compare.png][assets/2026-06-07-dupre-diff-face-legibility-compare.png]]. -** TODO [#B] dupre-theme test failures :bug:test:quick:solo: +** DONE [#B] dupre-theme test failures :bug:test:quick:solo: +CLOSED: [2026-06-15 Mon] :PROPERTIES: :LAST_REVIEWED: 2026-06-11 :END: +Moot: dupre was retired (commit 4f0a8d80) and tests/test-dupre-theme.el was deleted with it, so the 4 failures no longer exist. The assertion-fix plan below is superseded. Remaining "dupre" mentions in the suite are benign (a fake theme symbol in test-face-diagnostic; a "dupre-fixture" JSON name in test-build-theme, a separate converter task). + A full =make test= run (2026-06-07) is green across 516 of 517 files; the only failures are 4 tests in =tests/test-dupre-theme.el=, long pre-existing. Two root causes. For each, decide whether the palette or the test assertion is canonical, then fix the loser so =make test= goes fully green. Decided 2026-06-11 (Craig): #0d0b0a is the canonical background — the three drift assertions are stale, update them. org-todo stays the muted red-1 #a7502d — update the test's expected value. Both sides decided; this is now a pure assertion fix. @@ -2752,13 +2764,14 @@ configuration (=text-config=, =diff-config=, =ledger-config=, From the 2026-06 config audit: =prog-go.el:64=, =prog-c.el:73=, =prog-shell.el:77= call global =(electric-pair-mode t)= from buffer setup hooks — one Go/C/shell buffer turns on pairing in org/text everywhere (python/webdev correctly use =electric-pair-local-mode=). =prog-general.el:79-80= — =display-line-numbers-type 'relative= setq/setq-default run from the hook AFTER the mode is enabled, so the first prog buffer of a session gets absolute numbers. Local-mode for the three; move the line-number setqs to top level. The global electric-pair this turns on also paired "<" in org, stranding a ">" after "<"-key snippets (=#+end_src>=, broke cj-scan). That symptom is fixed separately (=d9c90e83=, an =electric-pair-inhibit-predicate= for "<"). This task remains the root fix: pairing should not be global at all. -** DOING [#B] reconcile-open-repos skips any repo with a dot in its name :bug:quick:solo: +** DONE [#B] reconcile-open-repos skips any repo with a dot in its name :bug:quick:solo: +CLOSED: [2026-06-15 Mon] :PROPERTIES: :LAST_REVIEWED: 2026-06-13 :END: =modules/reconcile-open-repos.el:174= — discovery regexp ="^[^.]+$"= matches only dot-free names, so =~/code/mcp.el=, =capture.el=, =google-contacts.el=, =auto-dim-other-buffers.el= etc. are never reconciled while M-P still reports "Complete." Replace with =directory-files-no-dot-files-regexp= + a hidden-dir check; add a regression test with a dotted repo name. From the 2026-06 config audit. *** 2026-06-13 Sat @ 11:01:44 -0500 Fixed: regexp swapped + hidden-dir check -=cj/find-git-repos= now iterates =directory-files-no-dot-files-regexp= (keeps dotted names, drops =.=/=..=) plus a =string-prefix-p "."= guard for hidden dirs. Regression test =test-find-git-repos-boundary-dotted-repo-name-found= (mcp.el/capture.el/plain-repo → 3 found); existing hidden-dirs-skipped test stays green; 11/11. Live daemon confirmed all six dotted repos under ~/code now discovered (mcp.el, gptel-mcp.el, capture.el, google-contacts.el, google-maps.el, auto-dim-other-buffers.el). Awaiting Craig's confirm → DONE. +=cj/find-git-repos= now iterates =directory-files-no-dot-files-regexp= (keeps dotted names, drops =.=/=..=) plus a =string-prefix-p "."= guard for hidden dirs. Regression test =test-find-git-repos-boundary-dotted-repo-name-found= (mcp.el/capture.el/plain-repo → 3 found); existing hidden-dirs-skipped test stays green; 11/11. Live daemon confirmed all six dotted repos under ~/code now discovered (mcp.el, gptel-mcp.el, capture.el, google-contacts.el, google-maps.el, auto-dim-other-buffers.el). Re-verified live 2026-06-15 (41 repos, 6 dotted); Craig confirmed. ** TODO [#B] Remove buffer-state cursor coloring :refactor: Craig directed removal (roam inbox, 2026-06-15): the cursor changing color by buffer state is confusing ("strange not knowing what your cursor should look like"). Remove cj/set-cursor-color-according-to-mode, the cj/-cursor-last-color / cj/-cursor-last-buffer defvars, and the post-command-hook + server-after-make-frame-hook registrations in ui-config.el, so the cursor uses the theme's cursor face. Keep the shared cj/buffer-status-state / cj/buffer-status-color classifier (the modeline buffer-name indicator still uses it). Before deleting tests/test-ui-cursor-color-integration.el and tests/test-ui-config--buffer-cursor-state.el, confirm which covers the shared classifier (keep) versus the cursor function (remove). Update the cursor header comment. This settles the earlier keep-vs-remove question: 7ccc3f5c's theme-driven rework is the thing to drop. @@ -2779,6 +2792,8 @@ When splitting with C-x 2 (=split-window-below=) or C-x 3 (=split-window-right=) ** TODO [#B] Stale elpa gptel shadows the local fork — likely the gptel-magit root :bug:quick:solo: =elpa/gptel-0.9.8.5= is still installed alongside the =~/code/gptel= fork (=ai-config.el:383=); package activation puts the elpa dir + autoloads on load-path, so which copy wins depends on ordering, and a mixed load (fork .el + elpa .elc) produces "impossible" bugs. =gptel-magit= (elpa) declares gptel as a dependency, so IT may be pulling the stale copy — check this first when working the open "[#B] Investigate gptel-magit not working properly" task. Fix: =package-delete= the elpa gptel + remove from .localrepo so the fork is the only copy on disk. From the 2026-06 config audit. +2026-06-15: tried deleting =elpa/gptel-0.9.8.5= standalone. The fork loaded correctly and gptel-magit still worked via use-package =:commands= autoloads, BUT package activation then printed "Unable to activate package gptel-magit / Required package gptel-0.9.8 unavailable" on every startup and test run (gptel-magit declares gptel as a package dependency that no longer resolves). Reverted. This can't be done standalone — it must be paired with the gptel-magit dependency fix (drop gptel-magit's package dep, or repackage the fork into .localrepo as gptel). Do it together with the gptel-magit investigation task. + ** TODO [#B] system-defaults: top-level server-start unguarded in batch :bug:quick:solo: =modules/system-defaults.el:140= — raw module load under =--batch= (make validate-modules on a machine with no daemon socket) starts a server from a batch process; the suite only passes because the testutil stubs it. Wrap in =(unless noninteractive ...)= — the repo's established guard for this defect class; same guard stops the =custom-file= =make-temp-file= at line 104 littering temp files per batch load. From the 2026-06 config audit. @@ -2820,10 +2835,12 @@ Build a constraint-first palette generator for Theme Studio: start from bg/fg, g ** TODO [#B] theme-studio: preview element locate (hover + click) :feature:theme-studio:spec: :spec:studio: General preview interaction: hover any element for its section / face / value, click a current-pane element to flash and jump to its assignment row, off-pane elements hover-only (not clickable). Built on a face -> owning-app registry that previews also read for cross-pane live rendering. Spec: [[id:fbcf0e20-1328-42b4-aa36-3401509e7816][theme-studio-preview-locate-spec.org]]. Prerequisite for the richer org-agenda preview. -** TODO [#B] theme-studio save button does not overwrite the current theme file :bug:studio: +** DONE [#B] theme-studio save button does not overwrite the current theme file :bug:studio: +CLOSED: [2026-06-15 Mon] :PROPERTIES: :LAST_REVIEWED: 2026-06-13 :END: +Resolved — Craig handled it 2026-06-15. From the roam inbox: the =save= button currently behaves too much like =export=. The intended workflow is: after a theme file has been opened or saved once, pressing =save= or using the save keybinding overwrites that same file instead of downloading a fresh export. If browser security prevents overwriting a previously exported download without a file handle, make that limitation explicit in the UI and reconsider whether the separate save button should remain. This needs a small product decision around export-vs-save semantics before implementation. ** TODO [#B] theme-studio seeding engine :feature:studio: |
