aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--todo.org33
1 files changed, 11 insertions, 22 deletions
diff --git a/todo.org b/todo.org
index 63435af00..1c31ded33 100644
--- a/todo.org
+++ b/todo.org
@@ -58,8 +58,12 @@ Tags are additive. For example, a small wrong-behavior fix can be
** TODO [#B] Codebase refactoring program — remaining batch :refactor:solo:
Resumes the full-codebase refactoring scan run of 2026-06-20 (8-agent fan-out over
modules/ + scripts/theme-studio/). The goal: apply every scan finding except the
-won't-do items, one focused refactor per commit. 20 done and pushed this session
-(see =.ai/sessions/= for the 2026-06-20 log); 13 remain, listed below.
+won't-do items, one focused refactor per commit. 25 done and pushed across the
+2026-06-20 sessions (see =.ai/sessions/= for the logs); 8 remain, listed below.
+The 5 medium extractions are done (calibredb-epub nov helpers fccf29b0, ai-term
+toggle-off 62fee96b, calendar-sync exception parser 23f405b4, dirvish playlist-target
+a1ca2fb0, custom-case title-case-word 4cc9ca0b); the 2 big single-file and 6
+theme-studio items below remain.
*** Working protocol (apply to every item)
- TDD: write/keep a failing-then-green test; harvest new test seams the refactor opens.
@@ -83,26 +87,11 @@ won't-do items, one focused refactor per commit. 20 done and pushed this session
(the run-a-formatter-over-the-buffer helper). Reuse it for any further
format-region duplicates.
-*** Remaining — medium extractions
-- calibredb-epub-config.el: =cj/nov-update-layout= (~29 lines, nesting 5) — extract
- a render-preserving-position helper + a margin/fringe helper; also the =#E8DCC0=
- sepia literal repeated 3x in =cj/nov-apply-preferences= → a local binding. Visual;
- verify with the reload-and-verify loop.
-- ai-term.el: =cj/ai-term= toggle-off pcase arm (~50 of its ~76 lines) — extract the
- teardown into =cj/--ai-term-toggle-off (win)=; and the 3x "switch window to
- most-recent non-agent buffer" idiom (lines ~813-817, 839-843, 884-887) →
- =cj/--ai-term-swap-to-working-buffer=. Behavior-sensitive window logic; existing
- tests test-ai-term--single-window-toggle / --collapse-split are the net.
-- calendar-sync.el: =calendar-sync--collect-recurrence-exceptions= (~457-504, nesting
- 5, a 14-binding let*) — extract =calendar-sync--parse-exception-event (event-str)=
- returning the exception plist; the dolist body becomes a thin puthash. Has a
- dedicated test (characterization net).
-- dirvish-config.el: =cj/dired-create-playlist-from-marked= (nesting 5) — extract a
- pure =cj/--playlist-resolve-target= (the name-validate + overwrite-prompt loop),
- leaving filter → resolve → write.
-- custom-case.el: =cj/title-case-region= (~71 lines, cyclomatic ~16) — write a
- characterization test FIRST, then extract =cj/--title-case-word= (the per-word
- decision); main loops boundaries and delegates.
+*** DONE — medium extractions (2026-06-20 afternoon)
+All five shipped: calibredb-epub nov re-render/centering helpers (fccf29b0);
+ai-term toggle-off teardown + working-buffer swap (62fee96b); calendar-sync
+per-event exception parser (23f405b4); dirvish playlist-target resolution
+(a1ca2fb0); custom-case per-word title-case decision (4cc9ca0b).
*** Remaining — big single-file (characterization tests first)
- custom-comments.el: the divider/box render-skeleton duplication — simple-divider vs