aboutsummaryrefslogtreecommitdiff
path: root/todo.org
Commit message (Collapse)AuthorAgeFilesLines
* chore(todo): mark gptel model refresh DONECraig Jennings2026-05-141-7/+30
|
* chore(todo): queue gptel model refresh + C-; b p source extensionsCraig Jennings2026-05-141-9/+18
|
* chore(todo): archive today's DONE work + sync child prioritiesCraig Jennings2026-05-141-545/+536
| | | | | | | | | | | Five level-2 subtrees moved into the Resolved section: - Surface org narrowing + sparse-tree under C-; O - F9 toggle restores single-window layout (older) - AI-vterm scrollback history replaces agent buffer (older) - Add ERT coverage for modules below 70% - Fix Python tree-sitter font-lock query syntax error Five child priorities bumped to match their parents.
* chore(todo): mark org narrowing + sparse-tree task DONECraig Jennings2026-05-141-1/+14
|
* chore(todo): add task to surface org narrowing + sparse-tree under C-; OCraig Jennings2026-05-141-0/+42
|
* chore(todo): mark dashboard rebalance DONECraig Jennings2026-05-141-1/+14
|
* chore(todo): mark video-T transcription task DONECraig Jennings2026-05-141-1/+2
|
* chore(todo): add task to extend dired T to transcribe videosCraig Jennings2026-05-141-0/+39
|
* chore(todo): close the coverage-below-70 parent + two child tasksCraig Jennings2026-05-141-28/+45
|
* chore(todo): close Python tree-sitter predicate bug as upstream-resolvedCraig Jennings2026-05-141-7/+9
| | | | | | | | | | | | | | | | | | | | The treesit-query-error redisplay flood diagnosed 2026-04-26 no longer reproduces. Versions: emacs 30.2-3 (was 30.2-2 at the time of the investigation, upgraded 2026-05-03), tree-sitter 0.26.8 (unchanged). The upstream Emacs version string is unchanged, but the Arch package revision bump most likely carries a downstream patch to treesit.c's predicate translation. Verified by re-running the documented repro: the exact failing query from python.el captures cleanly via `treesit-query-capture', and `font-lock-ensure' on a real .py file under `python-ts-mode' returns with no `treesit-query-error'. No local override needed. Mark the todo.org entry DONE, fix the stale `inbox/' path on the investigation-doc link (file now lives under `docs/'), update the cross-reference from the grammar-bootstrap task to note this no longer blocks it, and append a RESOLVED 2026-05-14 footer to the investigation doc so future-me can see why it got closed.
* chore(todo): reconcile test-coverage tracking with current stateCraig Jennings2026-05-141-35/+75
| | | | | | | | | | | After this session's coverage push (68.8% -> 86.5%), 28 of the 30 child modules listed in the coverage-below-70% task have crossed the threshold. Mark them DONE with their new percentages, leave the two genuinely-blocked modules (system-defaults.el at 8.3% and system-commands.el at 69.4%) as TODO with notes explaining the instrumentation-gap reason each is stuck. Also: drop the stray =p= from the parent heading.
* chore(todo): mark journal-save fix DONECraig Jennings2026-05-141-0/+32
|
* feat(org-agenda): add VERIFICATION and IN-PROGRESS blocks around SCHEDULECraig Jennings2026-05-131-1/+46
| | | | | | | | | | The main "d" agenda view grows two new blocks. A VERIFICATION block lists tasks in the VERIFY TODO state, placed just above the day's SCHEDULE. An IN-PROGRESS block lists tasks in the DOING TODO state, placed just under SCHEDULE. The full block order is now: OVERDUE -> HIGH PRIORITY -> VERIFICATION -> SCHEDULE -> IN-PROGRESS -> PRIORITY B. Scope matches the other blocks (every entry in `org-agenda-files`). Scheduled and deadlined entries are included -- a VERIFY task with a date appears in both VERIFICATION and SCHEDULE, mirroring how HIGH PRIORITY behaves. Habits are skipped via `cj/org-skip-subtree-if-habit`; PROJECT-keyword parents wouldn't match `(todo "VERIFY")` exact-state filters anyway, so no extra skip there. Two new header defvars (`cj/main-agenda-verify-title`, `cj/main-agenda-doing-title`) for symmetry with the existing four. Both blocks reference the shared `cj/--main-agenda-prefix-format` so a format tweak still lands in one place. Five new tests in `test-org-agenda-config-skip-functions.el` lock the block order, each new block's header / prefix-format / skip-function, and the include-scheduled-entries contract.
* docs(todo): refresh coverage status after 5-module pushCraig Jennings2026-05-131-8/+17
| | | | | | | | | | Coverage rerun after this session's test additions: 67.2% -> 68.8% (4716/6853 lines across 73 files). Four modules crossed the 70% threshold and are marked DONE: browser-config 69.7% -> 81.6%, ui-config 64.5% -> 90.3%, custom-whitespace 64.6% -> 97.6%, jumper 64.6% -> 98.0%. system-defaults stays open with a note: 8 new tests cover its helpers (`cj/disabled`, the gc-threshold hooks, `unpropertize-kill-ring`, `cj/log-comp-warning`) but the gauge still reads 1/12 because the sandboxed `(load ...)` used to skip startup side effects doesn't register with undercover's instrumentation. Closing it needs either a refactor that lets the module load via plain `(require)` in batch, or a different coverage strategy. Other numbers refreshed where they shifted (ui-navigation 8.7% -> 54.2% from prior session, org-agenda-config 60.0% -> 67.3% from this session's project-name category work, etc.).
* refactor(org-agenda): extract main-agenda prefix format into a defvarCraig Jennings2026-05-131-2/+10
| | | | | | `org-agenda-custom-commands` inlined ` %i %-15:c%?-15t% s` four times across the "d" command's overdue / high-priority / schedule / priority-B blocks. New `cj/--main-agenda-prefix-format` defvar holds the literal once; every block now references the symbol so a format tweak lands in one place. Regression test walks the "d" command's blocks and asserts each `org-agenda-prefix-format` cell resolves to the shared symbol -- a block that silently diverges fails the check.
* feat(setup): scripts/setup-telega.sh prepares the docker environment for telegaCraig Jennings2026-05-131-8/+13
| | | | | | Verifies docker is installed and the daemon is reachable, then either pulls a public image (when `TELEGA_DOCKER_IMAGE` is set) or announces the in-Emacs build path (`M-x telega-server-build`) for the user to run once. Telegram auth (phone + verification code) is interactive on first `M-x telega` and not scripted here. Same shape as setup-email.sh: helpers are sourceable for bats, `main` runs only under direct execution. 7 bats tests stub `docker` and `command` so the suite never talks to the real daemon.
* feat(dashboard): add Telegram launcher to a new third rowCraig Jennings2026-05-131-1/+23
| | | | | | `dashboard-navigator-buttons' grows a Row 3 with a single Telegram entry (using the `nf-fa-telegram' icon, launching `telega'). The dashboard-mode-map gets a single-letter `g' shortcut to match the other launcher keys. Two follow-up TODOs filed under the parent telegram task: the TDLib docker setup script (so a fresh-clone install can boot telega without a system-wide TDLib build) and a dashboard-icon-balance pass (Row 3 with one entry is asymmetric; decide whether to leave it or reorganize).
* feat(vterm): show tmux scrollback history in placeCraig Jennings2026-05-131-11/+24
| | | | | | `cj/vterm-tmux-history' previously used `pop-to-buffer', which routed the history view through display-buffer-alist -- in an agent window that often meant a split or a hand-off to another window, costing the agent its frame slot. `switch-to-buffer' instead drops the history into the selected window directly; the existing quit handler already restores the origin in that same window via `set-window-buffer'. New test asserts the in-place behavior: starting single-window with a vterm origin, invoking the command leaves `(one-window-p)` t with the history buffer in the original slot. The existing render test no longer needs its `pop-to-buffer' stub since `switch-to-buffer' works in batch.
* fix(ai-vterm): preserve single-window layout across F9 toggleCraig Jennings2026-05-131-13/+13
| | | | | | | | When the agent buffer is the only window in the frame, F9 buries it (correct) but the next F9 redisplayed it as a side split instead of restoring the full-frame layout -- the display-saved path always called `display-buffer-in-direction`, which insists on a split. New `cj/--ai-vterm-last-was-bury` flag tracks which toggle-off path ran. `cj/ai-vterm` sets it to t in the bury branch (one-window-p) and nil in the delete-window branch. `cj/--ai-vterm-display-saved` checks the flag at toggle-on: if t and the frame is still single-window, it replaces the selected window's buffer in place rather than splitting. Either branch consumes the flag so it never stays stale. 5 tests in test-ai-vterm--single-window-toggle.el cover the flag's set/clear paths, the still-one-window guard, and the end-to-end roundtrip.
* docs(todo): refresh coverage status, mark agenda enhancement DONECraig Jennings2026-05-131-13/+41
| | | | | | Coverage snapshot rerun on 2026-05-13 -- selection-framework.el, keyboard-compat.el, and calibredb-epub-config.el all crossed the 70% threshold and got marked DONE; the remaining child tasks got their current numbers refreshed. The total moved from 65.4% to 67.2%. Marked the [#A] "replace todo indicators with project name" enhancement DONE -- the agenda-category fix shipped in the prior commit. Also added a [#A] dashboard-icon follow-up on the Telegram task and a [#C] task to rebind org-noter insert-note onto =n=.
* docs(todo): add gptel-magit investigation taskCraig Jennings2026-05-131-0/+15
|
* docs(todo): add F9 toggle and ai-vterm scrollback tasksCraig Jennings2026-05-131-0/+38
| | | | | | | | | I added two open-work entries: - F9 toggle should restore single-window layout when AI-vterm was the only window before toggle-off. Current behavior buries (correct) but toggle-on splits. - AI-vterm scrollback history should replace the agent buffer in place, not split or pop a separate window.
* chore: start tracking todo.org for cross-machine syncCraig Jennings2026-05-131-0/+3689
|
* chore: gitignore and untrack build artifacts, vendored assets, personal filesCraig Jennings2026-04-051-513/+0
| | | | | | Untrack .cask/, .localrepo/ (61M), emojis/ (7.2M), inbox/, todo.org, v2mom.org, .time-zones.el. Move test-reporter-spec.org to docs/ (already gitignored). Reduces tracked repo size significantly.
* refactor(gptel): lazy-load gptel-magit, rebind rewrite/context keysCraig Jennings2026-03-061-3/+3
| | | | | | | | | | - Replace use-package gptel-magit hook with autoloads via with-eval-after-load 'magit (loads gptel only on key press) - Move org header defuns above use-package to fix load order - Set gptel-include-reasoning to "*AI-Reasoning*" buffer - Rebind rewrite to C-; a r, clear context to C-; a c - Add test-ai-config-gptel-magit-lazy-loading.el (8 tests) - Mark all ai-config cleanup items DONE in todo.org
* refactor(gptel): move config defuns to top level, rebind keys, set reasoningCraig Jennings2026-03-061-13/+10
| | | | | | | | | - Move cj/gptel--fresh-org-prefix, cj/gptel--refresh-org-prefix, cj/gptel-backend-and-model, cj/gptel-insert-model-heading out of use-package :config to top level (fixes byte-compile warnings) - Set gptel-include-reasoning to "*AI-Reasoning*" buffer - Rebind rewrite to C-; a r, clear context to C-; a c - Update todo.org with completed cleanup items
* fix(gptel): fix docstring warnings, rename model->string to model-to-stringCraig Jennings2026-03-061-1/+1
| | | | | | | | - Escape single quote in cj/ensure-gptel-backends docstring - Wrap cj/gptel--available-backends docstring to 80 chars - Add missing docstring to cj/gptel--model-to-string - Rename cj/gptel--model->string to cj/gptel--model-to-string - Mark stale model list task as DONE in todo.org
* feat(gptel): update Claude models, fix default system promptCraig Jennings2026-03-061-0/+96
| | | | | | | | Update Anthropic model list to current: claude-opus-4-6, claude-sonnet-4-6, claude-haiku-4-5-20251001. Fix gptel--system-message not picking up the custom default.org directive (defvar set at load time before gptel-prompts replaces the default entry). Add cleanup tasks for ai-config, calibredb, and slack reaction workflow to todo.org.
* fix(slack): fix notification and mark-as-read bugsCraig Jennings2026-03-061-0/+43
| | | | | | Notifications silently failed: slack-room-im-p (nonexistent) replaced with slack-im-p; slack-message-to-string replaced with slack-message-body. Mark-as-read bound to nonexistent function; added cj/slack-mark-read-and-bury.
* chore: rename chime.el references to ChimeCraig Jennings2026-02-231-2/+2
| | | | | Update load-path, GitHub URL, and all project/package name references to reflect the chime.el → Chime rename.
* feat(restclient): add REST API client for interactive API explorationCraig Jennings2026-02-181-0/+24
| | | | | restclient.el + restclient-jq integration with SkyFi API templates, tutorial file, auto key injection from authinfo, 17 ERT tests.
* chore: close completed tasks in todo (yasnippet, ERT checklist)Craig Jennings2026-02-161-33/+16
|
* feat(org-noter): overhaul keybindings, dynamic split, background highlightCraig Jennings2026-02-161-1/+0
| | | | | | | | | | | - Move all org-noter bindings to C-; n prefix with which-key labels - Remove F6 global binding, add i in pdf-view-mode for insert-note-dwim - Auto-detect split direction from frame aspect ratio (threshold 1.4) - Add background highlight on notes window focus (matches music-config) - Fix session start to use find-file-noselect (keeps PDF visible) - Fix split fraction (70/30 doc/notes) - Replace hardcoded path with roam-dir from user-constants - Update commentary to reflect new workflow
* chore: complete ERT test checklist [13/13]Craig Jennings2026-02-151-3/+3
| | | | | Remove eww-config (interactive wrappers, eww-mode state dependent). All modules now tested or evaluated and removed as untestable.
* fix(chrono-tools): correct undefined variable in timer reset messageCraig Jennings2026-02-151-9/+1
| | | | | notification-package → notification-sound in cj/tmr-reset-sound-to-default. Also remove 10 untestable modules from ERT checklist [13/14].
* test: add 38 tests for org-agenda-config and org-refile-configCraig Jennings2026-02-151-4/+3
| | | | | | | - testutil-org.el: shared dynamic timestamp helpers (days-ago, days-ahead, today) - org-agenda-config: 31 tests across 2 files (skip functions + add-files) - org-refile-config: 7 tests for ensure-org-mode validation - Remove prog-shell from checklist (fully covered by existing 9 tests)
* test: add 86 new tests, fix 3 production bugs, fix 8 stale testsCraig Jennings2026-02-151-14/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New test coverage (86 tests across 7 files): - custom-case: 43 tests (title-case-region, upcase-dwim, downcase-dwim) - custom-datetime: 10 tests (all insert methods with mocked time) - config-utilities: 11 tests (format-build-time type branching) - org-capture-config: 22 tests (date-prefix + event-content) Production bugs found and fixed: - custom-case: title-case-region crashes on whitespace/punctuation-only input (char-after returns nil when no word chars found) - org-capture-config: browser branch missing empty-string guard on :initial plist value, producing stray newline in capture output - mousetrap-mode: keymap never registered in minor-mode-map-alist, so mode was silently not blocking any mouse events. Now pushes/removes on toggle. Additional fixes: - local-repository: fix cons cell syntax bug in localrepo-initialize (was calling vars as functions instead of using cons) - dupre-theme tests: update rainbow-delimiter color expectations - mousetrap tests: update dashboard profile (primary-click → scroll+primary) - music completion test: bind completion-ignore-case to prevent pollution - Delete redundant interactive recording test (duplicate of ERT version) Refactoring: - org-capture-config: extract cj/org-capture--date-prefix pure function from cj/org-capture-format-event-headline for testability Test checklist: todo.org updated to [11/25], removed untestable modules
* chore(todo): reorganize tasks by functional area, audit test coverageCraig Jennings2026-02-151-169/+188
| | | | | | | | | | Categorize all open tasks under: Org Mode, Presentations, Mail, Media & Recording, UI/Keybindings/Completion, Testing & CI, Code Architecture & Performance, File Management & Shell, Authentication & Security, Metrics & Process. Check off 7/31 modules with strong existing test coverage in the ERT test tracking task.
* refactor(tasks): migrate todo.org to Open Work / Resolved formatCraig Jennings2026-02-141-1410/+109
| | | | | | | | Decouple task tracking from V2MOM strategic framework. Archive full V2MOM history to v2mom.org, replace todo.org with flat task list under Emacs Open Work / Emacs Resolved headings. Merge duplicate tasks (org-noter, buttercup, localrepo, lorem-optimum). 29 open tasks, no method grouping.
* feat(reveal): add org-reveal presentation workflow with ERT testsCraig Jennings2026-02-141-2/+17
| | | | | | | Replaced pandoc-based reveal.js export with native ox-reveal integration. New org-reveal-config.el module provides offline, self-contained HTML export with keybindings under C-; p. Includes setup script for reveal.js 5.1.0 and 34 ERT tests covering header template and title-to-filename helpers.
* test: add ERT coverage for modeline-config and hugo-configCraig Jennings2026-02-141-18/+59
| | | | | | | Add 67 tests across 6 new test files for modeline and hugo modules. Refactor hugo-config: extract post-file-path and post-template helpers from interactive new-post function for testability. Update todo.org with test audit (31 modules), priority adjustments, and task cleanup.
* chore(todo): add TRAMP/dirvish timestamp investigation taskCraig Jennings2026-02-051-0/+27
| | | | | Document attempted fixes and resources for future investigation of question marks appearing instead of file dates in remote directories.
* chore(todo): adjust task priorities based on V2MOM alignmentCraig Jennings2026-01-271-7/+7
| | | | | Promoted org-capture perf to [#A] (daily bottleneck). Demoted ERT tests to [#B], and 5 non-urgent items to [#C].
* test(prog-shell): add tests for cj/make-script-executableCraig Jennings2026-01-241-10/+10
| | | | | | | | | | 9 tests covering: - Normal: bash/python shebangs, already executable - Boundary: no shebang, empty file, shebang on line 2, hash without ! - Edge: no buffer file, shebang with space Closes TODO item for make-script-executable tests. Also closes already-done ANSI codes TODO.
* chore: add .stignore to gitignore, add terminal pinentry TODOCraig Jennings2026-01-241-0/+10
| | | | | - Ignore .stignore (Syncthing config) - Add TODO [#C] for terminal GPG pinentry work (branch: terminal-pinentry)
* fix(terminal): add console/mosh compatibilityCraig Jennings2026-01-231-0/+23
| | | | | | | | - Create terminal-compat.el for arrow key escape sequences - Fix M-uppercase keybindings (M-O → M-S-o, etc.) that conflicted with terminal escape sequences ESC O A/B/C/D - Add GUI-only guards for emojify and icon rendering - 18 keybindings updated across 13 modules with override comments
* session: Add session notes and org-noter TODOCraig Jennings2025-11-241-0/+46
| | | | | | Added session notes for 2025-11-24 DWIM shell command work. Added detailed TODO for org-noter workflow continuation with known issues and testing requirements. Added TODO for dwim-shell-command status dashboard with implementation approaches.
* feat(dwim-shell): fix M-D menu binding and enhance audio extractionCraig Jennings2025-11-241-22/+70
| | | | | | | | | | | | | | | | | | | | - Fix dwim-shell-commands-menu keybinding in dirvish/dired - Remove :after (dired dirvish) which prevented package loading - Add :demand t to load package immediately at startup - Move keybindings inside :config block after menu function definition - M-D now works immediately in dirvish without manual trigger - Enhance extract-audio-from-video function - Fix :extensions parameter (was regex string, now proper list) - Change from copy to AAC re-encoding for codec compatibility - Add interactive bitrate selection (64k/96k/128k/192k) - Fixes Opus codec compatibility issues with M4A containers - Remove conflicting keybindings - Remove music-config p binding in dirvish (was overriding path copy) - Clean up extraneous requires/hooks from troubleshooting - Add TODO for dwim-shell-command status dashboard [#D priority]
* chore: Mark org-appear toggle task as DONECraig Jennings2025-11-161-4/+20
| | | | Completed implementation of cj/org-appear-toggle with C-c C-a keybinding.
* chore: Updated tasksCraig Jennings2025-11-161-270/+272
|