diff options
Diffstat (limited to 'todo.org')
| -rw-r--r-- | todo.org | 33 |
1 files changed, 11 insertions, 22 deletions
@@ -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 |
