aboutsummaryrefslogtreecommitdiff
path: root/todo.org
Commit message (Collapse)AuthorAgeFilesLines
* chore(todo): sync child task priorities to their parentsCraig Jennings9 days1-3/+3
| | | | The cleanup pass bumped three child priority cookies up to match their parents (down-only).
* chore(todo): file org-lint follow-ups as a taskCraig Jennings9 days1-0/+5
|
* chore(todo): group tasks into module projects and document statusesCraig Jennings9 days1-1869/+1889
| | | | I consolidated the loose top-level tasks under module "Open Work" parents for every module with four or more (Theme-Studio, Music, AI), and left tasks that already had subtasks as standalone projects. I marked the top-level container tasks PROJECT, top level only and never deeper, and demoted three PROJECT headings that were buried below the top level back to TODO. The priority scheme now documents every status keyword (TODO, PROJECT, DOING, WAITING, VERIFY, STALLED, DELEGATED, DONE, CANCELLED, FAILED), with PROJECT spelled out as a top-level container. I also routed the studio table-consistency task in from the roam inbox.
* docs(messenger): add the per-app keybinding alphabet to the unification specCraig Jennings9 days1-3/+3
| | | | | | I added a "Global Prefix Keybinding Alphabet" section to the messenger-unification spec. The per-app C-; prefix is a third keybinding surface, separate from the in-buffer chords (C-c C-c / C-c C-k / C-c C-a) and decision 6's cross-app verbs. Today the action leaf under each app is ad hoc: the same key means different things in Slack, Signal, Telega, and ERC. The section spells out the canonical actions, shows the inconsistency as a matrix, and proposes one leaf alphabet across all four, with the core seven verbs as the unifiable floor and the richer verbs as optional per-backend extensions. I also added a smoke-first parity note to Phase 1 (build the controllable signel replacement to the capability floor, not its ceiling) and promoted the todo task to [#A] "Unify Signel and All Messengers into one UX" with a direct link to the spec.
* feat(keybindings): mirror the C-; command family under C-c ;Craig Jennings9 days1-1/+9
| | | | C-; is GUI-only: terminals can't encode Control-semicolon, so the whole custom command family (calendar, AI, Slack, org, pearl, jump, and the rest) was unreachable in a terminal frame (emacs -nw, emacsclient -nw, or Emacs inside vterm/tmux). I bound the single cj/custom-keymap under C-c ; alongside C-;, so the same leaf keys reach the identical map in both GUI and TTY with no relearning and no per-module edits. C-c is the standard user prefix and always TTY-encodable. I audited every leaf key in the family and they're all TTY-safe (letters, digits, punctuation, SPC, and arrow keys), so nothing needed remapping.
* fix(theme-studio): open the palette collapsed to base colorsCraig Jennings9 days1-0/+6
| | | | The studio opened with every column's span tints expanded, so the first view was crowded with colors the user hadn't asked to see. I set paletteShowFull to false in initApp, so the palette opens showing one tile per column and the existing arrow control expands the spans. The flip lives in the boot path rather than the module default, so the palette gates keep their full-palette baseline. The two that assert span tiles (#counttest, #paltoggletest) now opt into full mode explicitly. A new #paldefaulttest gate asserts the opening collapsed state.
* fix(theme-studio): make the color picker stand out from the pageCraig Jennings9 days1-1/+14
| | | | The picker panel's background (#161412) sat a few shades off the page background (#0d0b0a), so it was hard to tell apart from the page. I gave it the studio's gold accent border (#e8bd30) and lifted the background to #1f1c19, both already used in the toolbar chrome, so the panel reads as a distinct surface. The #pickertest gate asserts the accent border and a per-channel background lift of at least 12 over the page, so the distinction can't quietly regress.
* chore(todo): file the mu4e-theming visual VERIFYCraig Jennings10 days1-0/+6
| | | | Fix shipped in 56d105f0; visual sign-off lives under Manual testing and validation.
* chore(todo): close the markdown-preview task, file the visual VERIFYCraig Jennings10 days1-0/+8
| | | | Built and shipped in 0682b24f. Visual sign-off lives under Manual testing and validation.
* chore(todo): drop the false-alarm empty-preview-packages taskCraig Jennings10 days1-2/+0
| | | | Craig confirmed alert does have elements, so the dropped-packages task was a false alarm.
* chore(todo): close the contrast-cell compaction taskCraig Jennings10 days1-3/+2
| | | | Resolved by 9e99749d. Dated-rewrote the VERIFY to a log entry.
* chore(todo): file two studio tasks from the roam inboxCraig Jennings10 days1-0/+4
| | | | Routed two emacs/studio captures: move the clear-palette button, and drop dropdown packages with no preview elements. Both need design or a criterion from Craig before implementing.
* chore(todo): file buffer-differs 4-way-prompt feature from the roam inboxCraig Jennings10 days1-0/+2
| | | | Routed an emacs-owned roam capture into Open Work. Needs design (which prompt, diff-then-return loop) before it's implementable.
* chore(todo): close the alphabetize-assignment-dropdown taskCraig Jennings10 days1-3/+2
| | | | Resolved by afd2ddad. Dated-rewrote the VERIFY to a log entry per the todo format.
* chore(todo): dashboard icons (Cause C) done, reframe item-color as ↵Craig Jennings10 days1-2/+6
| | | | | | theme-studio work Cause C (per-filetype file icons) is fixed and committed. Cause B reframed per Craig: items already default to fg, coloring routes through theme-studio (task 2418), no hardcoded hex. Filed a visual-verify VERIFY.
* chore(todo): mark dashboard font-lock fix (Cause A) doneCraig Jennings10 days1-0/+20
| | | | Cause A of the dashboard-theming task is fixed and committed. Causes B (item color, themeable not hardcoded) and C (enable file/section icons, per-filetype color) stay open.
* chore(todo): close gptel string-model crash, file dedup + manual-test follow-upsCraig Jennings10 days1-1/+12
| | | | Closed the gptel-switch-backend bug (fixed this session). Filed a VERIFY for the dedup decision (keep switch-backend or fold into change-model) and a manual-test VERIFY for the C-; a B interactive check.
* chore(todo): resolve :next: sweep — fixes closed, rest parked as VERIFYCraig Jennings10 days1-7/+7
| | | | Close the tasks fixed this session and park the rest as VERIFY with what's needed (fixture / measurement / design pick / confirm). Child-priority sync bumps, lint mechanical fixes, and PROPERTIES-drawer repairs from the wrap-up cleanup.
* build: add task-sorted target to archive resolved todo tasksCraig Jennings10 days1-45/+41
| | | | make task-sorted wraps todo-cleanup.el --archive-done, moving DONE/CANCELLED level-2 subtrees from Open Work into Resolved. Ran it: archived this session's closed tasks.
* chore(todo): park remaining :next: tasks as VERIFY with next-stepsCraig Jennings10 days1-12/+24
| | | | deploy-wip (mechanism), calendar-sync x2 (need .ics fixture), org-roam refile (measurement-first), dashboard icons (font approach), transcription (focused pass), music faces (theme-side colours), music tests (audit session), alphabetize + sort-newest (focused studio pass), compact-contrast (clarify intent), fullscreen-terminal (confirm gesture). Each carries what I need or the plan.
* refactor(theme-studio): drop the too-similar-colors warning boxCraig Jennings10 days1-1/+3
| | | | The warning box under the palette wasn't useful there; the same ΔE info is reachable per-chip via the nearest-ΔE tooltip and inline contrast. Remove renderPaletteWarnings, the #palwarn element, its CSS, and the #deltatest gate. paletteWarnings still runs for the per-chip nearest distance.
* chore(todo): park cannot-reassign-fg as VERIFY (need exact repro)Craig Jennings10 days1-1/+2
|
* chore(todo): close C-s C-s vertico-repeat (verified live)Craig Jennings10 days1-1/+3
|
* feat(system-utils): tint the *scratch* background a shade lighterCraig Jennings10 days1-1/+3
| | | | A buffer-local face remap lightens the *scratch* default background by cj/scratch-background-lighten percent (default 5) so it reads as the scratch buffer, applied on emacs-startup-hook. The colour math is display-dependent (verified live); the pure helper's guard contract is unit-tested.
* chore(todo): park input-needed/large :next: tasks as VERIFYCraig Jennings10 days1-6/+12
| | | | native-comp re-enable (stability judgment), stale-elpa-gptel (needs the gptel-magit dep resolved), org-agenda theme-studio app (multi-phase feature), dirvish hard-delete (confirm key + dangerous sudo rm -rf), remove system-power keys (confirm which to keep), face-consistency check (needs a spec). Each carries what I need from Craig.
* fix(vertico): Page-Up/Down scroll the candidate list, not historyCraig Jennings10 days1-1/+3
| | | | <next>/<prior> weren't bound in vertico-map, so in a long completing-read they fell through and selected-then-dismissed the list. Bind them to vertico-scroll-up / vertico-scroll-down.
* fix(custom-comments): heavy-box interiors are valid commentsCraig Jennings10 days1-1/+3
| | | | The heavy-box empty and text lines began with a bare decoration char, so in line-comment languages (elisp, Python) C-; C h injected syntax-breaking lines. Prefix the interiors with the comment char and suffix them like cj/--comment-box does. Add the missing min-length guard so small or negative widths error cleanly instead of failing inside make-string. Updated the two characterization assertions to the corrected output.
* fix(dirvish): mark-all-visible no longer skips every other fileCraig Jennings10 days1-291/+293
| | | | dired-mark advances point itself, so the loop's extra forward-line skipped every other file (and could mark a directory). Use dired-get-filename + file-directory-p with an if/else: a marked file line advances once via dired-mark, non-file/directory lines advance manually. Replaces the regex line predicate (retired with its mock test) with a real-Dired marked-count test.
* chore(todo): fix doubled :next: tag on music extract-facesCraig Jennings10 days1-87/+58
|
* chore(todo): close the no-approvals batch tasks, archive resolvedCraig Jennings10 days1-64/+74
| | | | Mark the 12 batch fixes DONE (eww, prog electric-pair/line-numbers, auth-config, system-defaults, prog-go, eshell, split-window, dashboard keys, undo-kill-buffer, ai-term, Signal launcher, groundPair) with their commit refs, then archive all newly-resolved subtrees into Resolved.
* refactor(ui-config): drop buffer-state cursor coloringCraig Jennings10 days1-1/+4
| | | | A cursor that changed color by buffer state was confusing. Remove cj/set-cursor-color-according-to-mode, its two cache defvars, and the post-command / server-after-make-frame hook registrations; the cursor now uses the theme cursor face. The cj/buffer-status-state / cj/buffer-status-color classifier stays in user-constants.el for the modeline buffer-name indicator. Delete the cursor-function integration test; keep the classifier tests.
* chore(todo): archive resolved tasksCraig Jennings10 days1-36/+34
|
* chore(todo): close audit fixes, file roam captures, note gptel deferCraig Jennings10 days1-5/+22
| | | | 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.
* chore(todo): file studio inbox tasks, archive resolvedCraig Jennings10 days1-193/+183
|
* chore(todo): close the gallery color picker taskCraig Jennings10 days1-4/+5
|
* chore(todo): file ground() helper extraction refactorCraig Jennings10 days1-0/+2
|
* chore(todo): close palette toggle/unused/gone tasks; flag max-spans ambiguityCraig Jennings10 days1-6/+11
|
* chore(todo): close span-bounds/rename/cluster-size tasks; fix calendar-sync tagCraig Jennings10 days1-11/+15
|
* chore(todo): file two theme-studio palette tasks from roam inboxCraig Jennings10 days1-0/+4
|
* chore(todo): file roam-inbox theme-studio/emacs tasks; close reset-button ↵Craig Jennings10 days1-1844/+1860
| | | | task; reprioritize elfeed
* docs: spec the theme-studio preview-locate feature; file org-agenda app taskCraig Jennings10 days1-0/+4
| | | | Spec the 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 via a derived face->owning-app registry that previews also read for cross-pane live rendering. Decisions 5/5 settled. File the locate feature and the dependent org-agenda app (break the agenda faces out of the org-mode pane into their own, with a representative week-agenda preview) as tasks; org-agenda depends on the locate feature.
* feat(face-diagnostic): Phase 4 render, command, and init wiringCraig Jennings10 days1-4/+7
| | | | Phase 4 completes the face/font diagnostic. cj/describe-face-at-point renders cj/--face-diagnosis-at into a read-only *Face Diagnosis* buffer (cj/face-diagnostic-mode), with a region-scan mode over distinct face-runs (capped at 20) and an out-of-scope banner. It is required in init.el. The render is split into small section formatters tested on captured plists, and the command is smoke-tested and live-verified in the daemon, where it already surfaces the active auto-dim remaps. The command name is settled as cj/describe-face-at-point. The keybinding stays Craig's pick, and face-name buttons plus the module-header allowlist entry are filed as a follow-up. The spec is marked implemented and renamed to its lifecycle filename. 35 ERT tests, byte-compile clean.
* feat(face-diagnostic): Phase 3 per-face provenance traceCraig Jennings10 days1-2/+2
| | | | Add group 5 to the diagnostic core: per-face provenance. cj/--face-diag-provenance reports, for each named face in the stack, which themes set it (theme-face), whether config saved or customized it (saved-face / customized-face), its :inherit chain, and the attributes still unspecified after inherit-following (the ones that fall through to the default -- the direct read on the all-white-elfeed class of bug). The version-sensitive theme-face / saved-face internals sit behind small accessors that treat missing properties as absent rather than erroring. 30 ERT tests, byte-compile clean.
* feat(face-diagnostic): Phase 2 merged attributes and real fontCraig Jennings10 days1-2/+2
| | | | Extend the diagnostic core with the effective merged attributes and the real-font layer. cj/--face-diag-merged-attributes folds the ordered, remap-expanded spec stack (overlays over text-props over default), taking the first non-unspecified value per attribute, labeled "computed". cj/--face-diag-real-font reports font-at's font, or "unavailable" under batch and on terminals. cj/--face-diagnosis-at now returns groups 0-4. Settles spec decision #7 (the hand-fold approach), pinned by fixtures: overlay-over-text-prop, a default remap, a face-symbol attribute. 23 ERT tests, byte-compile clean.
* feat(face-diagnostic): Phase 1 pure read model for the face/font diagnosticCraig Jennings10 days1-2/+10
| | | | modules/face-diagnostic.el carries the Phase 1 core of the face-at-point diagnostic: cj/--face-diagnosis-at returns a plist with the buffer classification (theme-faced / terminal-ansi / document-shr / image-no-text), the character context (char, codepoint, Unicode name, script), and the face stack separated by source (text-property faces, overlays by priority, active face-remapping-alist entries, default). Built from small pure helpers, no display or prompts. 17 ERT tests cover Normal/Boundary/Error per helper. Not yet wired into init.el; the interactive command, rendering, and keybinding land in Phase 4. Spec: docs/specs/face-font-diagnostic-popup-spec.org.
* chore(todo): close org-capture popup manual-verify as passedCraig Jennings10 days1-7/+2
|
* refactor(org-capture): single-Task desktop popup into the org-roam inboxCraig Jennings10 days1-10/+9
| | | | The Hyprland Super+Shift+N popup now goes straight to a single Task capture into the org-roam inbox (file+headline inbox-file "Inbox"), with no template menu. It drops Bug and Event from the popup, removes the now-pointless org-mks Customize-strip advice, and replaces the Task/Bug/Event subset filter with a one-template builder, cj/--quick-capture-template. The full org-capture menu in the daemon is unchanged. todo.org: cancelled the deferred Note/Recipe popup feature and replaced the old manual-verify checklist with one matching the simpler behavior.
* chore(todo): file emacs tasks from the roam inbox, drain it to zeroCraig Jennings10 days1-2/+8
| | | | Process the seven emacs/theme-studio captures from the org-roam inbox into Emacs Open Work: settle the cursor task on remove (Craig's directive), add page-down-in-completing-read, scratch-background-lighter, and one consolidated auto-dim task for org headings/links/tags. The bug capture template was checked against task and kept (it adds [#C], so it differs). The inbox is now empty of emacs items.
* docs: move the two docs-root specs into docs/specs/Craig Jennings10 days1-2/+2
| | | | Finish the reorg: theme-studio-palette-generator (doing — core planner, UI, and generatortest gate shipped, one refinement open) and theme-studio-semantic-theme-architecture (not-started) lived in docs/ root. Moved both into docs/specs/ with status filenames, ID and STATUS drawers, and id-linked references. Fixed their Related links from ../todo.org to ../../todo.org for the deeper path.
* docs: move specs to docs/specs/ with lifecycle-status filenamesCraig Jennings10 days1-43/+43
| | | | | | Separate the 27 formal specs from working notes. Specs move to docs/specs/, notes stay in docs/design/. Each spec carries its lifecycle in the filename (-spec, -spec-doing, -spec-implemented, -spec-superseded) plus an authoritative ID and STATUS property drawer. The status came from checking each spec against the code, not the doc's own field: 6 implemented, 8 in progress, 12 not started, 1 superseded. Inbound links become org-id links so future status renames don't break them; code-comment paths repoint to docs/specs/. Working notes, inventories, reviews, and brainstorms stay in docs/design/.