diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-24 19:17:23 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-24 19:17:23 -0400 |
| commit | 1c6e7013389ed2a22255cbaf914cb7371c8f8161 (patch) | |
| tree | f9b749445d2daa9381db2b213eda5eb2f8c771c2 /todo.org | |
| parent | d6b10d04b4d3f5a74bdb6beb001824b97fc98969 (diff) | |
| download | dotemacs-1c6e7013389ed2a22255cbaf914cb7371c8f8161.tar.gz dotemacs-1c6e7013389ed2a22255cbaf914cb7371c8f8161.zip | |
chore(todo): log controls.js extraction (tier 2)
Diffstat (limited to 'todo.org')
| -rw-r--r-- | todo.org | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -381,7 +381,9 @@ Parent grouping the open theme-studio / theming issues; close each child indepen *** 2026-06-24 Wed @ 18:09:26 -0400 theme-studio tier-1 simplifications landed Behavior-preserving simplifications from the four-agent refactor/simplify assessment, all test-verified (full suite green). Landed: syncMockHeight + syncPkgHeight merged into syncPaneHeight(tableId, paneId); the dead generatorHues "manual" branch deleted (identical to fallback); locateInfoLine removed (fn + export + test, orphaned this session); the redundant pkgbody guard dropped (buildPkgTable self-guards); displayHex/displayName closures inlined; paintUI now calls worstCellHtml; generate.py's two nerd-icons loaders share _load_nerd_icons_artifact (sentinel keeps the null-file edge exact); face_coverage.classify rewritten with named locals (with a new characterization test). Two agent findings were wrong and skipped on verification: LOCATE_REG is live (read by previewSpan), and normalizePaletteEntryCore doesn't exist (hallucinated). Skipped on judgment: a RELEASED_BOX constant (mutable-dict aliasing hazard, only ~10 sites) and inlining apply_hover_box_default (its why-docstring earns the named function). Open for Craig: previewFaceAttrs (app-core.js) is test-only with a stale "the gate calls it" docstring — confirm delete vs keep. *** TODO [#D] theme-studio app.js module split (tier 2) :refactor:studio: -Optional structural change. app.js (927 lines) holds seven responsibility clusters. Split into controls.js / picker.js / locate.js / io.js / tables.js — near-zero runtime risk since generate.py concatenates source by token. Navigability win only; do it only if scrolling app.js becomes real friction. +Optional structural change, navigability-only. The highest-value extraction landed (see below): controls.js. The remaining clusters (picker, locate, io, tables) are further optional splits with diminishing returns — do them only if scrolling app.js is still real friction, following the same token-at-position pattern controls.js proved. +**** 2026-06-24 Wed @ 19:16:47 -0400 Extracted the control factories to controls.js +Cut the contiguous dropdown / detail-editor / expander cluster (the custom color dropdown state + closeColorDropdown + mkColorDropdown through mkExpander, 205 lines) from app.js into controls.js, spliced back at a CONTROLS_J token via generate.py. app.js dropped 927 to 721 lines. The token sits at the exact extraction point, so the assembled page is byte-identical (just relocated source) — full suite green with no gate changes. mkBoxControl (a lone factory elsewhere in app.js) stayed put; it can join controls.js later. *** TODO [#A] theme-studio: consistent assignment-view table columns :feature:studio:next: All view-assignment tables should use one consistent column set and order, whatever view is selected: element name (sortable), lock, fg, bg, style, box (with a side expansion showing the selected color, as in UI faces), contrast, inheritance, size, preview text. No other columns at this design stage. When a view's elements can't take a given section, raise a signal and disable that section for that view; the disabled state is the visual cue. From the roam inbox 2026-06-16. *** TODO [#B] Route hardcoded theme colors through the theme :refactor: |
